Le paquet Coreutils contient des outils pour afficher et configurer les caractéristiques basiques d'un système.
Un problème connu avec le programme uname provenant de
ce paquet est que l'option -p
renvoit toujours
unknown
. Le correctif suivant corrige ce
comportement pour les architectures Intel :
patch -Np1 -i ../coreutils-5.2.1-uname-2.patch
Empêchez Coreutils d'installer des binaires qui pourraient être installés plus tard par d'autres paquets :
patch -Np1 -i \ ../coreutils-5.2.1-suppress_uptime_kill_su-1.patch
Maintenant, préparez la compilation de Coreutils :
DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr
Compilez le paquet :
make
La suite de tests de Coreutils fait quelques suppositions sur la présence de fichiers et d'utilisateurs qui ne sont pas valides si tôt dans la construction de LFS. Du coup, des éléments supplémentaires doivent être configurés avant de lancer ces tests. Allez directement à « Installez le paquet » si vous ne comptez pas lancer les tests.
Créez deux groupes et un utilisateur :
echo "dummy1:x:1000:" >> /etc/group echo "dummy2:x:1001:dummy" >> /etc/group echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd
Maintenant, la suite de tests peut être lancée. Tout d'abord, lancez les quelques tests qui ont besoin d'être lancé en tant que root :
make NON_ROOT_USERNAME=dummy check-root
Puis, lancez le reste des tests en tant qu'utilisateur dummy :
src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"
Une fois les tests terminés, supprimez l'utilisateur et les groupes :
sed -i '/dummy/d' /etc/passwd /etc/group
Installez le paquet :
make install
Déplacez quelques programmes aux bons emplacements :
mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin mv /usr/bin/{date,echo,false,head,hostname,install,ln} /bin mv /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin mv /usr/bin/{sleep,stty,test,touch,true,uname} /bin mv /usr/bin/chroot /usr/sbin
Finalement, créez un lien symbolique pour être compatible avec la FHS :
ln -s ../../bin/install /usr/bin
Supprime tout le chemin et un suffixe donné à partir du nom de fichier donné
Concatène des fichiers sur la sortie standard
Change le groupe propriétaire par le groupe donné pour chaque fichier indiqué. Le groupe peut être soit un nom soit un identifiant numérique
Change les droits de chaque fichier donné avec le mode indiqué. Le mode peut être soit une représentation symbolique des modifications à faire soit un nombre octal représentant les nouveaux droits
Modifie le propriétaire utilisateur et/ou groupe pour chaque fichier donné en utilisant la paire utilisateur:groupe
Lance une commande avec le répertoire spécifié comme répertoire racine
(/
)
Affiche la somme de vérification CRC (Cyclic Redundancy Check) et le nombre d'octets de chaque fichier
Compare deux fichiers triés, affichant sur trois colonnes, les lignes uniques et les lignes communes
Copie des fichiers
Divise un fichier donné sur plusieurs fichiers indiqués, les séparant par des modèles donnés ou des numéros de lignes. Il affiche le nombre total d'octets pour chaque nouveau fichier
Affiche des parties de lignes, sélectionnant ces parties suivant des champs ou positions donnés
Affiche l'heure actuelle dans le format donné ou initialise la date système
Copie un fichier en utilisant la taille de bloc donnée et le nombre, tout en réalisant des conversions optionnelles
Affiche l'espace disque disponible (et utilisé) sur tous les systèmes de fichiers montés, ou seulement sur les systèmes de fichiers contenant les fichiers donnés
Liste le contenu de chaque répertoire donné (identique à la commande ls)
Affiche les commandes pour initialiser la variable d'environnement
LS_COLOR
, ce qui permet de changer le schéma de couleurs utilisé
par ls
Supprime le suffixe qui ne représente pas le répertoire dans un nom de fichier donné
Affiche le total de l'espace disque utilisé par le répertoire actuel, ou par chacun des répertoires donnés incluant tous les sous-répertoires, ou par chacun des fichiers donnés
Affiche les chaînes données
Lance une commande dans un environnement modifié
Convertit les tabulations en espaces
Évalue des expressions
Affiche les facteurs premiers de tous les entiers spécifiés
Ne fait rien. Il renvoit toujours un un code d'erreur indiquant l'échec
Reformate les paragraphes dans les fichiers donnés
Emballe les lignes des fichiers donnés
Affiche les groupes auxquels appartient un utilisateur
Affiche les dix premières lignes (ou le nombre demandé de lignes) pour chaque fichier précisé
Affiche l'identifiant numérique de l'hôte en héxadécimal
Affiche ou initialise le nom de l'hôte
Affiche l'identifiant effectif de l'utilisateur courant ou de l'utilisateur précisé, l'identifiant du groupe et les groupes auxquels appartient cet utilisateur
Copie les fichiers en initialisant leur droits et, si possible, leur propriétaire et groupe
Joint à partir de deux fichiers les lignes qui ont des champs de jointure identiques
Crée un lien physique avec le nom de donné vers le fichier indiqué
Crée des liens symboliques ou physiques entre des fichiers
Indique le nom de connexion de l'utilisateur actuel
Liste le contenu de chaque répertoire donné
Affiche ou vérifie les sommes de vérification MD5 (Message Digest 5)
Crée des répertoires avec les noms donnés
Crée des fichiers FIFOs (First-In, First-Out, un « tube nommé » dans le vocable d'Unix) avec les noms donnés
Crée des noeuds périphérique avec les noms donnés. Un noeud périphérique est un fichier spécial de type caractère ou bloc, ou encore un FIFO
Déplace ou renomme des fichiers ou répertoires
Lance un programme avec un priorité modifiée
Numérote les lignes des fichiers donnés
Lance une commande immune aux arrêts brutaux, dont la sortie est redirigée vers un journal de traces
Affiche les fichiers en octal ou sous d'autres formes
Joint les fichiers donnés en faisant plaçant les lignes correspondantes ligne par ligne en les séparant par des caractères de tabulation
Vérifie que les noms de fichier sont valides ou portables
Un client « finger » léger. Il affiche quelques informations sur les utilisateurs indiqués
Fait de la pagination, principalement en colonne, des fichiers pour une impression
Affiche l'environnement
Affiche les arguments donnés suivant le format demandé, un peu comme la fonction C printf
Produit un index permutté à partir du contenu des fichiers indiqués, avec le contexte de chaque mot
Indique le nom du répertoire courant
Indique la valeur du lien symbolique
Supprime des fichiers ou des répertoires
Supprime des répertoires s'ils sont vides
Affiche une séquence de nombres, à l'intérieur d'une échelle et avec un incrément spécifié
Affiche ou vérifie des sommes de vérification 160-bit SHA1
Efface les fichiers indiqués en écrivant dessus des modèles aléatoires pour rendre la récupération des données très difficile
Fait une pause d'un certain temps
Trie les lignes des fichiers donnés
Divise les fichiers donnés en plusieurs pièces, par taille ou par nombre de lignes
Affiche le statut du fichier ou du système de fichiers
Initialise ou affiche les paramètres de la ligne du terminal
Affiche la somme de vérification et le nombre de blocs pour chacun des fichiers donnés
Vide les tampons du système de fichiers. Cela force l'enregistrement des blocs modifiés sur disque et met à jour le superbloc
Concatène les fichiers donnés à l'envers
Affiche les dix dernières lignes (ou le nombre de lignes indiqué) pour chaque fichier précisé
Lit à partir de l'entrée standard en écrivant à la fois sur la sortie standard et sur les fichiers indiqués
Compare les valeurs et vérifie les types de fichiers
Modifie les dates et heures du fichier, initialise les dates/heures d'accès et de modification des fichiers indiqués à l'heure actuelle. Les fichiers inexistants sont créés avec une longueur nulle
Traduit, réduit et supprime les caractères donnés à partir de l'entrée standard
Ne fait rien mais avec succès. Il quitte avec un code de sortie indiquant une réussite
Réalise un tri topologique. Il écrit une liste totalement ordonnée suivant un fichier donné partiellement ordonné
Indique le nom du fichier du terminal connecté à l'entrée standard
Affiche les informations système
Convertit les espaces en tabulations
Conserve qu'une ligne sur plusieurs lignes identiques successivement
Supprime le fichier donné
Indique les noms des utilisateurs actuellement connectés
Est identique à ls -l
Indique le nombre de lignes, mots et octets de chaque fichier indiqué ainsi que le nombre total de ligne lorsque plus d'un fichier est donné
Indique qui est connecté
Indique le nom de l'utilisateur associé avec l'identifiant utilisateur effectif
Affiche « y » ou la chaîne précisée de manière répétée jusqu'à être tué