Outils pour utilisateurs

Outils du site


all:bibles:linux:packages

Packages


Ubuntu

Commandes usuelles

Installation/Désinstallation

apt-get install <pkg>         Installation package.
apt-get remove <pkg>          Désinstallation package en laissant les fichiers de configuration.
apt-get purge <pkg>           Désinstallation package avec suppression des fichiers de configuration.
apt-get remove --purge <pkg>  Equivalent à apt-get purge

Mises à jour

apt list --upgradable  Liste les mises à jour disponibles.
apt-get update         Resynchronise le fichier d’index répertoriant les paquets disponibles sur la source ( /etc/apt/sources.list). 
apt-get upgrade        Maj des paquets avec les versions plus récentes des sources énumérés dans /etc/apt/sources.list.
apt-get dist-upgrade   Idem avec gestion intelligente des dépendances dans les nouvelles versions de paquets.

Mises à jour de sécurité

apt-get update         Resynchronise le fichier d’index répertoriant les paquets disponibles sur la source ( /etc/apt/sources.list). 
unattended-upgrade     Installation des mises à jour de sécurité. (option -d pour débug).

Mise à jour version majeure

Avant de lancer la mise à jour, vérifier que screen est installé sur la machine afin que le process de mise à jour soit automatiquement lancé au travers d'une session screen.
do-release-upgrade

Interrogations

apt-cache show <pkg>     Information sur un package.
dpkg --get-selections    Liste les packages installés.
apt-cache depends <pkg>  Liste les packages nécessaires à ce package.
dpkg –V <pkg>            Pour vérifier si un paquet est bien installé.
dpkg -c <pkg>            Interrogation contenu du package.
dpkg -I <pkg>            Information sur le package (nom, version, ...)

Reconfiguration

dpkg reconfigure <pkg>   Reconfiguration package déjà installé.

Nettoyage

aptitude clean           Vire les packages du repository local sous /var/cache/apt/archives et /var/cache/apt/archives/partial.
aptitude autoclean       Idem clean mais uniquement paquets inutiles.
apt-get autoremove       Supprime les paquets installés par dépendances et qui ne sont plus nécessaires.

Purge Kernel

apt-get autoremove        Commence par supprimer automatiquement ce qui n’est plus nécessaire.
dpkg -l | grep linux      Lister les kernels installés
uname -r                  Vérifier que le kernel courant est bien le dernier, sinon redémarrer.
apt-get purge <fichiers>  Purger les kernels inutiles.
Attention de ne pas supprimer un fichier du kernel courant.
Veiller à toujours laisser le kernel précédent en cas de problème.

Status

L'interrogation des packages par la commande dpkg -l fait apparaitre 2 ou 3 lettres qui indiquent l'état souhaité pour la première lettre et l'état courant pour la deuxième. Si une troisième lettre est présente, elle indique un état d'erreur.

Etat souhaité

  • u : unknown
  • i : install
  • r : remove/deinstall
  • p : purge (remove y compris les fichiers de configuration)
  • h : hold

