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 :

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

Source de l’image

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

Source de l’image

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 ou baseurl qui indiquent l’emplacement du dépôt
  • gpgckeck qui demande une vérification d’intégrité et gpgkey qui fixe le fichier de vérification d’emprunte. Il n’est pas nécessaire gpckeck=0 est configuré.
  • Enfin, enabled=1activerait 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 :

  1. le gestionnaire et le sytème de paquets
  2. les scripts d’initialisation et les niveaux d’exécution
  3. le chargeur de démarrage
  4. 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

ActionDebian/UbuntuFedora/RHEL/SL/Centos
1. Mise à jour de la liste des paquetsapt-get update yum update, yum check-update
2. Affichage des mises-à-jour disponiblesapt-get upgrade --simulateyum list updates
3. Installation de paquets spécifiquesapt-get install package1 package2yum install package1 package2
4. Réinstallation d’un paquetapt-get install --reinstall packageyum reinstall package
5. Mise à jour d’un paquetapt-get upgrade package1 package2yum update package
6. Mise à jour du système apt-get upgrade, apt-get dist-upgrade, apt upgrade, apt full-upgradeyum upgrade
7. Recherche de paquets apt-cache search searchword, apt-cache search --full --names-only searchwordyum search searchword
8. Liste de paquets installés dpkg -l, apt list --installedrpm -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 autoremoveyum remove package1 package2
11. Téléchargement de paquets sans installationapt-get install --download-only package1 package2yum 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

ActionAlpine LinuxArch LinuxGentoo 
1. Mise à jour de la liste des paquetsapk updatepacman -Syemerge --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écifiquesapk add package1 package2pacman -S package1 package2emerge package1 package2 
4. Réinstallation d’un paquetapk del package1 && apk add package1pacman -Sf package1 package2emerge --oneshot package1 
5. Mise à jour d’un paquetapk add -u package1 package2pacman -S package1 package2emerge --update package1 package2 
6. Mise à jour du système-pacman -Syu- 
7. Recherche de paquetsapk search searchword pacman -Ss searchword, pacman -Si packagename emerge --searchdesc searchword, eix searchword, esearch searchwordyum search searchword
8. Liste de paquets installésapk info pacman -Qs, pacman -Q, pacman -Qemerge gentoolkit && equery list 
9. Information sur un paquetapk info -a packagepacman -Si package- 
10. Désinstaller des paquetsapk del package1 package2pacman -R package1 package2emerge --depclean package1 package2 
11. Téléchargement de paquets sans installationapk fetch package1 package2pacman -Sw package1 package2emerge --fetchonly package1 package2 
12. Effacement des paquets téléchargésAutomatiqueAutomatiquerm -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

ActionOpenWRT
1. Mise à jour de la liste des paquetsopkg update
2. Affichage des mises-à-jour disponiblesopkg list-upgradable
3. Installation de paquets spécifiquesopkg install <pkgs ou FQDN>
4. Réinstallation d’un paquetopkg 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ésopkg list-installed
9. Information sur un paquet opkg info [pkg ou globp], opkg status [pkg ou globp]
10. Désinstaller des paquetsopkg remove <pkgs ou globp>
11. Téléchargement de paquets sans installationopkg --download-only download <pkg>
12. Effacement des paquets téléchargésoption --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

!!–!!