1

我一直在密切关注“从头开始的 Linux”7.2 版中的命令,并且像往常一样一切都很好,直到我到达第 6.9 章,问题是当我尝试通过“make”命令安装 glibc 时,它会抛出以下错误对我。

/bin/sh: command substitution: line 3: syntax error near unexpected token `)'
/bin/sh: command substitution: line 3: `/tools/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../i686-pc-linux-gnu/bin/ar t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//')'
make[1]: *** [/sources/glibc-build/linkobj/libc_pic.a] Error 1
make[1]: Leaving directory `/sources/glibc-2.16.0'
make: *** [all] Error 2

所以我做了一些研究,令人惊讶的是,我并不孤单遇到这类问题,但不幸的是我找不到好的解决方案(每个线程都有不同的解决方案)。所以这是我到目前为止所知道的关于这个问题的事情。

Bash (4.2.36(1)-release) 显然无法处理括号,尤其是这种类型的语法 '$()'
它可能与 bash 版本有关,
其他使用 () 的命令也不能正常工作
而且因为这是我第一次如此深入地研究 linux,老实说,我不知道自己在做什么以及该做什么。所以我真的很感谢你的帮助。我也读过某处我可以从制作过程中删除所有 $() 但我不知道该怎么做

我正在使用 Ubuntu 12.10 来编译 LFS,是的,我已经检查了他们的脚本并且所有依赖项都得到了满足。并帮助这里的环境输出和简单的回声检查

TERM=xterm
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin
PWD=/sources/glibc-build
PS1=\u:\w\$ 
SHLVL=1
HOME=/root
_=/tools/bin/env
OLDPWD=/bin
root:/sources/glibc-build# echo $(test)
bash: command substitution: line 38: syntax error near unexpected token `)'
bash: command substitution: line 38: `test)'
root:/sources/glibc-build# echo $test 
test

来源: http ://www.linuxfromscratch.org/lfs/view/stable/index.html

4

1 回答 1

1

好的,所以为了修复这个问题,我不得不再次重建整个 LFS 系统,但是这次在我的主机上安装了上面提到的 bison 和 yacc,所以如果你遇到与我类似的问题,只需执行以下命令即可诡计。

sudo apt-get update && apt-get install bison*
于 2013-01-19T22:12:18.737 回答