Etat courant

  • n : not installed
  • i : installed
  • c : config-files (seuls les fichiers de configuration sont installés)
  • U : unpacked
  • F : half-configured (la configuration a échoué)
  • h : half-installed (l'installation a échoué)
  • W : triggers-awaited (le paquet attend un déclenchement d'un autre paquet)
  • t : triggers-pending (le paquet a été déclenché)

Erreur

  • R : reinst-required (paquet cassé, réinstallation requise)

Utilisation apt-file

Installation / Initialisation

apt-get install apt-file	
apt-file update

Commandes

apt-file search <fichier>    Indique à quel package appartient un fichier.
apt-cache rdepends <pkg>     Liste les packages qui ont besoin de ce package.

Utilisation proxy

Configurer l'adresse du proxy dans le fichier /etc/apt/apt.conf

Acquire::http::Proxy "http://155.132.8.51:3128";

En cas de mot de passe pour le proxy la ligne devient :

Acquire::http::Proxy "http://utilisateur:motdepasse@example.com:port";

Puis lancer les commandes habituelles :

sudo apt-get update
sudo apt-get upgrade

Mises à jour automatiques

Installer le paquet suivant :

sudo apt-get install unattended-upgrades

Ce paquet peut être configuré pour mettre à jour tous les paquets ou uniquement les mises à jour de sécurité.

sudo dpkg-reconfigure -plow unattended-upgrades

Configuration

La configuration peut se faire par l'interface graphique ou bien dans le fichier /etc/apt/apt.conf.d/50unattended-upgrades

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESM:${distro_codename}";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};
Le double « / » sert à commenter, donc tout ce qui suit ne sera pas pris en compte.

Liste noire

Certains paquets peuvent être mis en liste noire pour ne pas être mis à jour automatiquement. Pour mettre un paquet en liste noire, il suffit de l'ajouter à la liste :

Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "libc6";
//      "libc6-dev";
//      "libc6-i686";
};

Mise à jour automatique

Pour activer la mise à jour automatique éditer le fichier /etc/apt/apt.conf.d/20auto-upgrades.

Dans certains cas il peut être nécessaire de créer le fichier selon l'installation initiale.
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";

Cette configuration correspond à :

  • Mise à jour de la liste des packages tous les jours (apt-get update).
  • Téléchargement des packages à mettre à jour tous les jours.
  • Installation des mises à jour disponibles tous les jours.
  • Nettoyage de l'archive locale de téléchargement chaque semaine.

Packages Ubuntu

Les packages ubuntu peuvent être trouvés à cette adresse : http://packages.ubuntu.com/

Ne pas mettre à jour un paquet

Bloquer les mises à jour d'un paquet

sudo apt-mark hold <nom du package>

Vérification des paquets bloqués

apt-mark showhold

Débloquer les mises à jour d'un paquet

sudo apt-mark unhold <nom du package>

Source

Réparation paquet cassé

Essayer une mise à jour

sudo apt update --fix-missing

Installer paquets manquants et réparer les paquets cassés

sudo apt install -f

reconfigurer les paquets endommagés ou partiellement configurés

sudo dpkg --configure -a

lister les paquets marqués comme nécessitant une réinstallation

sudo dpkg -l | grep ^..r

forcer la suppression des paquets cassés

sudo dpkg --remove --force-remove --reinstreq

nettoyage

sudo apt clean
sudo apt update

source

Dépannage

Le fichier « Release » ... n'est pas encore valable ou plus valable

Vérifier la date et l'heure de la machine.

Les signatures suivantes ne sont pas valables : KEYEXPIRED

Lors de la commande apt-get update obtention de l'erreur suivante :

Atteint :1 http://fr.archive.ubuntu.com/ubuntu xenial InRelease
Réception de :2 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Réception de :3 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Réception de :4 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Atteint :5 https://deb.nodesource.com/node_8.x xenial InRelease
Atteint :6 https://packages.microsoft.com/repos/vscode stable InRelease
Atteint :7 http://debian.datastax.com/community stable InRelease
Réception de :8 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1 199 kB]
Réception de :9 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [86,8 kB]
Réception de :10 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [124 kB]
Réception de :11 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 DEP-11 Metadata [2 464 B]
Err :7 http://debian.datastax.com/community stable InRelease
  Les signatures suivantes ne sont pas valables : KEYEXPIRED 1596313119  KEYEXPIRED 1596313119  KEYEXPIRED 1596313119
  • Vérifier la validité des certificats avec la commande suivante :
apt-key list | grep expire
  • Recherche de la clef dans le repository

Rechercher la clef sur le site en utilisant un navigateur et en recherchant un fichier KEYS ou repo_key dans l'arborescence. En l'occurence le fichier se trouve sous http://debian.datastax.com/debian/repo_key.

  • Mise à jour de la clef du repository

