Les paquets installés dans ce livre ne sont que la partie visible de l'iceberg. Nous espérons que l'expérience acquise avec les livres LFS et BLFS vous donnera les bases nécessaires pour compiler, installer et configurer des paquets non inclus dans ce livre.
Quand vous installez un paquet à un emplacement différent de
/
, ou /usr
, vous l'installez hors des paramètres
d'environnement par défaut de la plupart des machines. Les exemples
suivants devraient vous aider à trouver la solution à ce problème.
Les exemples couvrent tout l'éventail des paramètres qui peuvent
nécessiter une mise à jour, mais ils ne sont pas tous nécessaires
dans toutes les situations.
Étendez la variable PATH
pour
inclure $PREFIX/bin
.
Étendez la variable PATH
de
root
pour inclure $PREFIX/sbin
.
Ajoutez $PREFIX/lib
à
/etc/ld.so.conf
ou étendez la
variable LD_LIBRARY_PATH
pour
l'inclure. Avant de recourir à cette dernière option, consultez
la page http://xahlee.info/UnixResource_dir/_/ldpath.html.
Si vous modifiez /etc/ld.so.conf
,
rappelez-vous de mettre à jour /etc/ld.so.cache
en exécutant la commande
ldconfig en tant
qu'utilisateur root
.
Ajoutez $PREFIX/man
à
/etc/man_db.conf
ou étendez la
variable MANPATH
.
Ajoutez $PREFIX/info
à la
variable INFOPATH
.
Ajoutez $PREFIX/lib/pkgconfig
à
la variable PKG_CONFIG_PATH
. Comme
certains paquets installent maintenant des fichiers
.pc
dans $PREFIX/share/pkgconfig
, il est possible que
vous ayez également à inclure ce répertoire.
Ajoutez $PREFIX/include
à la
variable CPPFLAGS
lors de la
compilation de paquets qui dépendent du paquet que vous avez
installé.
Ajoutez $PREFIX/lib
à la variable
LDFLAGS
lors de la compilation de
paquets qui dépendent d'une bibliothèque installée par le
paquet.
Si vous cherchez un paquet qui n'est pas dans le livre, voici différentes manières de le trouver.
Si vous connaissez le nom du paquet, cherchez-le sur SourceCode
sur https://sourceforge.net/directory/
et cherchez-le sur GitHub sur https://github.com/. Cherchez aussi
sur Google sur https://google.com/. Une recherche de
rpm
sur https://rpmfind.net/ ou de
deb
sur https://www.debian.org/distrib/packages#search_packages
peut parfois mener à un lien vers le paquet.
Si vous connaissez le nom de l'exécutable mais pas le paquet auquel il appartient, essayez d'abord de le chercher sur Google avec le nom de l'exécutable. S'il y a trop de résultats, cherchez cet exécutable dans le dépôt Debian sur https://www.debian.org/distrib/packages#search_contents.
Quelques astuces générales sur la gestion des nouveaux paquets :
De nombreux paquets récents suivent le processus ./configure && make && make install. Vous pouvez obtenir de l'aide sur les options acceptées par configure via la commande ./configure --help.
La plupart des paquets contiennent de la documentation sur la compilation et l'installation du paquet. Certaines documentations sont excellentes, mais ce n'est pas toujours le cas. Consultez la page d'accueil du paquet pour obtenir des indications supplémentaires à jour sur la compilation et la configuration du paquet.
Si vous rencontrez un problème lors de la compilation du paquet, cherchez l'erreur dans les archives LFS sur https://www.linuxfromscratch.org/search.html. Si cela ne fonctionne pas, cherchez sur Google. En général une distribution aura déjà corrigé le problème (nombre d'entre elles utilisent les versions de développement des paquets, elles voient donc les changements plus tôt que nous qui utilisons généralement les versions stables publiées). Cependant, faites attention — les outils de construction ont tendance à appliquer des correctifs qui ne sont plus nécessaires et à faire des modifications qui ne sont liées qu'à leur manière de construire un paquet. Vous devrez peut-être faire des recherches approfondies pour trouver un correctif à la version du paquet que vous essayez d'utiliser, voire pour trouver le paquet (les noms sont parfois différents de ceux auxquels on s'attend, comme ghostscript qui a souvent un préfixe ou un suffixe dans son nom), mais les remarques suivantes peuvent vous aider, particulièrement pour ceux qui, comme les éditeurs, souhaitent construire les dernières versions et rencontrent des problèmes :
Arch https://www.archlinux.org/packages/ :
saisissez le nom du paquet dans le champ
« Keywords » (mots-clés), sélectionnez le nom
du paquet, puis le champ « Source Files »
(Fichiers sources), et enfin l'entrée PKGBUILD
pour voir comment le paquet
est construit.
Debian https://ftp.debian.org/debian/pool
(utilisez la version de votre pays s'il y en a
une) : les sources se trouvent dans des archives
.tar.gz (soit les sources originales .orig
, soit les fichiers dfsg
qui contiennent les parties
conformes aux principes du logiciel libre de Debian),
accompagnées d'ajouts versionnés .diff.gz ou .tar.gz. Ces
ajouts montrent souvent la manière dont le paquet est
construit et peuvent contenir des correctifs. Dans les
versions .diff.gz, tous les correctifs créent des
fichiers dans le répertoire debian/patches
.
La source des paquets de Fedora est réorganisée de temps en temps. Pour l'instant la source des paquets rpm se trouve sur https://src.fedoraproject.org/projects/rpms/%2A et à partir de là, vous pouvez saisir le nom d'un paquet dans le champ de recherche. Si le paquet est trouvé, vous pouvez consulter ses fichiers (specfile pour contrôler la construction, et divers correctifs) ou les commits. Si c'est impossible, vous pouvez télécharger un srpm (un rpm source) et en utilisant rpm2cpio (voir les astuces au bas de cette page). Rendez-vous sur https://dl.fedoraproject.org/pub/fedora/linux/ pour les rpm, puis choisissez le dépôt que vous souhaitez consulter : development/rawhide correspond à la dernière version de développement. Choisissez releases pour voir ce qui se trouvait dans une version publiée, updates pour les mises à jour, ou updates/testing pour les dernières mises à jour qui peuvent fonctionner ou avoir des problèmes.
Gentoo — Utilisez d'abord un moteur de recherche pour
trouver un ebuild qui semble corriger votre problème, ou
recherchez sur https://packages.gentoo.org/.
Utilisez le champ de recherche. Note où le paquet se
trouve dans la hiérarchie de portage, p. ex.
app-something/
. En général
vous pouvez traiter l'ebuild comme une sort de
combinaison entre du pseudo-code et du shell avec des
fonctions que vous pouvez deviner, comme dodoc. Si la correction
est juste un sed, essayez-la.
Cependant, dans la plupart des cas, la correction
utilisera un correctif. Pour le trouver, utilisez un
miroir de gentoo-portage : deux liens vers des
miroirs aux USA qui semblent souvent à jour sont
https://mirror.rackspace.com/gentoo-portage/
et https://mirror.steadfast.net/gentoo-portage/.
Naviguez dans l'arborescence des paquets, puis dans le
répertoire files/
pour
trouvez le correctif. Parfois un miroir portage n'a pas
encore été mis à jour, surtout pour un nouveau correctif
très récent. Dans quelques cas, gentoo regroupe les
correctifs dans une archive et l'ebuild aura un lien de
la forme
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz :
ici, cherchez PATCH_DEV et PATCH_VER dans le fichier et
formatez l'URL complète pour votre navigateur ou wget.
N'oubliez pas le « ~ » devant l'ID du
développeur et remarquez que rechercher les niveaux
précédents de l'URL dans un navigateur peut vous renvoyez
sur www.gentoo.org ou renvoyer une erreur 403 (interdit).
openSUSE est une distribution à publication continue. Certaines versions des paquets sont disponibles sur https://download.opensuse.org/source/tumbleweed/repo/oss/src/ mais d'autres se trouvent dans ../update/openSUSE-current/src : les sources ne semblent disponibles que dans des rpm sources.
Slackware : actuellement le navigateur de paquets
officiel ne fonctionne pas. Le site https://slackbuilds.org/
regroupe les versions précédentes et actuelles dans leur
dépôt non officiel, avec des liens vers les pages
d'accueil, les téléchargements et des fichiers
individuels, en particulier les fichiers .SlackBuild
.
Ubuntu ftp://ftp.ubuntu.com/ubuntu/pool/ : voir les notes Debian ci-dessus.
Si vous n'y parvenez pas, essayez la liste de diffusion blfs-support.
Si vous avez trouvé un paquet qui n'est disponible qu'au format
.deb
ou .rpm
, deux petits scripts rpm2targz et deb2targz sont disponibles sur
https://anduin.linuxfromscratch.org/BLFS/extras/deb2targz.tar.bz2
et
https://anduin.linuxfromscratch.org/BLFS/extras/rpm2targz.tar.bz2
pour convertir les archives dans un simple format tar.gz
.
Le script rpm2cpio peut s'avérer utile. La version Perl qui se trouve dans les archives du noyau linux, sur https://lore.kernel.org/all/20021016121842.GA2292@ncsu.edu/2-rpm2cpio, fonctionne pour la plupart des sources rpm. Le script rpm2targz utilise un script ou un binaire rpm2cpio s'il y en a un dans votre PATH. Remarquez que rpm2cpio extrait un rpm source dans le répertoire actuel, et donne une archive tar, un fichier spec, et peut-être des correctifs ou d'autres fichiers.