Outils pour utilisateurs

Outils du site


tech:notes_commande_yum_rpm

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:notes_commande_yum_rpm [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:notes_commande_yum_rpm [2026/02/16 14:22] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Redhat Package}}
 +
 +# Notes commande yum dnf rpm
 +
 +Voir aussi :
 +* rpm-ostree
 +* PackageKit (pkcon)
 +
 +Voir autres commandes :
 +* package-cleanup
 +
 +show duplicate
 +~~~bash
 +yum search postgresql12-server --show-duplicate  
 +~~~
 +
 +Test, dry-run ''--assumeno'' pour "Assume no"
 +~~~bash
 +yum install --assumeno httpd
 +~~~
 +
 +Lister tous les RPMs
 +~~~bash
 +rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" |sed -e 's/.(none)$//'
 +rpm -qa
 +~~~
 +
 +Lister les derniers paquets installés
 +~~~bash
 +rpm -qa --last |head
 +~~~
 +
 +Effacer le journal de transaction
 +~~~bash
 +yum-complete-transaction --cleanup-only
 +~~~
 +
 +Effacer un paquet de la base RPM seulement, mais garder les fichiers
 +~~~bash
 +rpm --justdb -e plop
 +~~~
 +
 +Connaître la version des paquets installés
 +~~~bash
 +rpm -q -i plop
 +yum list plop
 +yum list | grep plop
 +~~~
 +
 +Query Available Packages From Selected YUM Repository \\
 +Disable all repositories and then enable just selected repo.
 +~~~bash
 +yum --disablerepo="*" --enablerepo="plop" list available
 +~~~
 +
 +~~~bash
 +yum --nogpgcheck localinstall https://acme.fr/plop/plop.rpm
 +# rpm -i --nosignature plop.rpm
 +~~~
 +
 +Uninstall any existing/partially installed versions.
 +~~~bash
 +yum --setopt=tsflags=noscripts -y remove google-chrome-stable
 +# Ou
 +rpm -e --noscripts google-chrome-stable
 +~~~
 +
 +Voir les scripts du RPM
 +~~~bash
 +rpm -qp --scripts my_package.rpm > ListOfScripts
 +~~~
 +
 +Installer un paquet dans une autre arbo
 +~~~bash
 +# rpm ... --relocate /opt=/usr/opt --relocate /etc=/usr/etc ...
 +rpm -ivh --relocate /usr/local/avamar=NEW-BASE-PATH --relocate /var/avamar=/NEW-VAR-PATH AVAMAR-LINUX.RPM
 +
 +rpm -Uvh --prefix /mnt/extern=/some/other/path some_rpm_name-some_rpm_version
 +~~~
 +
 +update
 +~~~bash
 +yum update
 +#dnf update --nogpgcheck
 +
 +# ou
 +yum update --allowerasing
 +~~~
 +
 +autoupdate
 +~~~bash
 +env YUMINTERACTIVE=0 yum-autoupdate
 +~~~
 +
 +
 +## rpmconf
 +
 +Pour savoir les différences entre les nouvelles versions de fichiers de conf des paquets RPM et les anciens fichiers de conf
 +
 +Comme pour les fichiers :
 +* rpmnew
 +* rpmsave
 +
 +
 +## Les groupes
 +
 +Pour connaitre la liste des groupes disponibles :
 +~~~bash
 +dnf grouplist
 +~~~
 +
 +Pour avoir des informations sur un groupe, comme les paquets qui le composent :
 +~~~bash
 +dnf groupinfo <"Nom du Groupe">
 +~~~
 +
 +Pour installer un groupe :
 +~~~bash
 +dnf groupinstall <"Nom du Groupe">
 +~~~
 +
 +
 +## Dépendances
 +
 +Lister les dépendances d'un paquet RPM
 +~~~bash
 +rpm -qpR {.rpm-file}
 +rpm -qR {package-name}
 +~~~
 +
 +Ignorer les dépendances avec ''--nodeps''
 +~~~bash
 +rpm -e --nodeps sshpass
 +~~~
 +
 +~~~bash
 +rpm -Uvh --nodeps $(repoquery --location winswitch)
 +~~~
 +
 +
 +## Supprimer et installer un paquet sur la même ligne de commande 
 +
 +~~~
 +# yum shell
 +> remove libcurl
 +> install libcurl-minimal
 +> run
 +> quit
 +~~~
 +
 +Ou 
 +~~~bash
 +yum swap -- install libcurl-minimal -- remove libcurl
 +~~~
 +
 +## Vérifier la signature des paquets
 +
 +~~~bash
 +rpm -K *.rpm -v
 +~~~
 +
 +
 +
 +## Spécifier une version
 +
 +Connaître les différentes versions disponible pour un paquet
 +~~~bash
 +yum --showduplicates list php
 +~~~
 +
 +Export de la liste des paquets
 +~~~bash
 +#rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}\n" > installed-rpm.txt
 +rpm -qa
 +~~~
 +
 +Utiliser la liste pour réinstaller les paquets
 +~~~bash
 +LANG=C yum install $(cat installed-rpm.txt) |grep -v ^Package
 +~~~
 +
 +## Exclure un paquet / ne pas mettre à jour un paquet
 +
 +Oneshot sur une commande
 +~~~bash
 +dnf --exclude=mysql\* --exclude=httpd\* update
 +~~~
 +
 +En changeant la conf par défaut
 +
 +''/etc/yum.conf''
 +
 +~~~ini
 +[main]
 +cachedir=/var/cache/yum/$basearch/$releasever
 +keepcache=0
 +debuglevel=2
 +logfile=/var/log/yum.log
 +exclude=kernel* kmod-kvdo
 +~~~
 +
 +En forçant une version avec le plugin versionlock
 +~~~bash
 +yum versionlock add freetype
 +yum versionlock list
 +yum versionlock clear
 +~~~
 +
 +
 +
 +
 +## Upgrade OS - Montée de version
 +
 +Voir **leapp**
 +* https://www.redhat.com/rhdc/managed-files/li-leapp-explained-detail-f31715pr-202208-a4-fr.pdf
 +
 +
 +## yum-plugin / dnf-plugin
 +
 +Exemple de plugin :
 + * https://github.com/knumskull/aap-protector
 +
 +
 +
 +
 +## Autres
 +
 +### Options conflits
 +
 +Try to add ''--allowerasing'' to command line to replace conflicting packages or ''--skip-broken'' to skip uninstallable packages or ''--nobest'' to use not only best candidate packages.
 +
 +
 +### Fastestmirror
 +
 +~~~bash
 +echo 'fastestmirror=1' >> /etc/dnf/dnf.conf 
 +~~~
 +
 +
 +### Modules
 +
 +Les dépôts modulaires sont arrêtés à partir de Fedora Linux 39. Cela signifie que les paquets fedora-repos-modular et fedora-repos-rawhide-modular sont supprimés, et les modules ne sont plus disponibles. Un module consistait en la possibilité de proposer plusieurs versions alternatives d’un même paquet ou ensemble de paquets, souvent entre deux versions d’un langage de programmation type PHP. Les versions de Fedora Linux antérieures restent toujours fournies le temps de leur maintenance officielle, donc un mois après Fedora Linux 40. Il y avait en effet peu de paquets qui exploitaient cette possibilité et plus personne ne maintenait l’outillage nécessaire à leur production. Les ressources du projet Fedora et des empaqueteurs seront moins dispersées par cet effort pour une solution qui n’a manifestement pas trouvé son public, sans doute à cause de l’impossibilité d’avoir plusieurs versions en parallèle d’un même module.
 +
 +
 +
 +## Notes dépendances
 +
 +~~~
 +---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.201.b09-1.el6_10 will be installed
 +--> Processing Dependency: pcsc-lite-devel(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.201.b09-1.el6_10.x86_64
 +--> Finished Dependency Resolution
 +Error: Package: 1:java-1.8.0-openjdk-headless-1.8.0.201.b09-1.el6_10.x86_64 (rhel-6-server-rpms)
 +           Requires: pcsc-lite-devel(x86-64)
 +**********************************************************************
 +yum can be configured to try to resolve such errors by temporarily enabling
 +disabled repos and searching for missing dependencies.
 +To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
 +**********************************************************************
 +~~~
 +
 +## Pb
 +
 +### Notes pb Gestion conflits
 +
 +~~~
 +# yum downgrade glibc
 +Modules complémentaires chargés : product-id, search-disabled-repos, subscription-manager
 +
 +Résolution des dépendances
 +--> Lancement de la transaction de test
 +---> Le paquet glibc.x86_64 0:2.17-105.el7 sera une rétrogradation
 +--> Traitement de la dépendance : glibc-common = 2.17-105.el7 pour le paquet : glibc-2.17-105.el7.x86_64
 +---> Le paquet glibc.x86_64 0:2.17-106.el7_2.8 sera effacé
 +--> Résolution des dépendances terminée
 +Erreur : Paquet : glibc-2.17-105.el7.x86_64 (vmx)
 +             Requiert : glibc-common = 2.17-105.el7
 +             Installé  : glibc-common-2.17-106.el7_2.8.x86_64 (@base)
 +                 glibc-common = 2.17-106.el7_2.8
 +             Disponible : glibc-common-2.17-105.el7.x86_64 (vmx)
 +                 glibc-common = 2.17-105.el7
 +Erreur : Paquet : glibc-common-2.17-106.el7_2.8.x86_64 (@base)
 +             Requiert : glibc = 2.17-106.el7_2.8
 +             Suppression  : glibc-2.17-106.el7_2.8.x86_64 (@base)
 +                 glibc = 2.17-106.el7_2.8
 +             Rétrogradé par : glibc-2.17-105.el7.x86_64 (vmx)
 +                 glibc = 2.17-105.el7
 + Vous pouvez essayer d'utiliser --skip-broken pour contourner le problème
 + Vous pouvez essayer d'exécuter : rpm -Va --nofiles --nodigest
 +~~~
 +
 +
 +#### Solution
 +
 +~~~bash
 +yum downgrade glibc glibc-common
 +~~~
 +
 +En avec la commande rpm :
 +~~~bash
 +rpm -Uvh --oldpackage glibc*.rpm
 +~~~
 +
 +Voir également ''--skip-broken'' to skip uninstallable packages or ''--nobest'' to use not only best candidate packages
 +
 +
 +### Pb yum error in PREUN scriptlet when removing packages
 +
 +source : https://serverfault.com/questions/613256/yum-error-in-preun-scriptlet-when-removing-packages
 +
 +
 +
 +It seems like somehow yum cached data and the rpm database got out of sync with each other I guess. Try running the next commands:
 +~~~bash
 +su -c 'yum clean all && rpm --rebuilddb'
 +su -c 'package-cleanup --problems'
 +~~~
 +
 +Then run:
 +~~~bash
 +su -c 'yum erase zarafa*'
 +~~~
 +
 +Edit #1: Try running the next command:
 +~~~bash
 +su -c 'yum --setopt=tsflags=noscripts remove zarafa*'
 +~~~
 +
 +If that doesn't work, try this:
 +~~~bash
 +su -c 'rpm -e --noscripts zarafa*'
 +~~~
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki