linux from scrap 错误“这些关键程序丢失或太旧:gawk”

linux from scrap 错误“这些关键程序丢失或太旧:gawk”

我正在关注《Linux from Scratch》一书的 8.0 版,并且我到达了第 (5.7.Glibc-2.25) 部分。尝试配置时glibc出现此错误:

这些关键程序丢失或太旧:gawk

当我gawk在终端中写入时,我得到以下结果:

Command 'gawk' is available in '/usr/local/bin/gawk'
The command could not be located because '/usr/local/bin' is not included in the PATH environment variable.
gawk: command not found

在本书前面的第 31 页第 4.5 节中,它说:

现在创建 .bashrc 文件:

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

我做到了。

更新:

运行 version-check.sh 脚本书中2.2节正如用户 lfs 给出的:

bash, version 4.3.46(1)-release  
/bin/sh -> /bin/bash
Binutils: (GNU Binutils for Ubuntu) 2.27
version-check: line 10: bison: command not found
/usr/bin/yacc -> /usr/bin/bison
bzip2,  Version 1.0.6, 6-Sept-2010.
Coreutils:  8.25
diff (GNU diffutils) 3.3
find (GNU findutils) 4.7.0-git
version-check: line 22: gawk: command not found
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
g++ (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
(Ubuntu GLIBC 2.24-3ubuntu1) 2.24
grep (GNU grep) 2.25
gzip 1.6
Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017
m4 (GNU M4) 1.4.17
GNU Make 4.1
GNU patch 2.7.5
Perl version='5.22.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.29
version-check: line 42: makeinfo: command not found
xz (XZ Utils) 5.1.0alpha
g++ compilation OK

但以 root 用户身份运行相同的脚本会给出:

bash, version 4.3.46(1)-release
/bin/sh -> /bin/bash
Binutils: (GNU Binutils for Ubuntu) 2.27
bison (GNU Bison) 2.3
/usr/bin/yacc -> /usr/bin/bison
bzip2,  Version 1.0.6, 6-Sept-2010.
Coreutils:  8.25
diff (GNU diffutils) 3.3
find (GNU findutils) 4.7.0-git
GNU Awk 4.0.1
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
g++ (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
(Ubuntu GLIBC 2.24-3ubuntu1) 2.24
grep (GNU grep) 2.25
gzip 1.6
Linux version 4.8.0-41-generic (buildd@lgw01-18) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #44-Ubuntu SMP Fri Mar 3 15:27:17 UTC 2017
m4 (GNU M4) 1.4.17
GNU Make 4.1
GNU patch 2.7.5
Perl version='5.22.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.29
texi2any (GNU texinfo) 6.3
xz (XZ Utils) 5.1.0alpha
g++ compilation OK

在我看来那是因为/usr/local/bin没有包含在PATH环境变量中,但是书上没有说添加它。

英语不是我的母语。

答案1

这是构建工具链的第一步,因此您的环境高度依赖于您的主机操作系统。

在章节中2.2 主机系统要求有两个脚本:

  • version-check.sh- 打印对 lfs 重要的所有软件包的版本
  • library-check.sh- 检查 gmp、mpfr 和 mpc 库

您是否运行了两者并根据书中提供的版本检查了结果?

因为你得到的错误是:

这些关键程序丢失或太旧:gawk

就这么简单 - 您的主机操作系统太旧了gawk

编辑:感谢更新。所以gawk你的主机操作系统上的版本是可以的。但问题仍然是您的主机操作系统 - 由于某些奇怪的原因,普通(lfs)用户无法访问某些软件包,因此您的主机操作系统不满足系统要求。 lfs 方面没有什么需要修复的。您必须修复主机操作系统,也许重新安装这些软件包?

相关内容