====== 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]]