{{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 ~~~ ## 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*' ~~~