Installer Coreutils-5.0

Estimation du temps de construction :           0,9 SBU
Estimation de l'espace disque requis :  69 Mo

Contenu de Coreutils

Le package Coreutils contient un grand ensemble d'utilitaires shell basiques.

Programmes installés : 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 et yes

Dépendances d'installation de Coreutils

Coreutils dépend de Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

Installation de Coreutils

Normalement, la fonctionnalité de uname est quelque peu cassée, dans le fait que le paramètre -p renvoie toujours "unknown". Le correctif suivant corrige ce comportement pour les architectures Intel :

patch -Np1 -i ../coreutils-5.0-uname.patch

Nous ne voulons pas que Coreutils installe sa version du programme hostname parce qu'il est inférieur à la version fournie par Net-tools. Empêchez cette installation en appliquant un correctif :

patch -Np1 -i ../coreutils-5.0-hostname-2.patch

Maintenant, préparez la compilation de Coreutils :

./configure --prefix=/usr

Compilez le paquet :

make

Le programme su de Coreutils n'était pas installé parce qu'il avait besoin des privilèges de root pour le faire. Nous en avons besoin quelques instants pour la suite de tests. Donc, nous contournons le problème en l'installant maintenant :

make install-root

Ce paquet dispose d'une suite de tests réalisant un ensemble de vérifications pour s'assurer que tout est construit correctement. Néanmoins, cette suite de tests particuliers fait quelques suppositions sur la présence d'utilisateurs et de groupes non root qui ne s'appliquent pas aussi tôt dans la construction de LFS. Nous créons donc un utilisateur système dummy et deux groupes dummy pour permettre aux tests de s'exécuter correctement. Si vous décidez de ne pas lancer cette suite de tests, passez directement à la section "Installez le paquet". Les commandes suivantes prépareront la suite de tests. Créez l'utilisateur et les deux groupes :

echo "dummy1:x:1000" >> /etc/group
echo "dummy2:x:1001:dummy" >> /etc/group
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd

Certains tests doivent être lancés en tant que root :

make check-root

Le reste des tests est lancé en tant qu'utilisateur dummy :

su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"

Supprimez les noms d'utilisateur et de groupe dummy :

sed -i.bak '/dummy/d' /etc/passwd /etc/group

Installez le paquet :

make install

Et déplacez quelques programmes vers leur bon emplacement :

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

Finalement, créez quelques liens symboliques nécessaires :

ln -s test /bin/[
ln -s ../../bin/install /usr/bin