Le paquet Findutils contient des programmes de recherche de
fichiers. Ces programmes sont fournis pour rechercher récursivement
dans une hiérarchie de répertoires et pour créer, maintenir et
chercher dans une base de données (souvent plus rapide que la
recherche récursive mais moins fiable si la base de données n'a pas
été mise à jour récemment).
Temps de construction
approximatif: 0.6 SBU
Espace disque requis:
51 Mo
6.58.1. Installation de Findutils
D'abord supprimez un test qui peut boucler indéfiniment sur
certaines machines :
sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in
Ensuite, effectuez quelques corrections requises avec glibc-2.28 et
supérieur :
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c
sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c
echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h
Préparez la compilation de Findutils :
./configure --prefix=/usr --localstatedir=/var/lib/locate
Voici la signification de l'option de
configure :
-
--localstatedir
-
Cette option modifie l'emplacement de la base de données
locate pour
qu'elle soit dans /var/lib/locate
, pour être compatible avec
FHS.
Compilez le paquet :
make
Pour tester les résultats, lancez :
make check
Installez le paquet :
make install
Certains scripts du paquet LFS-Bootscripts dépendent de
find. Comme
/usr
peut ne pas être disponible lors
des premières étapes du démarrage, ce programme doit être sur la
partition racine. Le script updatedb doit aussi être modifié
pour corriger un chemin explicite :
mv -v /usr/bin/find /bin
sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb