Paquets Linux
Ce chapitre est consacré à la gestion des paquets de logiciels sous Linux. On y verra la manipulation courante des utilitaires de base comme dpkg ou rpm mais aussi des gestionnaires de dépôt comme apt ou yum. On élargira cette vue avec d’autres outils comme opkg, pacman, emerge ou encore apk.
1. Gestionnaire de paquets
1.1. Gestionnaire de paquets
Un gestionnaire de paquets est un (ou plusieurs) outil(s) automatisant le processus d’installation, désinstallation, mise à jour de logiciels installés sur un système informatique.
Un paquet est une archive comprenant les fichiers informatiques, les informations et procédures nécessaires à l’installation d’un logiciel sur un système d’exploitation, en s’assurant de la cohérence fonctionnelle du système ainsi modifié.
1.2. Utilité
Le gestionnaire de paquets permet d’effectuer différentes opérations sur les paquets disponibles :
- Installation, mise à jour, et désinstallation ;
- Utilisation des paquets provenant de supports variés (CD d’installation, dépôts sur internet, partage réseau …) ;
- Vérification des sommes de contrôle de chaque paquet récupéré pour en vérifier l’intégrité ;
- Vérification des dépendances logicielles afin d’obtenir une version fonctionnelle d’un paquetage
1.3. Nomenclature des systèmes de paquets
On trouve deux grands types de système de paquets selon les grandes familles de distributions Linux :
- RPM : Redhat Enterprise Linux, Fedora, Centos, …
- DPKG: Debian, Ubuntu, Mint, Raspbian, …
D’autres systèmes méritent l’intérêt :
- Portage/emerge : Gentoo
- Pacman : Archlinux
- opkg : OpenWRT
1.4. Utilitaire dpkg
Dpkg
est utilisé pour installer, supprimer et fournir des informations à propos des paquets *.deb
qui sont supportés par les distributions basées Debian.
Outil de bas niveau, dpkg -i
/ dpkg -r
permettent d’installer ou de désinstaller des fichiers .deb. Pour ces tâches, on préfère utiliser des outils plus avancés comme aptitude
ou apt-get
, apt-cache
.
Commandes utiles dpkg
Pour lister tous les paquets installés avec des droits priviliégés :
dpkg -l
ou
dpkg --get-selections
Pour vérifier qu’un paquet soit installé :
dpkg -s wget
Pour lister les fichiers installés par un paquet :
dpkg -L wget
Pour reconfigurer un paquet installé :
dpkg-reconfigure locales
Plus de détails sur dpkg
Le Manuel de l’administrateur debian, chapitre 5 “Système de paquetage, outils et principes fondamentaux” offre des détails et des exemples à titre d’exercice sur le sujet :
- 5.1. Structure d’un paquet binaire
- 5.2. Méta-informations d’un paquet
- 5.3. Structure d’un paquet source
- 5.4. Manipuler des paquets avec
dpkg
- 5.5. Cohabitation avec d’autres systèmes de paquetages
1.5. Utilitaire rpm
RPM est l’autre système de base. Il permet d’installer, mettre à jour, désinstaller, vérifier et rechercher des paquets, avec les droits de l’utilisateur root
.
Pour Installer un paquet :
rpm -ivh fichier.rpm
Pour mettre à jour un paquet
rpm -Uvh fichier.rpm
Pour désinstaller un paquet :
rpm -evv fichier.rpm
Vérifier la signature d’un paquet :
rpm --checksig fichier.rpm
Commande rpm -q
Lister tous les paquets installés :
rpm -qa
Vérifier qu’un paquet est installé :
rpm -q wget
Lister les fichiers d’un paquet installé :
rpm -ql wget
Obtenir toutes les informations concernant un paquet installé :
rpm -qi wget
Obtenir toutes les informations concernant un paquet avant le l’installer :
rpm -qip fichier.rpm
2. Dépôt de paquets
Un gestionnaire de paquet avancé comme apt
ou yum
gère des sources de logiciels (la plupart du temps déjà compilés) et leur authenticité.
Le lieu où sont placés ses sources est appelé dépôt de paquet. Cette source est la plupart du temps une source locale comme un CD ou un DVD, un serveur Internet HTTP/FTP ou encore un miroir de dépôt local.
La définition d’un dépôt de paquets dépend outre de la source elle-même de la distribution, de l’architecture matérielle, des sources officielles ou autres.
Certains concepteurs de logiciels fabriquement eux-mêmes les binaires d’installation pour les distributions et hébergent leurs propres dépôts de paquets.
2.1. Principe de fonctionnement
Principe de fonctionnement d’un gestionnaire de paquet avancé :
- Les logiciels disponibles sont contenus dans une liste qui doit être à jour afin d’assurer la cohérence de l’ensemble du système.
- Au moment de la demande d’installation, cette liste est consultée pour prendre les fichiers nécessaires.
- Le système de paquetage décompresse et place les différents fichiers binaires, de configuration et de documentation aux endroits appropriés. Éventuellement, un dialogue de configuration intervient.
- Éventuellement, le système de paquetage installe automatiquement un service et le démarre.
Tâches
- Vérification de l’existence d’un paquet
- Version du logiciel dans le paquet
- Fichiers de configuration
- Source
- Fichiers de configuration /etc
- Désinstallation
- Purge des fichiers
- Suppression des dépendances orphelines
2.2. APT
APT simplifie l’installation, la mise à jour et la désinstallation de logiciels en automatisant la récupération de paquets à partir de sources APT (sur Internet, le réseau local, des CD-ROM, etc.), la gestion des dépendances et parfois la compilation.
Lorsque des paquets sont installés, mis à jour ou enlevés, les programmes de gestion de paquets peuvent afficher les dépendances des paquets, demander à l’administrateur si des paquets recommandés ou suggérés par des paquets nouvellement installés devraient aussi être installés, et résoudre les dépendances automatiquement. Les programmes de gestion de paquets peuvent aussi mettre à jour tous les paquets.
APT est essentiellement une bibliothèque C++ de fonctions utilisées par plusieurs programmes de gestion de paquets. Un de ces programmes est apt
, probablement le plus connu et celui recommandé officiellement par le projet Debian. aptitude est également populaire et propose des fonctionnalités étendues par rapport à apt-get
. Aujourd’hui, apt
est une commande qui se suffit à elle-même pour la plupart des opérations concernant les paquets Debian/Ubuntu.
Sources APT
Les sources à partir desquelles apt
va chercher les paquets sont définies dans le fichier /etc/apt/sources.list
Par exemple sur une machine Debian 7 Wheezy :
cat /etc/apt/sources.list
deb https://http.debian.net/debian wheezy main
deb https://http.debian.net/debian wheezy-updates main
deb https://security.debian.org wheezy/updates main
La section main comprend l’ensemble des paquets qui se conforment aux DFSG - Directives Debian pour le logiciel libre et qui n’ont pas besoin de programmes en dehors de ce périmètre pour fonctionner. Ce sont les seuls paquets considérés comme faisant partie de la distribution Debian.
La section contrib comprend l’ensemble des paquets qui se conforment aux DFSG, mais qui ont des dépendances en dehors de main (qui peuvent être empaquetées pour Debian dans non-free).
La section non-free contient des logiciels qui ne se conforment pas aux DFSG.
Par exemple sur une machine Ubuntu 16.04 Xenial :
cat /etc/apt/sources.list
deb https://archive.ubuntu.com/ubuntu xenial main universe
deb https://archive.ubuntu.com/ubuntu xenial-updates main universe
deb https://archive.ubuntu.com/ubuntu xenial-security main universe
Ubuntu maintient officiellement les paquets main (logiciels libres) et restricted (logiciels non-libres).
La communauté Ubuntu fournit les paquets universe (libres) et multiverse (non-libres).
On prendra l’habitude de mettre à jour la liste de paquetages avec :
apt-get update
Recherche APT
Recherche dans les descriptions de paquets :
apt-cache search wget
Mais apt search
fonctionne aussi :
apt search wget
Voir les informations d’un paquet :
apt-cache show wget
Vérifier les dépendances d’un paquet :
apt-cache showpkg wget
Mise à jour et installation avec APT
Mettre à jour tous les paquets sans ajout de nouveaux paquets :
apt-get update && apt-get upgrade
ou :
apt update && apt upgrade
Mettre à jour tous les paquets installés vers les dernières versions en installant de nouveaux paquets si nécessaire :
apt dist-upgrade
Installation ou mise-à-jour d’un paquet :
apt install wget
Installation sans dialogue :
apt -y install wget
Désinstallation de paquets APT
Retirer le paquets sans les configurations :
apt remove wget
Retirer le paquets sans les dépendances :
apt autoremove wget
Retirer totalement un paquet :
apt purge wget
On peut combiner les deux :
apt autoremove --purge wget
Retire les dépendances non nécessaires :
apt autoremove
Suppression des fichiers mis en cache dans var/cache/apt/archives
:
apt clean
Utilement, on ira lire les précisions la section 6.2, la section 6.3 et la section 6.4 du Manuel de l’Administrateur Debian :
Réinstaller un paquet :
apt --reinstall install postfix
Installation d’une version “unstable” :
apt install spamassassin/unstable
apt full-upgrade
est également la commande employée par ceux qui exploitent quotidiennement la version Unstable de Debian et suivent ses évolutions au jour le jour. Elle est si simple qu’elle parle d’elle-même : c’est bien cette fonctionnalité qui a fait la renommée d’APT.
aptitude
est un programme interactif en mode semi-graphique, utilisable sur la console, qui permet de naviguer dans la liste des paquets installés et disponibles, de consulter l’ensemble des informations et de les marquer en vue d’une installation ou d’une suppression. Comme il s’agit cette fois d’un programme réellement conçu pour être utilisé par les administrateurs, on y trouve des comportements par défaut plus intelligents que dans apt-get, en plus d’une interface plus abordable.
Gestionnaire de paquets aptitude
synaptic est un gestionnaire de paquets Debian en mode graphique (il utilise GTK+/GNOME). Il dispose d’une interface graphique efficace et propre. Ses nombreux filtres prêts à l’emploi permettent de voir rapidement les nouveaux paquets disponibles, les paquets installés, ceux que l’on peut mettre à jour, les paquets obsolètes, etc. En naviguant ainsi dans les différentes listes, on indique progressivement les opérations à effectuer (installer, mettre à jour, supprimer, purger). Un simple clic suffit à valider l’ensemble de ces choix et toutes les opérations enregistrées sont alors effectuées en une seule passe.
Gestionnaire de paquets synaptic
Authentification des paquets Debian
Debian offre un moyen de s’assurer que le paquet installé provient bien de son mainteneur et qu’il n’a subi aucune modification par un tiers : il existe un mécanisme de scellement des paquets.
Cette signature n’est pas directe : le fichier signé est un fichier Release
placé sur les miroirs Debian et qui donne la liste des différents fichiers Packages
(y compris sous leurs formes compressées Packages.gz
et Packages.xz
et les versions incrémentales), accompagnés de leurs sommes de contrôle MD5, SHA1 et SHA256 (pour vérifier que leur contenu n’a pas été altéré). Ces fichiers Packages renferment à leur tour une liste de paquets Debian et leurs sommes de contrôle, afin de garantir que leur contenu n’a pas lui non plus été altéré.*
La gestion des clés de confiance se fait grâce au programme apt-key
, fourni par le paquet apt
. Ce programme maintient à jour un trousseau de clés publiques GnuPG, qui sont utilisées pour vérifier les signatures des fichiers Release.gpg
obtenus depuis les miroirs Debian.
Il est possible de l’utiliser pour ajouter manuellement des clés supplémentaires (si l’on souhaite ajouter des miroirs autres que les miroirs officiels) ; mais dans le cas le plus courant, on n’a besoin que des clés officielles Debian, qui sont automatiquement maintenues à jour par le paquet debian-archive-keyring
(qui installe les trousseaux de clés dans `/etc/apt/trusted.gpg.d).
Cependant, la première installation de ce paquet est également sujette à caution, car même s’il est signé comme les autres paquets, cette signature ne peut pas être vérifiée extérieurement. On s’attachera donc à vérifier les empreintes (fingerprints) des clés importées, avant de leur faire confiance pour installer de nouveaux paquets avec apt-key fingerprint
.
Source : Vérification d’authenticité des paquets
Par exemple,
apt-key fingerprint
/etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg
----------------------------------------------------------
pub 4096R/2B90D010 2014-11-21 [expire : 2022-11-19]
Empreinte de la clef = 126C 0D24 BD8A 2942 CC7D F8AC 7638 D044 2B90 D010
uid Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg
-------------------------------------------------------------------
pub 4096R/C857C906 2014-11-21 [expire : 2022-11-19]
Empreinte de la clef = D211 6914 1CEC D440 F2EB 8DDA 9D6D 8F6B C857 C906
uid Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg
-------------------------------------------------------
pub 4096R/518E17E1 2013-08-17 [expire : 2021-08-15]
Empreinte de la clef = 75DD C3C4 A499 F1A1 8CB5 F3C8 CBF8 D6FD 518E 17E1
uid Jessie Stable Release Key <debian-release@lists.debian.org>
/etc/apt/trusted.gpg.d/debian-archive-squeeze-automatic.gpg
-----------------------------------------------------------
pub 4096R/473041FA 2010-08-27 [expire : 2018-03-05]
Empreinte de la clef = 9FED 2BCB DCD2 9CDF 7626 78CB AED4 B06F 4730 41FA
uid Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d/debian-archive-squeeze-stable.gpg
--------------------------------------------------------
pub 4096R/B98321F9 2010-08-07 [expire : 2017-08-05]
Empreinte de la clef = 0E4E DE2C 7F3E 1FC0 D033 800E 6448 1591 B983 21F9
uid Squeeze Stable Release Key <debian-release@lists.debian.org>
/etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg
----------------------------------------------------------
pub 4096R/46925553 2012-04-27 [expire : 2020-04-25]
Empreinte de la clef = A1BD 8E9D 78F7 FE5C 3E65 D8AF 8B48 AD62 4692 5553
uid Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>
/etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg
-------------------------------------------------------
pub 4096R/65FFB764 2012-05-08 [expire : 2019-05-07]
Empreinte de la clef = ED6D 6527 1AAC F0FF 15D1 2303 6FB2 A1C2 65FF B764
uid Wheezy Stable Release Key <debian-release@lists.debian.org>
Empêcher le démarrage d’un service après une installation
La création d’un script de sortie /usr/sbin/policy-rc.d
empêchera le lancement du service après installation.
cat > /usr/sbin/policy-rc.d << EOF
#!/bin/sh
echo "All runlevel operations denied by policy" >&2
exit 101
EOF
chmod +x /usr/sbin/policy-rc.d
L’existence de ce script donnera ce message après une installation :
All runlevel operations denied by policy
invoke-rc.d: policy-rc.d denied execution of start.
2.3. YUM / DNF
“Yum”, pour “Yellowdog Updater Modified”, est un gestionnaire de paquets pour des distributions Linux telles que Fedora et Red Hat Enterprise Linux, créé par Yellow Dog Linux.
“Dandified Yum” ou “DNF” est le successeur de YUM dont l’usage est en quasiment identique depuis Red Hat Enterprise Linux 8 et Fedora 22.
YUM et DNF permettent de gérer l’installation et la mise à jour des logiciels installés sur une distribution de type Red Hat. Ce sont des surcouches de RPM gérant les téléchargements et les dépendances, de la même manière que APT de Debian.
YUM commandes de base
Contrairement à APT, YUM met à jour sa liste de paquets automatiquement.
Chercher un paquet :
yum search wget
Lister des informations concernant un paquet :
yum list wget
yum info wget
Installer un paquet :
yum install wget
Installer un paquet sans dialogue:
yum -y install wget
Désinstaller un paquet
yum remove wget
YUM mise-à-jour
Mise-à-jour d’un paquet :
yum update wget
Vérification des mise-à-jours disponibles :
yum check-update
Mise-à-jours de sécurité et des binaires :
yum update
YUM Group Packages
Les groupes de paquets sont des collections de paquets :
yum groups list
yum groups info group
yum groups install group
yum groups update group
yum groups remove group
YUM dépôts de paquets
Liste des dépôts de paquets :
yum repolist
yum repolist all
Installer un dépôt supplémentaire EPEL (Extra Packages for Enterprise Linux) :
yum install epel-release
Installer un dépôt supplémentaire
La configuration des dépôts est située dans le dossier /etc/yum.repos.d/
:
ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
Par exemple le premier dépôt configuré dans le fichier CentOS-Base.repo
:
[base]
name=CentOS-$releasever - Base
mirrorlist=https://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=https://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
On notera une déclaration de section [base]
en en-tête et quatre variables essentielles :
-
name
qui indique le nom du dépôt. -
mirrorlist
oubaseurl
qui indiquent l’emplacement du dépôt -
gpgckeck
qui demande une vérification d’intégrité etgpgkey
qui fixe le fichier de vérification d’emprunte. Il n’est pas nécessairegpckeck=0
est configuré. - Enfin,
enabled=1
activerait la prise en compte du dépôt
L’utilitaire yum-config-manager
permet d’ajouter un dépôt aisément :
yum-config-manager --add-repo=https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
Modules complémentaires chargés : fastestmirror, langpacks
adding repo from: https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
[ftp.belnet.be_ftp.centos.org_7_os_x86_64_]
name=added from: https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
baseurl=https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
enabled=1
Y ajouter gpgcheck=0
:
echo "gpgcheck=0" >> /etc/yum.repos.d/ftp.belnet.be_ftp.centos.org_7_os_x86_64_.repo
cat /etc/yum.repos.d/ftp.belnet.be_ftp.centos.org_7_os_x86_64_.repo
[ftp.belnet.be_ftp.centos.org_7_os_x86_64_]
name=added from: https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
baseurl=https://ftp.belnet.be/ftp.centos.org/7/os/x86_64/
enabled=1
gpgcheck=0
Remettre à jour la liste des paquetages :
yum clean all
yum repolist
YUM gestion des paquets
Lister les paquets installés :
yum list installed | less
Effacer le cache /var/cache/yum/ :
yum clean all
Historique des transactions yum :
yum history
2.4. Autres logiciel de gestion des paquets
- Pacman : Arch Linux.
- Emerge : Gentoo
- Opkg : Openwrt
3. Maintenance et mises à jour
3.1. Maintenance des mises à jour d’un système Debian
apticron
, dans le paquet du même nom. Il s’agit simplement d’un script, appelé quotidiennement par cron
, qui met à jour la liste des paquets disponibles et envoie un courrier électronique à une adresse donnée pour lister les paquets qui ne sont pas installés dans leur dernière version, ainsi qu’une description des changements qui ont eu lieu. Ce script vise principalement les utilisateurs de Debian Stable, on s’en doute.
On pourra donc tirer parti du script /etc/cron.daily/apt
, installé par le paquet apt. Ce script est lui aussi lancé quotidiennement par cron, donc sans interface interactive. Pour contrôler son fonctionnement, on utilisera des variables de configuration d’APT (qui seront donc stockées dans un fichier sous /etc/apt/apt.conf.d/
). Les plus importantes sont :
APT::Periodic::Update-Package-Lists
APT::Periodic::Download-Upgradeable-Packages
APT::Periodic::AutocleanInterval
APT::Periodic::Unattended-Upgrade
APT::Periodic::Update-Package-Lists
Cette option permet de spécifier une fréquence (en jours) de mise à jour des listes de paquets. Si l’on utilise apticron
, on pourra s’en passer, puisque cela ferait double emploi.
APT::Periodic::Download-Upgradeable-Packages
Cette option spécifie également une fréquence en jours, qui porte sur le téléchargement des paquets mis à jour. Là encore, les utilisateurs d’apticron pourront s’en passer.
APT::Periodic::AutocleanInterval
Cette option couvre une fonction que n’a pas apticron
: elle spécifie la fréquence à laquelle le cache d’APT pourra être automatiquement épuré des paquets obsolètes (ceux qui ne sont plus disponibles sur les miroirs ni référencés par aucune distribution). Elle permet de ne pas avoir à se soucier de la taille du cache d’APT, qui sera ainsi régulée automatiquement.
APT::Periodic::Unattended-Upgrade
Lorsque cette option est activée, le script quotidien exécutera unattended-upgrade (dans le paquet unattended-upgrades
) qui, comme son nom l’indique, automatise le processus de mise à jour pour certains paquets ; par défaut, il ne s’occupe que des mises à jour de sécurité, mais cela est configurable dans le fichier /etc/apt/apt.conf.d/50unattended-upgrades
). Notons que cette option peut être activée avec debconf
, à l’aide de la commande dpkg-reconfigure -plow unattended-upgrades
.
Source : Maintenir un système à jour
3.2. Mise à jour d’une distribution Debian depuis une ancienne version
Mise à jour depuis Debian 7 (wheezy) vers Debian 8 (jessie)
Recommendations :
- Effacer les paquets non nécessaires
- Mettre à jour le système actuel
- Réaliser une sauvegarde des données
Mettre à jour la distribution Debian Wheezy :
apt-get update
apt-get upgrade
apt-get dist-upgrade
Mettre à jour les sources d’installation :
sed -i 's/wheezy/jessie/g' /etc/apt/sources.list
Mettre à jour les paquets :
apt-get update
apt-get -y upgrade
Mettre à jour la distribution :
apt-get -y dist-upgrade
Redémarrer :
reboot
Vérifier la version :
hostnamectl
Static hostname: wheezy1
Icon name: computer-vm
Chassis: vm
Machine ID: cab21b38a8058c4d3f6641f1587fa5b7
Boot ID: cde0bd1e7ada4c44acd12bae10adff75
Virtualization: kvm
Operating System: Debian GNU/Linux 8 (jessie)
Kernel: Linux 3.16.0-4-amd64
Architecture: x86-64
Remettre à jour :
apt-get update
apt-get -y upgrade
apt-get -y autoremove
apt-get -y dist-upgrade
Mise à jour depuis Debian 8 (jessie) vers Debian 9 (stretch)
La procédure est identique de la version Debian 8 Jessie à la version Debian 9 Stretch.
cp /etc/apt/sources.list /etc/apt/sources.list_backup
sed -i 's/jessie/stretch/g' /etc/apt/sources.list
apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade
reboot
apt-get update
apt-get -y upgrade
apt-get -y autoremove
apt-get -y dist-upgrade
hostnamectl
Static hostname: wheezy1
Icon name: computer-vm
Chassis: vm
Machine ID: cab21b38a8058c4d3f6641f1587fa5b7
Boot ID: efd16e22f98a42d0a7d3cf44dba21fc9
Virtualization: kvm
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.8.0-2-amd64
Architecture: x86-64
Mise-à-jour de versions Ubuntu
Source : https://doc.ubuntu-fr.org/migration
Fortement déconseillée, la procédure propose de passer de révision en révision. Une sauvegarde du système est alors recommandée.
L’outil en ligne de commande do-release-upgrade
permet d’effectuer une mise à niveau d’Ubuntu sans utiliser d’utilitaire graphique. Il est particulièrement pertinent pour les serveurs, qui fonctionnent sans interface graphique. L’ensemble des options de cet outil peut être lue en exécutant la commande :
do-release-upgrade --help
Voici quelques-unes des options les plus utiles :
do-release-upgrade --check-dist-upgrade-only
L’option –check-dist-upgrade-only
vérifie l’existence d’une nouvelle version. Si une nouvelle version est trouvée, celle-ci est affichée en résultat dans le terminal. Exécutée ainsi, cette commande n’effectue qu’une vérification ; aucune mise à niveau n’est faite.
do-release-upgrade --sandbox
L’option –sandbox
permet de tester une mise à niveau dans un environnement protégé. Ceci est particulièrement utile pour tester le déploiement d’une mise à niveau avant de procéder à son application dans l’environnement de production.
do-release-upgrade
Sans option, l’outil do-release-upgrade recherche et procède à une mise à niveau vers la prochaine version LTS ou stable disponible, si elle existe.
4. Comparatif des gestionnaires de paquets par distribution
Du point de vue de l’administrateur système, les distributions Linux peuvent se distinguer par :
- le gestionnaire et le sytème de paquets
- les scripts d’initialisation et les niveaux d’exécution
- le chargeur de démarrage
- l’emplacement des fichiers de configuration du réseau et des dépôts
On s’intéressa ici aux différences “génétiques” concernant la gestion des paquets.
4.1. Debian/Ubuntu c. Fedora/RHEL/SL/Centos
Action | Debian/Ubuntu | Fedora/RHEL/SL/Centos |
---|---|---|
1. Mise à jour de la liste des paquets | apt-get update | yum update , yum check-update |
2. Affichage des mises-à-jour disponibles | apt-get upgrade --simulate | yum list updates |
3. Installation de paquets spécifiques | apt-get install package1 package2 | yum install package1 package2 |
4. Réinstallation d’un paquet | apt-get install --reinstall package | yum reinstall package |
5. Mise à jour d’un paquet | apt-get upgrade package1 package2 | yum update package |
6. Mise à jour du système | apt-get upgrade , apt-get dist-upgrade , apt upgrade , apt full-upgrade | yum upgrade |
7. Recherche de paquets | apt-cache search searchword , apt-cache search --full --names-only searchword | yum search searchword |
8. Liste de paquets installés | dpkg -l , apt list --installed | rpm -qa |
9. Information sur un paquet | apt-cache show package , apt show package , dpkg -s package | yum info package , yum list package , yum deplist package |
10. Désinstaller des paquets | apt-get remove --purge package1 package2 , apt-get autoremove | yum remove package1 package2 |
11. Téléchargement de paquets sans installation | apt-get install --download-only package1 package2 | yum install --downloadonly --downloaddir=<directory> <package> |
12. Effacement des paquets téléchargés | apt-get clean , apt-get clean (paquets dépassés) | yum clean all |
13. Configuration des dépôts | /etc/apt/sources.list | /etc/yum.repos.d/ |
4.2. Alpine Linux c. Arch Linux c. Gentoo
Action | Alpine Linux | Arch Linux | Gentoo | |
---|---|---|---|---|
1. Mise à jour de la liste des paquets | apk update | pacman -Sy | emerge --sync | |
2. Affichage des mises-à-jour disponibles | apk version -v ou apk version -v -l '<' | pacman -Qu | emerge -Dupv world ou emerge --deep --update --pretend world | |
3. Installation de paquets spécifiques | apk add package1 package2 | pacman -S package1 package2 | emerge package1 package2 | |
4. Réinstallation d’un paquet | apk del package1 && apk add package1 | pacman -Sf package1 package2 | emerge --oneshot package1 | |
5. Mise à jour d’un paquet | apk add -u package1 package2 | pacman -S package1 package2 | emerge --update package1 package2 | |
6. Mise à jour du système | - | pacman -Syu | - | |
7. Recherche de paquets | apk search searchword | pacman -Ss searchword , pacman -Si packagename | emerge --searchdesc searchword , eix searchword , esearch searchword | yum search searchword |
8. Liste de paquets installés | apk info | pacman -Qs , pacman -Q , pacman -Q | emerge gentoolkit && equery list | |
9. Information sur un paquet | apk info -a package | pacman -Si package | - | |
10. Désinstaller des paquets | apk del package1 package2 | pacman -R package1 package2 | emerge --depclean package1 package2 | |
11. Téléchargement de paquets sans installation | apk fetch package1 package2 | pacman -Sw package1 package2 | emerge --fetchonly package1 package2 | |
12. Effacement des paquets téléchargés | Automatique | Automatique | rm -rf /usr/portage/distfiles/* | |
13. Configuration des dépôts | /etc/apk/repositories | /etc/opkg.conf | etc/portage/repos.conf/gentoo.conf , et bien plus |
4.3. OpenWRT
Action | OpenWRT |
---|---|
1. Mise à jour de la liste des paquets | opkg update |
2. Affichage des mises-à-jour disponibles | opkg list-upgradable |
3. Installation de paquets spécifiques | opkg install <pkgs ou FQDN> |
4. Réinstallation d’un paquet | opkg install --force-reinstall <pkgs> |
5. Mise à jour d’un paquet | opkg upgrade <pkgs> (non recommandé) |
6. Mise à jour du système | - |
7. Recherche de paquets | opkg list [pkg ou globp] , opkg search <file ou globp> |
8. Liste de paquets installés | opkg list-installed |
9. Information sur un paquet | opkg info [pkg ou globp] , opkg status [pkg ou globp] |
10. Désinstaller des paquets | opkg remove <pkgs ou globp> |
11. Téléchargement de paquets sans installation | opkg --download-only download <pkg> |
12. Effacement des paquets téléchargés | option --force-removal-of-dependent-packages |
13. Configuration des dépôts | /etc/opkg.conf |
5. Mettre à jour le noyau
5.1. Procédure RHEL
yum update kernel
ou alors si le fichier rpm est disponible
rpm -ivh kernel.rpm
Le dernier noyau installé devient le premier par défaut :
grub2-editenv list
saved_entry=CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)
grep ^menuentry /boot/grub2/grub.cfg
menuentry 'CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-5cc65046-7a0e-450b-99e8-f0cc34954d75' {
menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-5cc65046-7a0e-450b-99e8-f0cc34954d75' {
menuentry 'CentOS Linux (0-rescue-d939e80ee5d6473297b10a3839c85928) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-d939e80ee5d6473297b10a3839c85928-advanced-5cc65046-7a0e-450b-99e8-f0cc34954d75' {
Modifier le noyau par défaut :
grub2-set-default 0
Générer la configuration :
grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.13.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.13.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-d939e80ee5d6473297b10a3839c85928
Found initrd image: /boot/initramfs-0-rescue-d939e80ee5d6473297b10a3839c85928.img
done
5.2. Procédure Ubuntu
!!–!!