source: chapter06/coreutils.xml@ 5cd6caa

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 5cd6caa was 8a5f906, checked in by Alex Gronenwoud <alex@…>, 20 years ago

Making the chapter 6 tests more obviously optional.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3234 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 3.7 KB
Line 
1<sect1 id="ch-system-coreutils" xreflabel="Coreutils">
2<title>Installing Coreutils-&coreutils-version;</title>
3<?dbhtml filename="coreutils.html" dir="chapter06"?>
4
5<para>The Coreutils package contains utilities for showing and setting the
6basic system characteristics.</para>
7
8<screen>&buildtime; &coreutils-time;
9&diskspace; &coreutils-compsize;</screen>
10
11&aa-coreutils-down;
12&aa-coreutils-dep;
13
14<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
15
16<sect2>
17<title>Installation of Coreutils</title>
18
19<para>Apply the same Posixver patch we used previously:</para>
20
21<screen><userinput>patch -Np1 -i ../&coreutils-posixver-patch;</userinput></screen>
22
23<para>Normally the functionality of <command>uname</command> is somewhat
24broken, in that the <emphasis>-p</emphasis> switch always returns "unknown".
25The following patch fixes this behaviour for Intel architectures:</para>
26
27<screen><userinput>patch -Np1 -i ../&coreutils-uname-patch;</userinput></screen>
28
29<para>We do not want Coreutils to install its version of the
30<command>hostname</command> program, because it is inferior to the version
31provided by Net-tools. Prevent its installation by applying a patch:</para>
32
33<screen><userinput>patch -Np1 -i ../&coreutils-hostname-patch;</userinput></screen>
34
35<para>Now prepare Coreutils for compilation:</para>
36
37<screen><userinput>./configure --prefix=/usr</userinput></screen>
38
39<para>Compile the package:</para>
40
41<screen><userinput>make</userinput></screen>
42
43<para>The <command>su</command> program from Coreutils wasn't installed in
44<xref linkend="chapter-temporary-tools"/> because it needed
45<emphasis>root</emphasis> privilege to do so. We're going to need it in a few
46moments for the test suite. Therefore we install it now:</para>
47
48<screen><userinput>make install-root</userinput></screen>
49
50<para>The test suite of this package
51makes some assumptions with regards to the presence of non-root users and
52groups that don't apply this early into the LFS build. We therefore create
53a dummy system user and two dummy groups to allow the tests to run
54properly. Should you choose not to run the test suite, skip down to
55"Install the package". The following commands will prepare us for the test
56suite. Create two dummy groups and a dummy user name:</para>
57
58<screen><userinput>echo "dummy1:x:1000" >> /etc/group
59echo "dummy2:x:1001:dummy" >> /etc/group
60echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen>
61
62<para>Some tests are meant to run as <emphasis>root</emphasis>:</para>
63
64<screen><userinput>make check-root</userinput></screen>
65
66<para>The remainder of the tests are run as the <emphasis>dummy</emphasis>
67user:</para>
68
69<screen><userinput>su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
70
71<para>Remove the dummy groups and user name:</para>
72
73<screen><userinput>sed -i.bak '/dummy/d' /etc/passwd /etc/group</userinput></screen>
74
75<para>Install the package:</para>
76
77<screen><userinput>make install</userinput></screen>
78
79<para>And move some programs to their proper locations:</para>
80
81<screen><userinput>mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
82mv /usr/bin/{date,echo,false,head,install,ln,ls} /bin
83mv /usr/bin/{mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
84mv /usr/bin/{sleep,stty,su,test,touch,true,uname} /bin
85mv /usr/bin/chroot /usr/sbin</userinput></screen>
86
87<para>We'll be using the <filename>kill</filename> program from the Procps
88package (installed as <filename>/bin/kill</filename> later in the chapter).
89Remove the one installed by Coreutils:</para>
90
91<screen><userinput>rm /usr/bin/kill</userinput></screen>
92
93<para>Finally, create a few necessary symlinks:</para>
94
95<screen><userinput>ln -s test /bin/[
96ln -s ../../bin/install /usr/bin</userinput></screen>
97
98</sect2>
99
100&aa-coreutils-shortdesc;
101&aa-coreutils-desc;
102
103</sect1>
104
Note: See TracBrowser for help on using the repository browser.