8.50.1. Installation de Python 3
Préparez la compilation de Python :
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-optimizations
Voici la signification des options de
configuration :
-
--with-system-expat
-
Ce paramètre active la liaison avec la version du système de
Expat.
-
--with-system-ffi
-
Ce paramètre active la liaison avec la version du système de
libffi.so
.
-
--enable-optimizations
-
Ce paramètre permet d’établir des étapes d’optimisation
approfondis, mais prenant beaucoup de temps. L’interprète est
construit deux fois ;les tests effectués pendant la
première construction sont utilisés pour concevoir la version
finale optimisée.
Compilez le paquet :
make
Il n’est pas recommandé de lancer les tests à ce moment. Les tests
sont connus pour bloquer indéfiniment dans l'environnement partiel
de LFS. Si vous le souhaitez, vous pouvez relancer les tests à la
fin de ce chapitre ou quand vous réinstallerez Python 3 dans BLFS.
Pour tout de même lancer les tests, lancez make test.
Installez le paquet :
make install
À plusieurs reprises dans ce livre, on utilise la commande
pip3 pour installer
les programmes et les modules Python 3 pour chaque utilisateur
en tant que root
. Cela entre en
conflit avec les recommandations des développeurs de Python :
pour installer des paquets dans un environnement virtuel, ou dans
le répertoire home d’un utilisateur régulier (en exécutant
pip3 en tant que cet
utilisateur). Un avertissement multi-lignes s’affiche à chaque fois
que pip3 est détecté
par l’utilisateur root
.
La principale raison de cette recommandation est d’éviter les
conflits avec le paquet de gestion du système (dpkg, par exemple). Ce n’est pas
un problème, puisque LFS n’a pas de paquet de gestion s’appliquant
à l’intégralité du système. pip3 vérifiera également si une
nouvelle version est disponible dès qu’il sera exécuté. Étant donné
que la résolution du nom de domaine n’est pas encore configuré dans
l’environnement chroot de LFS, pip3 ne pourra pas procéder à la
recherche d’une mise à jour, et un message d’avertissement
s’affichera.
Après avoir lancé le système LFS et établi une connexion au réseau,
un nouvel avertissement apparaîtra, prévenant l’utilisateur de
mettre à jour pip3
d’après une roue de pré-construction su PyPI (dès qu’une nouvelle
version est disponible). LFS considère cependant pip3 comme faisant partie de
Python 3, il est donc conseillé de ne pas le mettre à jour
indépendamment. Une amélioration depuis une roue pré-construite
pourrait aussi nous faire dévier de l’objectif : construire un
système Linux sur un code source. L’avertissement à propos d’une
nouvelle version de pip3 peut donc lui aussi être
ignoré. Vous pouvez, si vous le désirez, désactiver tous ces
avertissements en activant la commande suivante, ce qui créera un
fichier de configuration :
cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
Important
Dans LFS et BLFS nous construisons et installons normalement les
modules Python avec la commande pip3. Remarquez bien que les
commandes pip3
install dans les deux livres doivent être lancées
en root
à moins qu'il s'agisse
d'un environnement virtuel Python. Exécuter pip3 install en tant
qu'utilisateur ou utilisatrice non root
peut sembler fonctionner, mais cela
rendra les modules installés indisponibles pour les autres.
pip3 install ne
réinstallera pas les modules déjà installés par défaut. Pour
utiliser la commande pip3
install pour mettre à jour un module (par
exemple, de meson-0.61.3 vers meson-0.62.0), ajoutez l'option
--upgrade
à la ligne de
commande. S'il est vraiment nécessaire de revenir à une version
précédente d'un module ou de réinstaller la même version, ajoutez
l'option --force-reinstall
--no-deps
à la ligne de commande.
Si vous le souhaitez, installez la documentation préformatée :
install -v -dm755 /usr/share/doc/python-3.11.2/html
tar --strip-components=1 \
--no-same-owner \
--no-same-permissions \
-C /usr/share/doc/python-3.11.2/html \
-xvf ../python-3.11.2-docs-html.tar.bz2
Voici la signification des commandes d'installation de la
documentation :
-
--no-same-owner
et --no-same-permissions
-
Garantit que les fichiers installés ont la bonne appartenance
et les bonnes permissions. Sans ces options, utiliser
tar installera les fichiers
du paquet avec les valeurs du créateur en amont.