====== Packages ======
----
===== Ubuntu =====
==== Commandes usuelles ====
=== Installation/Désinstallation ===
apt-get install Installation package.
apt-get remove Désinstallation package en laissant les fichiers de configuration.
apt-get purge Désinstallation package avec suppression des fichiers de configuration.
apt-get remove --purge 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 Information sur un package.
dpkg --get-selections Liste les packages installés.
apt-cache depends Liste les packages nécessaires à ce package.
dpkg –V Pour vérifier si un paquet est bien installé.
dpkg -c Interrogation contenu du package.
dpkg -I Information sur le package (nom, version, ...)
=== Reconfiguration ===
dpkg reconfigure 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 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 Indique à quel package appartient un fichier.
apt-cache rdepends 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
=== Vérification des paquets bloqués ===
apt-mark showhold
=== Débloquer les mises à jour d'un paquet ===
sudo apt-mark unhold
[[https://doc.ubuntu-fr.org/apt-get#bloquer_la_mise_a_jour_d_un_paquet|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
[[https://www.moyens.net/linux/comment-reparer-les-packages-casses-sous-linux/| 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
sudo snap install --classic # évite le confinement
=== Mises à jour des applications ===
sudo snap refresh
=== Suppression application ===
sudo snap remove
sudo snap remove --purge # 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
----
[[all:bibles:linux:packages|Haut de page]]
===== Debian =====
==== Upgrade version ====
[[https://www.debian.org/releases/buster/amd64/release-notes/ch-upgrading.fr.html|Debian 9]]
=== 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
----
[[all:bibles:linux:packages|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 : installation package
rpm –e : suppression package
=== Mise à jour ===
rpm –Uvh : update package
=== Interrogations ===
rpm –qf : (query file) donne le RPM auquel le fichier appartient
rpm –qa : (query all) donne la liste de tous les rpm
rpm –qpl : (query list) liste le contenu du rpm
rpm –qpl --dump : liste le contenu avec la checksum
==== Commandes usuelles yum ====
=== Installation/Suppression ===
yum install : installation package
yum remove : 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] : 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 : liste les fichiers du paquet
dnf repoquery -l
=== 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 # installation
dnf remove # suppression
dnf autoremove # supprime également les dépendances non utilisées
dnf download # 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 # mettre à jour un paquet spécifique
dnf update --exclude= # 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 # installe la version précédente du paquet si présente dans les dépôts
=== Dépôts ===
dnf config-manager --set-enabled # activation d'un dépôt
dnf config-manager --set-disabled # désactivation d'un dépôt
dnf --enablerepo= update # activation d'un dépôt juste pour la mise à jour
dnf --disablerepo= 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 # 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 # affiche le paquet qui contient le fichier
=== Recherche de paquet ===
dnf search
=== 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 --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 .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= install
yum install createrepo
createrepo
=== 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 ===
[[https://www.clevernetsystems.com/installing-rhel-packages-without-network-connection/|Installation sans connexion internet]]
==== Réparer paquet cassé ====
=== Vérification des paquets ===
sudo rpm -Va
=== Forcer la réinstallation d'un paquet ===
sudo dnf --refresh reinstall
[[https://www.moyens.net/linux/comment-reparer-les-packages-casses-sous-linux/| 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 [[https://techglimpse.com/convert-centos8-linux-centosstream/|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
----
[[all:bibles:linux:packages|Haut de page]]