Forum Linux.debian/ubuntu Changer la version d'un package ou le bloquer?

Posté par . Licence CC by-sa.
0
14
juil.
2015

Bonsoir,
j'essaie d'installer mediagoblin sur une machine sous Trisquel Belenos GNU/Linux, mais j'ai quelques soucis, dont pas mal de récurrence. Je l'ai fais juste avant sur une Debian Jessie et pas eu de soucis particuliers. Je suis les instructions vu ici : https://mediagoblin.readthedocs.org/en/stable/siteadmin/deploying.html
Le soucis particulier, c'est que à chaque lancement de l'application j'ai une erreurs python pour m'indiquer qu'il manque un paquet. Jusque là j'avais géré et retrouvé pour chaque fois le bon paquet à installer (dont de la bidouille en passant par les packages debian et du downgradage).
Le truc c'est que cette fois ci il faut exactement là bonne version d'un paquet - en l’occurrence alembic 0.6.6. J'ai essayé en installant le package python-alembic 0.6.5 et le 0.7.4dev et ni l'un ni l'autre ne convient.
J'aimerai tricher, et faire croire que j'ai la bonne version. Je ne sais pas si c'est possible.
Je ne comprends pas trop pourquoi j'ai autant de difficulté avec la Trisquel, surtout que pour tenter le lancement de l'appli, je suis obligé d'installer des paquets avec SQLAlchemy d'une certaine version (<8.0), et lors de la tentative de l'exécution du serveur, il me demande entre 8.0 et 9.0… En gros, j'installe le paquet, puis je force le downgrade de SQLAlchemy pour que ça passe. Mediagoblin n'est pas totalement stable, mais pour tenter de lancer au moins une fois l'appli je suis en train de faire des choses que je trouve pas trop logique :D
De plus au lieu d'avoir une proposition de mise à jour de paquet que j'ai downgradé pour installer, j'aimerai le bloquer pour éviter la mise à jour lors d'un upgrade par ex. Ça je crois bien que c'est possible mais je ne sais pas comment.

Merci d'avance car là je bloque.

  • # pip

    Posté par (page perso) . Évalué à 3.

    Salut,

    Évite de casser le système lui-même : utilise pip quand tu veux installer des modules python non inclus dans la distribution (ou si elle propose une version inadéquate)…

    Encore mieux : crée un virtualenv pour ton logiciel…

    https://www.domotego.com/ | https://www.maccagnoni.eu/ | https://www.smm-informatique.fr/

    • [^] # Re: pip

      Posté par . Évalué à 1.

      Je ne suis pas un dev python donc ces outils je ne les connais pas trop (déjà utilisé à droite à gauche lors d'installations de logiciels dans des docs mais pas plus). Je vais faire ça plutôt, car il vient sous de là mon problème. Et sinon y a moyen de choisir une version précise en utilisant pip?
      Pour ce qui est de virtualenv, je ne sais pas l'utiliser, mais vu mon soucis, je pense regarder et voir comment faire.
      Merci.

      • [^] # Re: pip

        Posté par . Évalué à 2.

        Oui, tu peux choisir la version avec pip (tant qu'elle est disponible dans les dépots pip).

        Virtualenv te permet de créer un environnement dans un dossier, dans lequel tu peux bidouiller avec pip sans sortir du dossier. Tu peux alors avoir plusieurs applis python qui tournent avec des modules différents ou de différente version, chacun dans un virtualenv, sans se perturber entre elles ni perturber le système.

        • [^] # Re: pip

          Posté par . Évalué à 1.

          Nickel, c'est ce que je vais faire dans ce cas.Merci bien.

  • # Mettre le paquet « on hold » ?

    Posté par (page perso) . Évalué à 3.

    dpkg supporte cela, il s'agit du statut « hold ».

    Tu peux utiliser dpkg --get-selections, changer le install en hold pour le paquet voulu, puis dpkg --set-selections pour dire à dpkg de conserver cette version du paquet.

    Attention, si tu utilises aptitude, il me semble qu'il a sa propre vision des paquets avec ce statut. C'est plus direct cependant : aptitude hold ton-paquet. Cela a pu changer, je n'ai pas spécialement suivi les dernières évolutions d'aptitude.

    Debian Consultant @ DEBAMAX

Suivre le flux des commentaires

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