Comment ignorer les conflits dans les installations rpm
j'ai un tas de fichiers rpm dans un dossier. Je suis en train de les installer à l'aide de:
rpm -ivh *.rpm
pour que rpm puisse s'occuper de l'ordre d'installation correct.
sur certains de ces rpms j'ai une nouvelle version installée dans mon système donc je reçois par exemple:
package info-5.0-1 (which is newer than info-4.13a-2) is already installed
/opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1
Est-il un moyen d'ignorer le vieux .rpm fichier et résoudre la dépendance avec la nouvelle version qui est déjà installé? J'ai pensé à l'option --force. Mais comment -- la force résout les conflits? Les écriterait avec l'ancienne version ou juste les ignorerait laissant la nouvelle version?
toute pensée est la bienvenue.
3 réponses
l'option --force
réinstallera les paquets déjà installés et écrasera les fichiers déjà installés d'autres paquets. Tu ne veux pas ça normalement.
si vous dites à rpm
d'installer tous les RPM à partir d'un répertoire, alors il fait exactement cela. rpm
ne peut pas ignorer les RPMs listés pour l'installation. Vous devez supprimer manuellement les RPM non nécessaires de la liste (ou du répertoire).
vous pouvez supprimer L'ancien RPM et rpm
résoudra la dépendance avec la nouvelle version du RPM installé. Mais cela ne fonctionnera que, si aucun être installé Rpm repose exactement sur l'ancienne version.
si vous avez vraiment besoin de différentes versions du même RPM, alors le RPM doit être relogeable . Vous pouvez alors dire à rpm
d'installer le RPM spécifique dans un répertoire différent. Si les fichiers ne sont pas en conflit, alors vous pouvez juste installer différentes versions avec rpm -i
( zypper in
ne peut pas installer des versions différentes du même RPM). J'empaquette par exemple des gemmes ruby comme des RPM relocalisables au travail. Donc je peux avoir différentes versions du même bijou installé.
Je ne sais pas sur quels fichiers vos RPM sont en conflit, mais si tous sont des pages de manuel" just", alors vous pouvez probablement simplement écraser les nouveaux avec les anciens avec rpm -i --replacefiles
. Le seul problème avec cela serait, qu'il pourrait confondre quelqu'un qui lit le vieux l'homme page et pense que c'est pour la version actuelle. Un autre problème serait la commande rpm --verify
. Il se plaindra pour le nouveau paquet si l'ancien a écrasé certains fichiers.
est-ce un duplicata possible de https://serverfault.com/questions/522525/rpm-ignore-conflicts ?
du contexte, le conflit a été causé par la version du paquet.
Regardons le manuel à propos de rpm
:
--force
Same as using --replacepkgs, --replacefiles, and --oldpackage.
--oldpackage
Allow an upgrade to replace a newer package with an older one.
Ainsi, vous pouvez exécuter la commande rpm -Uvh info-4.13a-2.rpm --force
pour résoudre votre problème.