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

Posted Lucifer三思而后行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

Linux From Scratch(LFS11.0)构建 LFS 系统 - 清理系统

Linux From Scratch(LFS11.0)构建 LFS 系统 - GCC-11.2.0

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)构建 LFS 系统 - Diffutils-3.8

Linux From Scratch(LFS11.0)构建 LFS 系统 - Inetutils-2.1