Estimation du temps de construction: 3 minutes Estimation de l'espace disque requis: 25 MB |
A partir d'un fileutils lié statiquement, les programmes peuvent causer des erreurs de segmentation sur certains systèmes, si votre distribution possède Glibc-2.2.3 ou supérieure installée. Cela semble apparaître souvent sur des machines disposant d'un processeur AMD, mais il existe aussi un cas ou deux où un système Intel en était pareillement affecté. Si votre système appartient à cette catégorie, essayez la correction suivante.
Noter que dans certains cas utiliser les commandes sed aboutira à des problèmes de compilation du package, même si votre système dispose d'un processeur AMD et de Glibc-2.2.3 (ou supérieur) installée. Si c'est le cas, vous aurez besoin de supprimer le répertoire fileutils-4.1 et de le déballer de nouveau de l'archive tar. Nous croyons que cela peut être le cas si votre distribution a modifié Glibc-2.2.3, mais aucun détail n'est disponible pour l'instant.
Pour permettre au package de compiler correctement sur des machines AMD/Glibc-2.2.3, exécuter les commandes suivantes. N'essayez pas cette correction si vous n'avez pas Glibc-2.2.3 installé. Cela créerait toutes sortes de problèmes de compilation.
cp lib/Makefile.in lib/Makefile.in.backup && sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \ -e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \ lib/Makefile.in > lib/Makefile.in~ && mv lib/Makefile.in~ lib/Makefile.in |
Installez Fileutils en lançant les commandes suivantes:
./configure --disable-nls \ --prefix=$LFS/usr --libexecdir=$LFS/bin --bindir=$LFS/bin && make LDFLAGS=-static && make install && cd $LFS/usr/bin && ln -sf ../../bin/install |
Une fois fileutils installé, vous pouvez tester si le problème d'erreur de segmentation a été supprimé en lançant $LFS/bin/ls. Si cela fonctionne, tout va bien. Sinon, vous devez refaire l'installation en utilisant les commandes sed si vous ne les aviez pas utilisé, ou sans les commandes sed si vous les aviez utilisé.
cp lib/Makefile.in lib/Makefile.in.backup : Nous exécutons cette commande pour garder une copie du fichier que nous allons modifier.
cp lib/Makefile.in lib/Makefile.in.backup && sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \ -e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \ lib/Makefile.in > lib/Makefile.in~ && mv lib/Makefile.in~ lib/Makefile.in: |
--libexecdir=$LFS/bin: Cette option de configuration positionne le répertoire d'exécution à $LFS/bin. La valeur habituelle est /usr/libexec mais rien n'y est mis. Changer cette valeur permet juste d'empêcher la création de ce répertoire.
Le package Fileutils contient les programmes chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch et vdir.
chgrp change le propriétaire du groupe des fichiers spécifiés par celui du groupe donné, qui peut indifféremment être identifié par un nom ou un numéro de groupe.
chmod change les permissions des fichiers spécifiés en fonction du mode, ce mode pouvant être une représentation symbolique des changements à effectuer, ou une représentation octale d'un nombre représentant le champ de bits des nouvelles permissions.
chown change le propriétaire et/ou le groupe des fichiers spécifiés.
cp copie des fichiers d'un répertoire à un autre.
dd copie un fichier (de l'entrée standard vers la sortie standard, par défaut) en fonction d'une taille de bloc et des options de conversion du fichier données par l'utilisateur.
df affiche l'espace disque disponible du système de fichiers contenant les fichiers passés en argument. Sans argument, df indiquera les quantités correspondant à tous les systèmes de fichiers montés.
dir et vdir sont des versions de ls avec des formats d'affichage différents. Ces programmes listent tous les fichiers ou répertoires donnés en argument. Le contenu des répertoires est trié alphabétiquement. Pour ls, les fichiers sont affichés en colonnes par défaut et triés verticalement si la sortie standard est un terminal; ils sont affichés ligne par ligne dans le cas contraire. Pour dir, les fichiers sont par défaut affichés en colonnes et triés verticalement. Pour vdir, l'affichage par défaut est le format long.
dircolors affiche une liste de commandes permettant de définir la variable d'environnement LS_COLOR. La variable LS_COLOR est utilisée pour changer les couleurs d'affichage par défaut de la commande ls et d'autres utilitaires.
du affiche l'espace disque utilisé par chaque argument et chacun de ces sous-répertoires.
install copie les fichiers puis positionne leurs permissions et, si possible, leur propriétaire et leur groupe.
ln crée des liens matériels ou symboliques entre fichiers.
mkdir crée un répertoire correspondant à chacun des noms mentionnés en argument.
mkfifo crée un fichier FIFO avec les noms passés en argument.
mknod crée un fichier FIFO, fichier spécial en mode caractère, ou fichier spécial en mode bloc avec le nom passé en argument.
mv déplace des fichiers d'un répertoire à un autre ou les renomme, selon les arguments qui lui sont passés.
rm efface des fichiers ou des répertoires.
rmdir efface des répertoires, s'ils sont vides.
shred efface un fichier de façon sûre, en écrasant son contenu pour qu'il ne puisse être récupéré.
sync force l'écriture des blocs modifiés et met à jour le super bloc.
touch remplace le temps d'accès et de modification des fichiers passés en argument par l'heure et la date courantes. S'ils n'existent pas, des fichiers vides sont créés.
Fileutils-4.1 nécessite l'installation de :
sh du package bash
ar du package binutils
as du package binutils
ld du package binutils
cmp du package diffutils
chmod du package fileutils
cp du package fileutils
install du package fileutils
ln du package fileutils
ls du package fileutils
mkdir du package fileutils
mv du package fileutils
rm du package fileutils
cc du package gcc
egrep du package grep
grep du package grep
make du package make
sed du package sed
basename du package sh-utils
expr du package sh-utils
sleep du package sh-utils
uname du package sh-utils
cat du package textutils
tr du package textutils
uniq du package textutils