Aide-mémoire (des commandes) de Gentoo
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
Cet article est une fiche de références de commandes et astuces utiles à l’administration des systèmes Gentoo. Les nouveaux arrivant et les «barbes-grises» sont encouragés à ajouter leur propre astuces utiles ci-dessous.
Gestion des paquets
Méthodes de synchronisation
Il est important de lire et suivre toutes les «news items» (NdT: les nouvelles annonces de Portage) qui se présente après avoir réalisée une synchronisation. Voir les instructions détaillées à propos des mises à jours.
Portage
Synchronise tout les dépôts qui sont paramétrés pour automatiquement inclure le dépôt ebuild :
root #emaint --auto syncOu, pour faire court :
root #emaint -a syncSynchronise le dépôt ebuild de Gentoo en utilisant les miroirs pour obtenir un «snapshot» (NdT: instantanée) qui est (au plus) vieux d’un jour :
root #emerge-webrsyncemerge --sync lance désormais le module de synchronisation d’emaint avec l’option --auto. Voir les opérations de synchronisation de Portage.
eix
Synchroniser le dépôt des paquets configurés et le dépôt ebuild de Gentoo en utilisant eix :
root #eix-syncCela ne synchronise pas uniquement les dépôts, cela met à jour le cache utilisé par eix pour réaliser des requêtes. Il peut être préférable de configurer Portage pour mettre à jour le cache automatiquement.
Listage des paquets
qlist
Liste les paquets installés avec leur numéro de version et le nom de l’«overlay» utilisé (NdT: une arborescence alternatives de paquets disponibles) :
root #qlist -IRvqlist est fournit par app-portage/portage-utils.
eix
Pour voir la suite des paquets installés dans world, accompagnés de leur version disponibles, il est possible d’utiliser eix :
root #eix --world | lessPour conserver la couleur dans la sortie (NdT: du terminal), utilisez l’option --color :
root #eix --color -c --world | less -RPortage
The Gentoo Linux Security Advisories check tool can test systems against some security vulnerabilities:
user $glsa-check --test allReferring to Package sets, the selected set packages are listed by issuing:
user $emerge --pretend --quiet --emptytree --nodeps @selectedListe tous les paquets (*), ou des paquets désignés, utilisant plusieurs slots :
user $equery list --duplicates '*'List the available synchronized versions and keywords of a package.
user $equery y firefoxInstallation de paquet
Dans l’exemple suivant le paquet www-client/firefox vas être utilisé, mais les utilisateurs devraient le remplacer avec les paquets qu’ils veulent installer.
Lister quels paquets seront installés, sans les installer :
user $emerge --pretend --verbose www-client/firefoxOu, pour faire court :
user $emerge -pv www-client/firefoxListe quels paquets seront installé, le demander avant l’installation :
root #emerge --ask --verbose www-client/firefoxOu, pour faire court :
root #emerge -av www-client/firefoxInstaller une version spécifique
Installer une version spécifique d’un paquet (utiliser "\=" (anti-slash et le signe égal) pour des terminaux qui donne une signification particulière au caractère "="). Par exemple :
root #emerge --ask =www-client/firefox-96.0.1Cela marchera temporairement, jusqu’à ce que le système soit mis à jour. Durant une mise à jour de Portage il essaiera d’installer la dernière version stable du paquet peu importe la version du paquet installé ; si le paquet a été originellement installé avec l’opérateur pré-fixé = ou non.
Pour prévenir Portage d’automatiquement mettre à jour un paquet, ajouter la ligne suivante dans le fichier /etc/portage/package.mask/package.mask (le créer s’il n’existe pas). Spécifier l’opérateur plus-grand-que préfixé (>) ou plus-petit-que (<) s’il est plus récent :
/etc/portage/package.mask<www-client/firefox-96.0.1
Voir le fichier /etc/portage/package.mask pour plus de détails sur le masquage des paquets.
Install only some packages in a group
To exclude packages and their dependencies when updating:
root #emerge --update @world --exclude="firefox libreoffice"Add an already installed package to the world
Update the world file without reinstalling a package:
root #emerge --noreplace firefoxInstaller (NdT: un paquet) sans l’ajouter au fichier monde
Installer un paquet sans l’ajouter dans le fichier monde :
root #emerge --ask --oneshot www-client/firefoxOu, pour faire court :
root #emerge -a1 www-client/firefoxSuppression de paquet
Voir la documentation d’emerge sur la suppression des paquets pour plus d’informations.
--deselect
Utiliser l’option emerge --deselect (ou -W pour faire court) pour supprimer le paquet spécifié depuis le @world set (exemple : cela indique que le paquet n’est plus désiré désormais) :
root #emerge --deselect www-client/firefoxMaintenant lancer emerge --depclean (ou -c pour faire court). L’option --pretend (-p) fera faire à emerge une liste des actions à entreprendre, cela doit être revérifier avant application pour être sûr qu’aucun paquet désiré ne soit enlevé :
user $emerge --pretend --depcleanSi emerge --depclean n’as pas été lancé depuis un moment, il pourrait tenter de supprimer de nombreux paquets - la prudence est de mise. Une fois qu’il est certain que la commande emerge --depclean supprimera seulement des paquets non désirés, lancer :
root #emerge --ask --depcleanL’option --ask n’est pas réellement nécessaire après --pretend, mais est inclus dans la dernière commande pour éviter toutes mésaventures avec un copier-coller.
Ne pas confondre l’option en minuscule
-c, qui est la version courte de --depclean (et est sûr), avec la version en majuscule -C qui risque d’endommager le système et ne devrait être utilisé que lorsque cela est absolument nécessaire (voir l’avertissement dans la section suivante).--depclean
Pour supprimer directement un paquet dont aucun autre ne dépend :
root #emerge --ask --verbose --depclean www-client/firefoxCalculating dependencies... done!
>>> Calculating removal order...
>>> These are the packages that would be unmerged:
www-client/firefox
selected: 68.5.0
protected: none
omitted: none
All selected packages: =www-client/firefox-68.5.0
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
Would you like to unmerge these packages? [Yes/No]
Comme garde-fou, depclean ne supprimera pas de paquets à moins que toutes dépendances soit résolu. En conséquence, il est parfois nécessaire de lancer en premier :
root #emerge --ask --verbose --update --newuse --deep @worldUtiliser --changed-use (-U) à la place de --newuse (-N) pour éviter de recompiler lorsque seulement un USE flag a été ajouté ou supprimé du dépôt. Utiliser l’option --quiet (-q) pour une exécution plus succincte :
root #emerge --ask --quiet --update --changed-use --deep @worldIl y a l’option
--unmerge (-C), mais cela n’est pas recommandé et peut casser le système si elle n’est pas utilisé avec précaution. Cette option n’est à utiliser que si nécessaire et une fois correctement informé de ce qu’elle va faire. Cela va casser le système, ou d’autres logiciels, si utilisé sur certains paquet. La manière correcte de supprimer un paquet est en théorie toujours l’option --depclean, comme décrite ci-dessus. Cela dit, elle est parfois utile pour temporairement un blocage compliqué à résoudre.Mise à jour des paquets
Pour mettre à jour tout les paquets dans le world set, leur dépendances (--deep) et les paquets qui ont eu un changement d’USE flag (évitant des recompilations qui ne sont pas nécessaires quand le changement n’a pas d’impact) :
root #emerge --ask --verbose --update --deep --changed-use @worldL’option --newuse peut être utilisée à la place de --changed-use pour être certains que tout les USE flags de tout les paquets reflètent leur état réels avec ceux du dépôt de Gentoo , cela dit il y aura plus de re-compilations. L’option --with-bdeps=y peut être utilisé pour mettre à jour les dépendances pendant celle-ci.
Voir mettre à jour Gentoo pour des informations plus approfondies.
Résolution des problèmes de paquet
Vérifier les bibliothèques manquantes et les reconstruire (ce qui normalement n’est pas nécessaire) :
root #revdep-rebuild -vequery fait partie de app-portage/gentoolkit. Installable via cette commande :
root #emerge -a gentoolkitIndique quel paquet installé procure une commande en utilisant equery :
user $equery b `which vim`qfile peut offrir une alternative plus rapide à equery, si nécessaire.
Indique quel paquet (non) installé procure une commande en utilisant e-file :
user $e-file vimInstaller e-file avec :
root #emerge -a app-portage/pflIndique quels paquets dépendent d’un paquet spécifique (cat/pkg dans cet exemple) en utilisant equery :
user $equery d www-client/firefoxObtenir des informations à propos d’un paquet en utilisant eix :
root #eix www-client/firefoxNe pas désinstaller sys-libs/glibc. Il est nécessaire pour à peu près tout les autres paquets. S’il est supprimé par accident, une clé USB/disque dur de récupération peut être nécessaire. Il peut être possible de récupérer glibc après avoir paramétré
PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/amd64-stable/" dans /etc/portage/make.conf.Reconstruction
Parfois il est nécessaire de reconstruire des paquets pour que certains autres puissent fonctionner. Voici parmi les re-compilations les plus communes :
Après avoir installé un nouveau noyau :
root #emerge @module-rebuildPour utiliser de nouvelles bibliothèques :
root #emerge @preserved-rebuildAméliorations de Portage
S’occuper d’un changement de configurations après un emerge qui viens de se compléter :
root #dispatch-confAprès une installation ou des mises à jours
Après avoir mis à jour le paquet perl-core :
root #perl-cleaner --allOr si la commande précédente n’a pas fonctionné :
root #perl-cleaner --reallyall -- -avPour le paquet haskell :
root #haskell-updaterUSE flags
Obtenir une description et l’usage de l’USE flag X en utilisant euse :
user $euse -i XObtenir plus d’informations sur euse en lisant les pages de son man :
user $man euseVoir quels paquets ont l’USE flag mysql :
user $equery hasuse mysqlMontre quels paquets sont actuellement compilés avec le support de l’USE flag mysql :
user $eix --installed-with-use mysqlMontre les USE flags disponibles pour un paquet spécifiques :
user $equery uses <nom-du-paquet>Ajouter rapidement l’USE flag requis pour l’installation d’un paquet :
root #echo 'dev-util/cmake -qt5' >> /etc/portage/package.useFichiers importants de Portage
- /etc/portage - répertoire de configuration primaire de Portage.
- /etc/portage/make.conf - Paramètres globaux (USE flags, options du compilateur).
- /etc/portage/package.use - USE flags pour des paquets individuellement. Peut aussi être un répertoire contenant plusieurs fichiers.
- /etc/portage/package.accept_keywords - Keyword (NdT: en français, «mot-clé») pour des paquets individuels; exemple: ~amd64, ~x86, ou ∼arm.
- /etc/portage/package.license - Les licences acceptées.
- /etc/portage/profile/use.mask - pour «masking/unmasking» (NdT: masquer/démasquer, en français) les USE flags verrouillés.
- /var/lib/portage/world - Liste des «atoms» de paquets explicitement installés.
- /var/db/pkg - Contient des informations pour toutes les suites de paquets installés contenant des informations à propos des fichiers d’installations.
Gestion des journaux
genlop
genlop est un ordinateur de journaux (NdT: dans le sens qui trie, ordonne) pour Portage, qui peut aussi estimer le temps nécessaire à construire un paquet.
Installer app-portage/genlop en tapant :
root #emerge -a app-portage/genlopObtenir plus d’informations sur genlop en lisant les pages de son manuel (man) :
root #man genlopVoir les 10 derniers emerge (installations) :
root #genlop -l | tail -n 10Pour voir combien de temps prendra la compilation de LibreOffice :
root #genlop -t libreofficeEstimer combien de temps prendra la commande emerge -uND --with-bdeps=y @world :
root #emerge -pU @world | genlop --pretendVoir le dernier merge d’un ebuild durant la mise à jour du système :
root #watch genlop -uncOverlays (arborescence alternative de Portage)
Dépôt eselect
app-eselect/eselect-repository peut être installé en tapant :
root #emerge -a app-eselect/eselect-repositoryLister toutes les arborescences alternatives (de Portage, NdT: en anglais «overlays») :
user $eselect repository listLister tout les overlays installés :
user $eselect repository list -iVoir Eselect/Repository pour plus d’informations.
Services
Obtenir un terminal en root (si l’utilisateur est dans la liste de sudoers) :
user $sudo -iOpenRC
Démarrer le démon (NdT: dans le sens service) au niveau d’exécution par défaut au démarrage :
root #rc-update add sshd defaultDémarrer le service sshd tout de suite :
root #rc-service sshd startVérifier si le service sshd est en cours d’exécution :
root #rc-service sshd statusRedémarrer le service sshd :
root #rc-service sshd restartArrêter le service sshd :
root #rc-service sshd stopLister les services, leur état et à quel niveau d’exécution ils appartiennent :
root #rc-status --allAffiche les services activés et à quel niveau d’exécution ils appartiennent (qu’ils soient en cours d’exécution ou non, seulement s’ils sont activés au démarrage ou non) :
root #rc-update showsystemd
Démarrer le démon ssh au démarrage :
root #systemctl enable sshdDémarrer le service sshd tout de suite :
root #systemctl start sshdVérifier si le service sshd est en cours d’exécution :
root #systemctl status sshdAstuces
Générer les méta-données du cache
Les dépôts ebuild varient du très petit au très gros en taille. Cela résulte en une exécution très lente de la plupart des opérations de Portage. Cela arrive car l’arborescence alternatives (overlays) ne contient pas les méta-données du cache. Le cache est utilisée pour accélérer les recherches et pour construire l’arbre des dépendances. Une astuce sympathique consiste à générer les méta-données localement après avoir synchronisé les arborescences.
root #emerge --regenCette astuces fonctionne aussi en conjonction avec eix. eix-update peut utiliser les méta-données du cache généré par emerge --regen pour accélérer les choses. Pour activer cela, ajouter la variable suivante au fichier /etc/eixrc/00-eixrc :
/etc/eixrc/00-eixrcOVERLAY_CACHE_METHOD="assign"
Chercher des paquets dans Portage avec des expressions régulières
Pour chercher des paquets dans Portage, avec la version installée, via les expressions régulières :
root #emerge -s "%^python$"ou
root #emerge --search "%^python$"qcheck
Utiliser qcheck pour vérifier les paquets installés :
root #qcheck vim-coreqcheck est installé avec app-portage/portage-utils et peut être installé en exécutant cette commande :
root #emerge -a app-portage/portage-utilsApprendre plus à propos de qcheck en lisant les pages de son manuel :
user $man qcheck