2010-12-06 4 views
1

Un de mes Rubygem (Nokogiri) était bult contre libXML 2.7.6, mais une fois que j'ai mis à jour libXML vers la version 2.7.8, mes programmes donnent des erreurs. Pour que mes programmes fonctionnent, j'ai besoin de faire beaucoup de modifications et je ne veux pas les faire. Puis-je déclasser Libxml à 2.7.6Comment faire pour rétrograder libxml 2.7.8 à 2.7.6 dans Ubuntu

Répondre

1

Ce que je fais habituellement dans ce cas ...

  1. Téléchargez la source pour la version de la lib Je veux utiliser
  2. Utilisez apt-get build-dep libxml pour obtenir le Dépendances nécessaires
  3. Configurez la bibliothèque lib téléchargée pour utiliser un préfixe comme/opt ou $ HOME
  4. Configurez l'application qui a besoin de la version "étrange" de la source lib pour utiliser la version téléchargée.
  5. Construire & Installer

Dans certains cas, il est également possible pour deux libs de vivre côte à côte et peuvent être gérés par le gestionnaire de paquets, mais j'ai eu la chance vraiment mauvais avec cela.

+1

NOOOO! Ne faites pas de tels hacks blasphématoires. Il suffit de rétrograder le paquet ... – Blender

+0

Linux From Scratch est connu pour avoir des paquets qui refusent de fonctionner avec différentes versions de libXML. J'ai déjà eu trois installations en même temps, et ce n'était pas très amusant de garder une trace de toutes ... J'ai supprimé par accident, comme j'ai oublié de le mettre dans '/ opt /', mais bon ... Je suis d'accord, cependant, que votre réponse fonctionne pour les personnes qui compilent des choses en permanence ou ceux qui dégradent un paquet système critique. – Blender

1

Regardez ceci: http://ubuntuforums.org/showthread.php?t=321156. C'est un guide sur la rétrogradation des paquets.

De même, migrer vers https://askubuntu.com/. Ils gèrent les trucs d'Ubuntu.

+0

Je vais lancer l'avertissement que j'ai vu des choses mauvaises et terribles se produire quand on essaie de rétrograder avec force les paquets. Je ne dis pas que Blender a tort, mais je parle d'expérience personnelle (peut-être de la malchance mais de l'expérience) –

+0

Je recherche habituellement les versions plus récentes des paquets en conflit, parce que j'ai tué un système Ubuntu en ... – Blender

3

Avez-vous essayé de reconstruire Nokogiri pour utiliser la nouvelle version de libxml?

gem uninstall nokogiri 
gem install nokogiri 

devrait le faire. Si vous avez installé Nokogiri en utilisant sudo à l'origine, vous devrez également l'utiliser avec les commandes ci-dessus.

Nokogiri a du code natif qui est compilé lors de l'installation, et ce code serait mécontent si la version libxml changeait. La désinstallation, puis la réinstallation ne devraient prendre que 30 secondes, ce qui entraîne la mise à jour du code natif pour la nouvelle bibliothèque.

Questions connexes