Passer la commande :

curl -L https://debian.datastax.com/debian/repo_key | sudo apt-key add -
  • Mettre à jour la liste des paquets

Vérifier que la mise à jour des paquets fonctionne de nouveau correctement

sudo apt-get update

snap

installation

sudo snap install <paquet>
sudo snap install <paquet> --classic   # évite le confinement

Mises à jour des applications

sudo snap refresh

Suppression application

sudo snap remove <paquet>
sudo snap remove --purge <paquet>  # suppression d’un paquet snap et de tous les profils utilisateur associés 

Mises à jour du magasin

snap-store --quit
sudo snap refresh

Liste des logiciels

snap list        # liste des logiciels installés
snap list --all  # Afficher les paquets snap installés, actifs ou non :
snap find        # liste les logiciels disponibles

Haut de page

Debian

Upgrade version

Vérification paquets installés

Vérifier la présence de paquets non officiels qui pourraient gêner la mise à jour.

aptitude search '~i(!~ODebian)'
apt-forktracer | sort

Vérification de l'état des paquets

dpkg --audit
dpkg -l | pager

Modification des dépôts

Modifier la liste des dépôts dans le fichier /etc/apt/sources.list ainsi que les fichiers sous /etc/apt/sources.list.d/* pour passer à la version souhaitée. Par exemple buster au lieu de stretch.

Supprimer les paquets déjà téléchargés

apt clean
apt autoclean

Mise à jour de la liste des paquets

apt-get update

Supprimer les paquets qui ne sont plus nécessaires

apt-get autoremove

Mise à niveau minimale

apt-get upgrade

Mettre à niveau le système

apt-get full-upgrade

Redémarrage

reboot

Haut de page

Redhat / CentOS

Gestion subscription

Enregistrement

subscription-manager register

Lister les souscriptions disponibles

subscription-manager list --available

Attacher une souscription

subscription-manager attach --pool=xxxxxx  # s'attacher à un pool particulier
subscription-manager attach --auto         # s'attacher automatiquement à une souscription correspondant au système

Vérifier l'état de la souscription

subscription-manager  status

Rafraichier les données si nécessaire

subscription-manager  refresh

Supprimer un abonnement

subscription-manager  remove --pool=xxxx

Désenregistrement

subscription-manager unregister

GUI

subscription-manager-gui

Commandes usuelles rpm

Installation/Suppression

rpm –ivh <package>  : installation package
rpm –e <package>    : suppression package

Mise à jour

rpm –Uvh            : update package

Interrogations

rpm –qf <fichier>          : (query file) donne le RPM auquel le fichier appartient
rpm –qa	                   : (query all) donne la liste de tous les rpm
rpm –qpl <fichier>         : (query list) liste le contenu du rpm
rpm –qpl --dump <fichier>  : liste le contenu avec la checksum

Commandes usuelles yum

Installation/Suppression

yum install <pkg>  : installation package
yum remove <pkg>   : suppression package

Mise à jour

yum check-update  : teste si des mises à jour sont disponibles.
yum update        : mise à jour des packages.

Interrogations

yum whatprovides */libz.so.1                   : donne les packages contenant la librairie en question
yum provides toto                              : pour trouver le package à installer pour obtenir toto
yum repolist all                               : liste tous les repos
yum-config-manager [--disable|--enable] <repo> : pour activer/désactiver un repo (extras, base ou update).

recherche fichiers d'un paquet

yum install yum-utils           : A installer pour pouvoir utiliser la commande repoquery
repoquery --list <paquet>       : liste les fichiers du paquet
dnf repoquery -l <paquet>

Nettoyage

yum clean metadata  : nettoyage dans les metadata en cas de pb de mise à jour avec les dépôts
yum clean all       : nettoyage dans tout le cache.

Commandes usuelles dnf (à partir de Redhat 8)

Installation/Suppression

