Outils pour utilisateurs

Outils du site


all:bibles:linux:packages

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
all:bibles:linux:packages [2024/06/14 16:16] – [Installation offline] omeylhocall:bibles:linux:packages [2025/08/12 14:43] (Version actuelle) – [Configuration dépôt] omeylhoc
Ligne 1: Ligne 1:
 +====== Packages ======
 +
 +----
 +
 +===== Ubuntu =====
 +
 +==== Commandes usuelles ====
 +
 +=== Installation/Désinstallation ===
 +
 +<code bash>
 +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
 +</code>
 +
 +=== Mises à jour ===
 +
 +<code bash>
 +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.
 +</code>
 +
 +=== Mises à jour de sécurité ===
 +
 +<code bash>
 +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).
 +</code>
 +
 +=== Mise à jour version majeure ===
 +
 +<note tip>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.</note>
 +
 +<code bash>
 +do-release-upgrade
 +</code>
 +
 +=== Interrogations ===
 +
 +<code bash>
 +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, ...)
 +</code>
 +
 +=== Reconfiguration ===
 +
 +<code bash>
 +dpkg reconfigure <pkg>   Reconfiguration package déjà installé.
 +</code>
 +
 +=== Nettoyage===
 +
 +<code bash>
 +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.
 +</code>
 +
 +=== Purge Kernel ===
 +
 +<code bash>
 +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.
 +</code>
 +
 +<note warning>Attention de ne pas supprimer un fichier du kernel courant.</note>
 +<note important>Veiller à toujours laisser le kernel précédent en cas de problème.</note>
 +
 +==== 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 ===
 +
 +<code bash>
 +apt-get install apt-file
 +apt-file update
 +</code>
 +
 +=== Commandes ===
 +
 +<code bash>
 +apt-file search <fichier>    Indique à quel package appartient un fichier.
 +apt-cache rdepends <pkg>     Liste les packages qui ont besoin de ce package.
 +</code>
 +
 +==== Utilisation proxy ====
 +
 +Configurer l'adresse du proxy dans le fichier <color #00a2e8>/etc/apt/apt.conf</color>
 +
 +<code>
 +Acquire::http::Proxy "http://155.132.8.51:3128";
 +</code>
 +
 +En cas de mot de passe pour le proxy la ligne devient :
 +
 +<code>
 +Acquire::http::Proxy "http://utilisateur:motdepasse@example.com:port";
 +</code>
 +
 +Puis lancer les commandes habituelles :
 +
 +<code bash>
 +sudo apt-get update
 +sudo apt-get upgrade
 +</code>
 +
 +==== Mises à jour automatiques ====
 +
 +Installer le paquet suivant :
 +
 +<code bash>
 +sudo apt-get install unattended-upgrades
 +</code>
 +
 +Ce paquet peut être configuré pour mettre à jour tous les paquets ou uniquement les mises à jour de sécurité.
 +
 +<code bash>
 +sudo dpkg-reconfigure -plow unattended-upgrades
 +</code>
 +
 +=== Configuration ===
 +
 +La configuration peut se faire par l'interface graphique ou bien dans le fichier <color #00a2e8>/etc/apt/apt.conf.d/50unattended-upgrades</color>
 +
 +<code bash>
 +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";
 +};
 +</code>
 +
 +<note tip>Le double « / » sert à commenter, donc tout ce qui suit ne sera pas pris en compte.</note>
 +
 +=== 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 :
 +
 +<code bash>
 +Unattended-Upgrade::Package-Blacklist {
 +//      "vim";
 +//      "libc6";
 +//      "libc6-dev";
 +//      "libc6-i686";
 +};
 +</code>
 +
 +=== Mise à jour automatique ===
 +
 +Pour activer la mise à jour automatique éditer le fichier <color #00a2e8>/etc/apt/apt.conf.d/20auto-upgrades</color>
 +
 +<note tip>Dans certains cas il peut être nécessaire de créer le fichier selon l'installation initiale.</note>
 +
 +<code bash>
 +APT::Periodic::Update-Package-Lists "1";
 +APT::Periodic::Download-Upgradeable-Packages "1";
 +APT::Periodic::Unattended-Upgrade "1";
 +APT::Periodic::AutocleanInterval "7";
 +</code>
 +
 +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 ===
 +
 +<code bash>
 +sudo apt-mark hold <nom du package>
 +</code>
 +
 +=== Vérification des paquets bloqués ===
 +
 +<code bash>
 +apt-mark showhold
 +</code>
 +
 +=== Débloquer les mises à jour d'un paquet ===
 +
 +<code bash>
 +sudo apt-mark unhold <nom du package>
 +</code>
 +
 +[[https://doc.ubuntu-fr.org/apt-get#bloquer_la_mise_a_jour_d_un_paquet|Source]]
 +
 +==== Réparation paquet cassé ====
 +
 +=== Essayer une mise à jour ===
 +
 +<code bash>
 +sudo apt update --fix-missing
 +</code>
 +
 +=== Installer paquets manquants et réparer les paquets cassés ===
 +
 +<code bash>
 +sudo apt install -f
 +</code>
 +
 +=== reconfigurer les paquets endommagés ou partiellement configurés ===
 +
 +<code bash>
 +sudo dpkg --configure -a
 +</code>
 +
 +=== lister les paquets marqués comme nécessitant une réinstallation ===
 +
 +<code bash>
 +sudo dpkg -l | grep ^..r
 +</code>
 +
 +=== forcer la suppression des paquets cassés ===
 +
 +<code bash>
 +sudo dpkg --remove --force-remove --reinstreq
 +</code>
 +
 +=== nettoyage ===
 +
 +<code bash>
 +sudo apt clean
 +sudo apt update
 +</code>
 +
 +[[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 :
 +
 +<code>
 +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
 +</code>
 +
 +  * Vérifier la validité des certificats avec la commande suivante :
 +
 +<code bash>
 +apt-key list | grep expire
 +</code>
 +
 +  * 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 :
 +
 +<code bash>
 +curl -L https://debian.datastax.com/debian/repo_key | sudo apt-key add -
 +</code>
 +
 +  * Mettre à jour la liste des paquets
 +
 +Vérifier que la mise à jour des paquets fonctionne de nouveau correctement
 +
 +<code bash>
 +sudo apt-get update
 +</code>
 +
 +==== snap ====
 +
 +=== installation ===
 +
 +<code bash>
 +sudo snap install <paquet>
 +sudo snap install <paquet> --classic   # évite le confinement
 +</code>
 +
 +=== Mises à jour des applications ===
 +
 +<code bash>
 +sudo snap refresh
 +</code>
 +
 +=== Suppression application ===
 +
 +<code bash>
 +sudo snap remove <paquet>
 +sudo snap remove --purge <paquet>  # suppression d’un paquet snap et de tous les profils utilisateur associés 
 +</code>
 +
 +=== Mises à jour du magasin ===
 +
 +<code bash>
 +snap-store --quit
 +sudo snap refresh
 +</code>
 +
 +=== Liste des logiciels ===
 +
 +<code bash>
 +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
 +</code>
 +
 +----
 +
 +[[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.
 +
 +<code bash>
 +aptitude search '~i(!~ODebian)'
 +apt-forktracer | sort
 +</code>
 +
 +=== Vérification de l'état des paquets ===
 +
 +<code bash>
 +dpkg --audit
 +dpkg -l | pager
 +</code>
 +
 +=== Modification des dépôts ===
 +
 +Modifier la liste des dépôts dans le fichier <color #00a2e8>/etc/apt/sources.list</color> ainsi que les fichiers sous <color #00a2e8>/etc/apt/sources.list.d/*</color> pour passer à la version souhaitée. Par exemple buster au lieu de stretch.
 +
 +=== Supprimer les paquets déjà téléchargés ===
 +
 +<code bash>
 +apt clean
 +apt autoclean
 +</code>
 +
 +=== Mise à jour de la liste des paquets ===
 +
 +<code bash>
 +apt-get update
 +</code>
 +
 +=== Supprimer les paquets qui ne sont plus nécessaires ===
 +
 +<code bash>
 +apt-get autoremove
 +</code>
 +
 +=== Mise à niveau minimale ===
 +
 +<code bash>
 +apt-get upgrade
 +</code>
 +
 +=== Mettre à niveau le système ===
 +
 +<code bash>
 +apt-get full-upgrade
 +</code>
 +
 +=== Redémarrage ===
 +
 +<code bash>
 +reboot
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:packages|Haut de page]]
 +
 +===== Redhat / CentOS =====
 +
 +==== Gestion subscription ====
 +
 +=== Enregistrement ===
 +
 +<code bash>
 +subscription-manager register
 +</code>
 +
 +=== Lister les souscriptions disponibles ===
 +
 +<code bash>
 +subscription-manager list --available
 +</code>
 +
 +=== Attacher une souscription ===
 +
 +<code bash>
 +subscription-manager attach --pool=xxxxxx  # s'attacher à un pool particulier
 +subscription-manager attach --auto         # s'attacher automatiquement à une souscription correspondant au système
 +</code>
 +
 +=== Vérifier l'état de la souscription ===
 +
 +<code bash>
 +subscription-manager  status
 +</code>
 +
 +=== Rafraichier les données si nécessaire ===
 +
 +<code bash>
 +subscription-manager  refresh
 +</code>
 +
 +=== Supprimer un abonnement ===
 +
 +<code bash>
 +subscription-manager  remove --pool=xxxx
 +</code>
 +
 +=== Désenregistrement  ===
 +
 +<code bash>
 +subscription-manager unregister
 +</code>
 +
 +=== GUI ===
 +
 +<code bash>
 +subscription-manager-gui
 +</code>
 +
 +==== Commandes usuelles rpm ====
 +
 +=== Installation/Suppression ===
 +
 +<code bash>
 +rpm –ivh <package>  : installation package
 +rpm –e <package>    : suppression package
 +</code>
 +
 +=== Mise à jour ===
 +
 +<code bash>
 +rpm –Uvh            : update package
 +</code>
 +
 +=== Interrogations ===
 +
 +<code bash>
 +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
 +</code>
 +
 +==== Commandes usuelles yum ====
 +
 +=== Installation/Suppression ===
 +
 +<code bash>
 +yum install <pkg>  : installation package
 +yum remove <pkg>   : suppression package
 +</code>
 +
 +=== Mise à jour ===
 +
 +<code bash>
 +yum check-update  : teste si des mises à jour sont disponibles.
 +yum update        : mise à jour des packages.
 +</code>
 +
 +=== Interrogations ===
 +
 +<code bash>
 +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).
 +</code>
 +
 +=== recherche fichiers d'un paquet ===
 +
 +<code bash>
 +yum install yum-utils           : A installer pour pouvoir utiliser la commande repoquery
 +repoquery --list <paquet>       : liste les fichiers du paquet
 +dnf repoquery -l <paquet>
 +</code>
 +
 +=== Nettoyage ===
 +
 +<code bash>
 +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.
 +</code>
 +
 +==== Commandes usuelles dnf (à partir de Redhat 8) ====
 +
 +=== Installation/Suppression ===
 +
 +<code bash>
 +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
 +</code>
 +
 +=== Mises à jour ===
 +
 +<code bash>
 +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
 +</code>
 +
 +=== Dépôts ===
 +
 +<code bash>
 +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
 +</code>
 +=== Mises à jour automatiques ===
 +
 +<code bash>
 +dnf-automatic
 +</code>
 +
 +La commande va créer les fichiers <color #00a2e8>/etc/dnf/dnf-cron.conf</color> et <color #00a2e8>/etc/dnf/dnf-cron-hourly.conf</color> pour télécharger automatiquement les mises à jour.
 +
 +=== Lister les paquets ===
 +
 +<code bash>
 +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
 +</code>
 +
 +=== Recherche de paquet ===
 +
 +<code bash>
 +dnf search <paquet>
 +</code>
 +
 +=== Interrogations ===
 +
 +<code bash>
 +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é
 +</code>
 +
 +=== Nettoyage ===
 +
 +<code bash>
 +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
 +</code>
 +
 +=== Exclusion permanente ===
 +
 +Editer le fichier <color #00a2e8>/etc/dnf/dnf.conf</color> et ajouter une ligne exclude avec les noms de paquets séparés par des espaces (ou des virgules)
 +
 +<code bash>
 +exclude=kernel* firefox libreoffice*
 +</code>
 +
 +=== Protéger des paquets de la suppression ===
 +
 +Créer un fichier <fichier>.conf dans le répertoire <color #00a2e8>/etc/dnf/protected.d/</color>. Le fichier doit contenir un nom de paquet par ligne.
 +
 +=== Utilisation d'un proxy ===
 +
 +Editer le fichier <color #00a2e8> /etc/dnf/dnf.conf</color>
 +
 +<code bash>
 +proxy=http://ip_proxy:3128
 +</code>
 +
 +=== Nombre de kernel à conserver ===
 +
 +Editer le fichier <color #00a2e8> /etc/dnf/dnf.conf</color>
 +
 +<code bash>
 +installonly_limit=2    # par défaut conserve les 3 derniers noyaux
 +</code>
 +
 +=== Afficher la configuration dnf ===
 +
 +<code bash>
 +dnf config-manager --dump
 +</code>
 +
 +==== Configuration dépôt ====
 +
 +=== Ajouter le dépôt MariaDB 11.4 ===
 +
 +  * Créer le fichier <color #00a2e8>/etc/yum.repos.d/mariadb.repo</color>
 +
 +<code>
 +# 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
 +</code>
 +
 +  * Prendre en compte le nouveau dépôt
 +
 +<code bash>
 +sudo dnf clean all
 +sudo dnf makecache
 +</code>
 +
 +  * Installer et configurer MariaDB
 +
 +<code bash>
 +sudo dnf install mariadb-server
 +sudo systemctl start mariadb
 +sudo systemctl enable  mariadb
 +sudo mariadb-secure-installation
 +</code>
 +
 +=== Configurer cdrom comme dépôt de package ===
 +
 +  * Monter l’image iso redhat à partir du lecteur de DVD 
 +
 +<code bash>
 +mount –t iso9660 /dev/cdrom /mnt
 +</code>
 +
 +  * Importer les signatures
 +
 +<code bash>
 +rpm --import /mnt/RPM-GPG-KEY-redhat-release
 +</code>
 +
 +  * Ajouter les lignes suivantes à la fin du fichier <color #00a2e8>/etc/yum.conf</color> ou créer un nouveau fichier <color #00a2e8>/etc/yum.repos.d/cdrom.repo</color> 
 +
 +<code bash>
 +[repository]
 +name=cdrom
 +baseurl=file:///mnt
 +</code>
 +
 +<code bash>
 +yum clean all
 +yum repolist all
 +</code>
 +
 +=== Désactiver dépôt ===
 +
 +<code bash>
 +sudo dnf config-manager --disable rhel-9-appstream-rhui-rpms rhel-9-baseos-rhui-rpms rhui-client-config-server-9
 +</code>
 +
 +=== Activer dépôt ===
 +
 +<code bash>
 +sudo dnf config-manager --enable rhel-9-appstream-rhui-rpms rhel-9-baseos-rhui-rpms rhui-client-config-server-9
 +</code>
 +
 +==== Utilisation proxy ====
 +
 +Ajouter à la fin du fichier <color #00a2e8>/etc/yum.conf</color>
 +
 +<code bash>
 +proxy=http://155.132.8.51:3128
 +</code>
 +
 +Lancer la commande :
 +
 +<code bash>
 +yum update
 +</code>
 +
 +==== Mises à jour automatiques ====
 +
 +=== Installation package ===
 +
 +<code bash>
 +yum install yum-cron
 +</code>
 +
 +=== Configuration ===
 +
 +Editer le fichier <color #00a2e8>/etc/yum/yum-cron.conf</color> pour définir les options désirées
 +
 +== Application des mises à jour automatiquement ==
 +
 +<code>
 +apply_updates = yes
 +</code>
 +
 +== Mises à jour de sécurité uniquement  ==
 +
 +<code>
 +update_cmd = security
 +</code>
 +
 +==== Extraire les fichiers d'un rpm ====
 +
 +<code bash>
 +rpm2cpio fichier.rpm > fichier.cpio
 +cpio –i –make-directories < fichier.cpio
 +</code>
 +
 +==== Installation environnement graphique à postériori ====
 +
 +=== Gnome ===
 +
 +<code bash>
 +yum groupinstall "X Window System" Desktop
 +</code>
 +
 +=== KDE ===
 +
 +<code bash>
 +yum groupinstall "X Window System" "KDE Desktop"
 +</code>
 +
 +Modification du fichier <color #00a2e8>/etc/inittab</color> pour passer en runlevel 5 au démarrage (ou startx).
 +
 +==== Installation offline ====
 +
 +=== Récupération des packages sur une machine au même niveau ===
 +
 +<code bash>
 +yum --downloadonly --downloaddir=<repertoire> install <package>
 +yum install createrepo
 +createrepo <repertoire>
 +</code>
 +
 +=== 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 <color #00a2e8>/etc/yum.repos.d/local.repo</color> 
 +
 +<code bash>
 +[local]
 +name=Local repository
 +baseurl=file:///chemin_vers_repertoire
 +enabled=1
 +gpgcheck=0
 +protect=1
 +</code>
 +
 +<code bash>
 +yum clean all
 +yum repolist all
 +</code>
 +
 +=== Source ===
 +
 +[[https://www.clevernetsystems.com/installing-rhel-packages-without-network-connection/|Installation sans connexion internet]]
 +
 +==== Réparer paquet cassé ====
 +
 +=== Vérification des paquets ===
 +
 +<code bash>
 +sudo rpm -Va
 +</code>
 +
 +=== Forcer la réinstallation d'un paquet ===
 +
 +<code bash>
 +sudo dnf --refresh reinstall <paquet>
 +</code>
 +
 +[[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.
 +
 +<code bash>
 +yum history sync
 +</code>
 +
 +=== 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]].
 +
 +<code bash>
 +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
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:packages|Haut de page]]