Linux From Scratch: Version 5.0 | ||
---|---|---|
Zurück | Kapitel 6. Installieren der grundlegenden System Software | Weiter |
Geschätzte Kompilierzeit: 0.9 SBU Ungefähr benötigter Festplattenplatz: 69 MB |
Das Paket Coreutils enthält eine große Anzahl von Shell Werkzeugen.
Installierte Programme: basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, kill, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, whoami und yes
Coreutils ist abhängig von: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.
Die Funktion von uname ist ein wenig Fehlerhaft, weil der -p Schalter immer "unknown" ausgibt. Der folgende Patch behebt das Problem auf Intel Architekturen:
patch -Np1 -i ../coreutils-5.0-uname.patch |
Wir möchten nicht, das Coreutils seine Version von hostname installiert, weil sie schlechter ist als die von Net-tools bereitgestellte. Verhindern sie die Installation mit dem folgenden Patch:
patch -Np1 -i ../coreutils-5.0-hostname-2.patch |
Bereiten sie Coreutils zum kompilieren vor:
./configure --prefix=/usr |
Kompilieren sie das Paket:
make |
Das Programm su aus Coreutils wurde in Kapitel 5 nicht installiert weil man dazu root Rechte benötigt. Wir brauchen es aber gleich für die Test-suite. Daher installieren wir es nun:
make install-root |
Dieses Paket hat eine Test-suite mit der sie überprüfen können ob alles korrekt kompiliert wurde. Diese Test-suite macht einige Annahmen in Hinsicht auf die Existenz von nicht-root Benutzern und Gruppen und diese sind in in unserem LFS System noch nicht vorhanden. Wir erstellen nun einen dummy System Benutzer und zwei dummy Gruppen damit die Tests sauber durchlauen können. Falls sie diese Test-suite nicht ausführen möchten, überspringen sie sie und fahren sie mit "Installieren sie das Paket" fort. Das folgende Kommando bereitet uns auf das ausführen der Test-suite vor. Erstellen sie zwei dummy Gruppen und einen dummy Benutzernamen:
echo "dummy1:x:1000" >> /etc/group echo "dummy2:x:1001:dummy" >> /etc/group echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd |
Ein paar Tests müssen als root ausgeführt werden:
make check-root |
Die verbleibenden Tests werden als dummy Benutzer ausgeführt:
su dummy -c "make RUN_EXPENSIVE_TESTS=yes check" |
Entfernen sie die dummy Gruppen und Benutzer:
sed -i.bak '/dummy/d' /etc/passwd /etc/group |
Installieren sie das Paket:
make install |
Und verschieben sie einige Programme an die richtige Stelle:
mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin mv /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin mv /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin mv /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin mv /usr/bin/{touch,true,uname,vdir} /bin mv /usr/bin/chroot /usr/sbin |
Schliesslich erstellen sie noch ein paar nötige symbolische Links:
ln -s test /bin/[ ln -s ../../bin/install /usr/bin |
Zurück | Zum Anfang | Weiter |
Installieren von GCC-3.3.1 | Nach oben | Installieren von Zlib-1.1.4 |