dnf install <paquet>      # installation
dnf remove <paquet>       # suppression
dnf autoremove <paquet>   # supprime également les dépendances non utilisées
dnf download <paquet>     # téléchargement du rpm

Mises à jour

dnf check-update                  # lister les mises à jour disponibles
dnf update                        # mettre à jour l'ensemble des paquets disponibles
dnf upgrade                       # équivalent à update -obsoletes. Force la suppression des paquets obsolètes
dnf update <paquet>               # mettre à jour un paquet spécifique
dnf update --exclude=<paquet>     # pour exclure un paquet (possibilité d'utiliser * avec un \)
dnf update --security             # mettre à jour les paquets qui ont des mises à jour de sécurité disponible
dnf downgrade <paquet>            # installe la version précédente du paquet si présente dans les dépôts

Dépôts

dnf config-manager --set-enabled <depot>   # activation d'un dépôt 
dnf config-manager --set-disabled <depot>  # désactivation d'un dépôt
dnf --enablerepo=<depot> update            # activation d'un dépôt juste pour la mise à jour
dnf --disablerepo=<depot> update           # désactivation d'un dépôt juste pour la mise à jour

Mises à jour automatiques

dnf-automatic

La commande va créer les fichiers /etc/dnf/dnf-cron.conf et /etc/dnf/dnf-cron-hourly.conf pour télécharger automatiquement les mises à jour.

Lister les paquets

dnf list                       # affiche le nom du paquet, la version et la source
dnf list <paquet>              # affiche les informations sur un paquet spécifique (possibilité d'utiliser * avec \)
dnf list installed             # affiche les paquets installés sur le système
dnf list available             # affiche les paquets disponibles pour tous les dépôts activés
dnf list updates               # affiche les paquets dont des mises à jour sont disponibles
dnf list extras                # affiche les paquets qui ne sont disponibles dans aucun dépôt
dnf list obsoletes             # affiche les paquets installés qui sont rendus obsolètes dans les dépôts
dnf list recent                # affiche les paquets récemment ajoutés aux dépôts
dnf provides <chemin_fichier>  # affiche le paquet qui contient le fichier

Recherche de paquet

dnf search <paquet>

Interrogations

dnf resolvedep                                           # Affiche les paquets qui fournissent la (les) dépendance(s) spécifiée(s)
dnf localinstall                                         # installer un ensemble de fichiers rpm locaux.  Si nécessaire les dépôts actifs seront utilisés pour résoudre les dépendances
dnf localupdate                                          # Mise à jour avec les fichiers rpm locaux spécifiés. Seuls les fichiers rpm déjà installés seront mis à jour. Si nécessaire les dépôts actifs seront utilisés pour résoudre les dépendances
dnf deplist                                              # Affiche toutes les dépendances pour les paquets spécifiés
dnf repolist                                             # Affiche tous les dépôts actifs
dnf history                                              # Affiche un historique des transactions réalisées
dnf history userinstalled                                # Liste les paquets explicitement installés (pas par dépendance)
dnf dnf repoquery --whatrequires <paquet> --repo <repo>  # Liste les paquets qui ont besoin de ce paquet dans le dépôt spécifié

Nettoyage

dnf clean packages      # supprime tous les paquets cachés du système
dnf clean headers       # supprime tous les fichiers en-têtes utilisés pour résoudre les dépendances
dnf clean metadata      # supprime tous les fichiers utilisés pour déterminer la disponibilité distante des paquets
dnf clean cache         # supprime le cache 
dnf clean dbcache       # supprime le cache
dnf clean all           # équivalent du clean packages et clean headers

Exclusion permanente

Editer le fichier /etc/dnf/dnf.conf et ajouter une ligne exclude avec les noms de paquets séparés par des espaces (ou des virgules)

exclude=kernel* firefox libreoffice*

Protéger des paquets de la suppression

Créer un fichier <fichier>.conf dans le répertoire /etc/dnf/protected.d/. Le fichier doit contenir un nom de paquet par ligne.

