5.18. Installing Sh-utils-2.0

Estimated build time:           2 minutes
Estimated required disk space:  23 MB

5.18.1. Installation of Sh-utils

Before Sh-utils is installed, the sh-utils patch file may need to be applied. This patch is needed to avoid a conflict of variable names with certain Glibc versions (usually glibc-2.1.x) when compiling sh-utils statically. It is however safe to apply the patch even if you are running a different glibc version, so if you aren't sure, it's best to apply it.

Apply the patch by running the following command:

patch -Np1 -i ../sh-utils-2.0.patch

Install Sh-utils by running the following commands:

./configure --prefix=$LFS/usr --disable-nls &&
make LDFLAGS=-static &&
make install &&
cd $LFS/usr/bin &&
mv basename date echo false hostname $LFS/bin &&
mv pwd sleep stty test true uname $LFS/bin &&
mv chroot ../sbin

During the make install stage you will see the following warning:

WARNING: insufficient access; not installing su
NOTE: to install su, run 'make install-root' as root

You can safely ignore that warning. You need to be logged in as root in order to install su the way sh-utils wants to install it, that being suid root. Because we don't need su during chapter 6, and su will be properly installed when we re-install sh-utils in chapter 6 anyways, you can just pretend you didn't see it.

5.18.2. Contents of sh-utils-2.0

5.18.2.2. Descriptions

5.18.3. Dependencies

Sh-utils-2.0 needs the following to be installed:


autoconf: autoconf, autoheader
automake: aclocal, automake
bash: sh
binutils: ar, as, ld, ranlib
diffutils: cmp
fileutils: chmod, chown, install, ls, mv, rm
gettext: msgfmt, xgettext
gcc: cc, cc1, collect2, cpp0, gcc
glibc: getconf
grep: egrep, fgrep, grep
m4: m4
make: make
gawk: gawk
perl: perl
sed: sed
sh-utils: basename, echo, expr, hostname, sleep, uname
tar: tar
texinfo: install-info, makeinfo
textutils: cat, tr