Linux From Scratch(LFS11.0)构建 LFS 系统 - Coreutils-8.32

学向勤中得,萤窗万卷书。这篇文章主要讲述Linux From Scratch(LFS11.0)构建 LFS 系统 - Coreutils-8.32相关的知识,希望能为你提供帮助。

Coreutils 软件包包含用于显示和设定系统基本属性的工具。
安装 Coreutils解压软件包:

cd /sources
tar -xf coreutils-8.32.tar.xz
cd coreutils-8.32


POSIX 要求 Coreutils 中的程序即使在多字节 locale 中也能正确识别字符边界。下面应用一个补丁,以解决 Coreutils 不满足该要求的问题,并修复其他一些国际化相关的 bug:

patch -Np1 -i ../coreutils-8.32-i18n-1.patch


现在准备编译 Coreutils:

autoreconf -fiv
FORCE_UNSAFE_CONFIGURE=1 ./configure \\
--prefix=/usr\\
--enable-no-install-program=kill,uptime


编译该软件包:

make


如果不运行测试套件,直接跳到 “安装该软件包”。
现在测试套件已经可以运行了。首先运行那些设计为由 root 用户运行的测试:

make NON_ROOT_USERNAME=tester check-root


之后我们要以 tester 用户身份运行其余测试。然而,某些测试要求测试用户属于至少一个组。为了不跳过这些测试,我们添加一个临时组,并使得 tester 用户成为它的成员:

echo "dummy:x:102:tester" > > /etc/group


修正访问权限,使得非 root 用户可以编译和运行测试:

chown -Rv tester .


现在运行测试:

su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"


删除临时组:

sed -i \'/dummy/d\' /etc/group


安装该软件包:

make install


将程序移动到 FHS 要求的位置:

mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i \'s/"1"/"8"/\' /usr/share/man/man8/chroot.8


安装完成后清理工作:

cd ..
rm -rf coreutils-8.32




公众号:Lucifer三思而后行 ??

【Linux From Scratch(LFS11.0)构建 LFS 系统 - Coreutils-8.32】

    推荐阅读