Journal Mandriva: comment réinstaller un paquet avec urpmi

Posté par  .
Étiquettes : aucune
0
22
août
2006
Jusqu'à preuve du contraire, aucune option de ligne de commande urpmi ne permet de forcer une réinstallation.
La réponse reste invariablement "Tout est déjà installé".

Pour y remédier, j'ai testé l'installation intermédiaire d'une version précédente :

# urpmq -ar coreutils
coreutils-5.0-6mdk|coreutils-5.0-6.1.92mdk
# urpmi --force coreutils-5.0-6mdk && urpmi coreutils-5.0-6.1.92mdk


Ça fonctionne, mais nécessite le téléchargement d'un paquet supplémentaire et peut poser problème avec les dépendances.

J'ai aussi testé la désinstallation virtuelle :

# rpm -e --justdb --nodeps coreutils
# urpmi coreutils


Là l'inconvénient c'est que urpmi fait une nouvelle installation, pas une mise à jour. Du coup il tique un peu sur les fichiers de config déjà existants et rajoute des rpmnew.

Reste le téléchargement et l'installation à la main, mais urpmi est là pour nous éviter ça, pas vrai ?

Bref rien de vraiment satisfaisant.
Vous avez une meilleure solution ?
Un vrai --force ça serait tellement bien...

NB: Les motifs de réinstallation sont nombreux, là n'est pas la question.
Dans mon cas il s'agit d'installer les catalogues de messages manquants suite à la modif de la langue dans /etc/rpm/macros
  • # Ah ben tiens....

    Posté par  . Évalué à 3.

    ...je viens de voir que la réinstallation de paquet est en tête des fonctionnalités demandées pour urpmi :
    http://qa.mandriva.com/twiki/bin/view/Main/UrpmiDev
  • # C'est pas fini...

    Posté par  . Évalué à 1.

    J'ajoute le lien vers la page bugzilla, ouverte depuis mai 2005:
    http://qa.mandriva.com/show_bug.cgi?id=16112

    Autre hack possible: modifier la base de données rpm directement (sans utiliser rpm) et y changer le numéro de version installé (en ajoutant un caractère?).
    De cette manière, une exécution consécutive de urpmi identifierait la version installée comme non-à jour et autoriserait la mise à jour.
    Ça parait tordu mais ça a l'avantage d'être direct.
    Par contre modifier la bdd rpm à la main (ou avec les db-utils qui vont bien?), ça risque de ne pas être de la tarte...

    Encore une autre piste: regénérer un paquet rpm à partir de l'installation courante.
    Est-ce possible?
    Y a-t-il moyen de reconstruire un rpm à partir de la bdd rpm et des fichiers installés, tout en bidouillant son numéro de version à la volée ?

    Qu'en pensez-vous?
    • [^] # Re: C'est pas fini...

      Posté par  (site web personnel) . Évalué à 2.

      à mon avis, c'est dangereux !
      car ça ne m'étonnerai absolument pas qu'un md5 ou une telle vérification soit faite sur cette base pour éviter justement de partir avec un fichier corrompue ou autre !

      donc une modif à la main dedans risque de corrompre cette base...
      et là, ben, ça va devenir galère !!
  • # urpmi.recover

    Posté par  . Évalué à 3.

    Tu devrais regarder urpmi.recover disponible dans le package urpmi-recover, sous cooker :

    # urpmi.recover
    urpmi.recover version 4.8.23
    Copyright © 2006 Mandriva.
    Ceci est un logiciel libre pouvant être redistribué selon les termes de la licence GNU GPL.

    usage :
    --help - afficher ce message d'aide
    --checkpoint - initialiser maintenant le point de référence
    --noclean - ne pas vider le répertoire de regénération lors de
    l'initialisation du point de référence
    --list - lister les transactions effectuées depuis la date ou durée
    précisée
    --list-all - lister toutes les transactions de la base RPM.
    --list-safe - lister les transactions effectuées depuis le dernier point
    de référence
    --rollback - revenir à l'état correspondant à la date spécifiée,
    ou revenir en arrière du nombre de transactions précisé
    --disable - désactive la regénération
    • [^] # Re: urpmi.recover

      Posté par  . Évalué à 1.

      Ça a l'air intéressant comme outil, mais je ne vois pas comment ça peut m'aider a réinstaller un paquet déjà présent.

      D'après la description, urpmi.recover permet un suivi des (dés)installations de paquets et rollback éventuel, mais rien concernant l'intégrité des paquets actuellement installés.
      • [^] # Re: urpmi.recover

        Posté par  . Évalué à 2.

        En fait il faut juste faire une point de référence (attention c'est long) ensuite tu installes tes mise à jour et si c'est okay tout va bien mais si tu as un problème, tu fait un --rollback pour revenir au version existante au moment de la création du point de référence.

        Voila simple et efficase

        Laurent

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.