2010-12-06 132 views
1

我的一个Rubygem(Nokogiri)很反对libXML 2.7.6,但是一旦我将libXML升级到2.7.8版,我的程序就会出错。为了使我的程序能够正常工作,我需要做很多修改,而且我不想这样做。我可以降级的libxml 2.7.6如何在Ubuntu中将libxml 2.7.8降级到2.7.6

回答

1

我最常做在这种情况下是...

  1. 下载源代码,因为我想用
  2. 使用apt-get build-dep libxml得到的lib版本需要依赖关系
  3. 配置下载的lib以使用类似/ opt或$ HOME的前缀
  4. 配置需要来自源的lib“奇数”版本的应用程序以使用下载的版本。
  5. 构建&安装

在某些情况下也可能两个库住并排侧,并且可以通过包管理器进行管理,但我有非常糟糕的运气与此有关。

+1

NOOOO!不要做这样的亵渎黑客。只需降级软件包... – Blender 2010-12-06 04:29:41

+0

Linux From Scratch因拒绝使用不同libXML版本的软件包而臭名昭着。我曾经有三次安装,并且跟踪所有这些并不是很有趣......我意外删除了,因为我忘了将它推入`/ opt /`,但是哦...不过,我同意你的答案适用于经常编译内容的人员或那些正在降级关键系统包的人。 – Blender 2010-12-06 15:19:12

3

您是否尝试重建Nokogiri以使用更新版本的libxml?

gem uninstall nokogiri 
gem install nokogiri 

应该这样做。如果您最初使用sudo安装了Nokogiri,您还需要使用上面的命令。

Nokogiri具有在安装时编译的本机代码,并且如果libxml版本发生更改,代码将会不高兴。卸载,然后重新安装应该只需要大约30秒,导致本地代码被更新为新的库。