Utilisation d'un proxy

Editer le fichier /etc/dnf/dnf.conf

proxy=http://ip_proxy:3128

Nombre de kernel à conserver

Editer le fichier /etc/dnf/dnf.conf

installonly_limit=2    # par défaut conserve les 3 derniers noyaux

Afficher la configuration dnf

dnf config-manager --dump

Configuration dépôt

Ajouter le dépôt MariaDB 11.4

  • Créer le fichier /etc/yum.repos.d/mariadb.repo
# MariaDB 11.4 RedHat 9
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/11.4/rhel9-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1
  • Prendre en compte le nouveau dépôt
sudo dnf clean all
sudo dnf makecache
  • Installer et configurer MariaDB
sudo dnf install mariadb-server
sudo systemctl start mariadb
sudo systemctl enable  mariadb
sudo mariadb-secure-installation

Configurer cdrom comme dépôt de package

  • Monter l’image iso redhat à partir du lecteur de DVD
mount –t iso9660 /dev/cdrom /mnt
  • Importer les signatures
rpm --import /mnt/RPM-GPG-KEY-redhat-release
  • Ajouter les lignes suivantes à la fin du fichier /etc/yum.conf ou créer un nouveau fichier /etc/yum.repos.d/cdrom.repo
[repository]
name=cdrom
baseurl=file:///mnt
yum clean all
yum repolist all

Désactiver dépôt

sudo dnf config-manager --disable rhel-9-appstream-rhui-rpms rhel-9-baseos-rhui-rpms rhui-client-config-server-9

Activer dépôt

sudo dnf config-manager --enable rhel-9-appstream-rhui-rpms rhel-9-baseos-rhui-rpms rhui-client-config-server-9

Utilisation proxy

Ajouter à la fin du fichier /etc/yum.conf

proxy=http://155.132.8.51:3128

Lancer la commande :

yum update

Mises à jour automatiques

Installation package

yum install yum-cron

Configuration

Editer le fichier /etc/yum/yum-cron.conf pour définir les options désirées

Application des mises à jour automatiquement
apply_updates = yes
Mises à jour de sécurité uniquement
update_cmd = security

Extraire les fichiers d'un rpm

rpm2cpio fichier.rpm > fichier.cpio
cpio –i –make-directories < fichier.cpio

Installation environnement graphique à postériori

Gnome

yum groupinstall "X Window System" Desktop

KDE

yum groupinstall "X Window System" "KDE Desktop"

Modification du fichier /etc/inittab pour passer en runlevel 5 au démarrage (ou startx).

Installation offline

Récupération des packages sur une machine au même niveau

yum --downloadonly --downloaddir=<repertoire> install <package>
yum install createrepo
createrepo <repertoire>

configuration repo sur machine offline

Après avoir transféré le contenu du répertoire sur la machine qui n'a pas accès à internet :

  • créer un nouveau fichier /etc/yum.repos.d/local.repo
[local]
name=Local repository
baseurl=file:///chemin_vers_repertoire
enabled=1
gpgcheck=0
protect=1
yum clean all
yum repolist all

Source

Réparer paquet cassé

Vérification des paquets

sudo rpm -Va

Forcer la réinstallation d'un paquet

sudo dnf --refresh reinstall <paquet>

source

Dépannage

warning RPMDB altered outside yum

En cas d’installation de package hors yum (avec rpm), il suffit de remettre à jour les données de YUM.

yum history sync

Failed to download metadata for repo

Depuis le 1er janvier 2022 le support pour CentOS 7 et 8 est terminé. Pour mettre à jour CentOS 7 ou 8 il faut faire pointer les miroirs de dépôts vers vault.centos.org où ils sont archivés. L'alternative étant de mettre à jour vers CentOS Stream.

cd /etc/yum.repos.d
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum update -y

Haut de page

all/bibles/linux/packages.txt · Dernière modification : de omeylhoc