source: chapter06/coreutils-inst.xml@ 0bb2989

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_0 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 0bb2989 was 6952b96, checked in by Greg Schafer <greg@…>, 21 years ago

Chapter 6 - Coreutils: Remove bogus chown operation reported by Ryan.

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

  • Property mode set to 100644
File size: 3.1 KB
Line 
1<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
2
3<sect2>
4<title>Installation of Coreutils</title>
5
6<para>Normally the functionality of <userinput>uname</userinput> is somewhat
7broken, in that the <userinput>-p</userinput> switch always returns "unknown".
8The following patch fixes this behaviour for Intel architectures:</para>
9
10<para><screen><userinput>patch -Np1 -i ../coreutils-&coreutils-uname-patch-version;.patch</userinput></screen></para>
11
12<para>We do not want Coreutils to install its version of the
13<userinput>hostname</userinput> program, because it is inferior to the version
14provided by Net-tools. Prevent its installation by applying a patch:</para>
15
16<para><screen><userinput>patch -Np1 -i ../coreutils-&coreutils-hostname-patch-version;.patch</userinput></screen></para>
17
18<para>Now prepare Coreutils for compilation:</para>
19
20<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
21
22<para>Compile the package:</para>
23
24<para><screen><userinput>make</userinput></screen></para>
25
26<para>This package has a test suite available which can perform a number of
27checks to ensure it built correctly. However, this particular test suite makes
28some assumptions that aren't quite vaild at this early stage of Chapter 6. We
29therefore make a few adjustments to allow the tests to run properly. Should you
30choose not to run the test suite, skip down to "Install the package". The
31following commands will prepare us for the test suite. Create two dummy groups
32and a dummy user name:</para>
33
34<para><screen><userinput>echo "dummy1:x:1000" >> /etc/group
35echo "dummy2:x:1001:dummy" >> /etc/group
36echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen></para>
37
38<para>The <userinput>su</userinput> program from Coreutils wasn't installed in
39Chapter 5 because it needed <emphasis>root</emphasis> privilege to install. We
40work around this problem by installing it now:</para>
41
42<para><screen><userinput>make install-root</userinput></screen></para>
43
44<para>Some tests are meant to run as <emphasis>root</emphasis>:</para>
45
46<para><screen><userinput>make check-root</userinput></screen></para>
47
48<para>The remainder of the tests are run as the <emphasis>dummy</emphasis>
49user:</para>
50
51<para><screen><userinput>su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen></para>
52
53<para>Remove the dummy groups and user name:</para>
54
55<para><screen><userinput>sed -i.bak '/dummy/d' /etc/passwd /etc/group</userinput></screen></para>
56
57<para>Install the package:</para>
58
59<para><screen><userinput>make install</userinput></screen></para>
60
61<para>And move some programs to their proper locations:</para>
62
63<para><screen><userinput>mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
64mv /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin
65mv /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin
66mv /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin
67mv /usr/bin/{touch,true,uname,vdir} /bin
68mv /usr/bin/chroot /usr/sbin</userinput></screen></para>
69
70<para>Finally, create a few necessary symlinks:</para>
71
72<para><screen><userinput>ln -s test /bin/[
73ln -s ../../bin/install /usr/bin</userinput></screen></para>
74
75</sect2>
76
Note: See TracBrowser for help on using the repository browser.