Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 山狮上LibXML的Nokogiri问题_Ruby On Rails_Ruby_Nokogiri_Osx Mountain Lion - Fatal编程技术网

Ruby on rails 山狮上LibXML的Nokogiri问题

Ruby on rails 山狮上LibXML的Nokogiri问题,ruby-on-rails,ruby,nokogiri,osx-mountain-lion,Ruby On Rails,Ruby,Nokogiri,Osx Mountain Lion,我最近对Mountain Lion进行了一次干净的安装,在安装Nokogiri之后-在启动Rails控制台时出错: 警告:Nokogiri是根据LibXML版本2.8.0构建的,但动态加载了2.7.8 因此,我在这里查看了其他问题,卸载了所有内容并重试,但我注意到Nokogiri网站上的安装说明已过时: 因为“brew安装libxml2 libxslt”,实际上是安装libxml2.8.0,并进一步阅读它所指的2.7.8说明: gem install nokogiri -- --with-x

我最近对Mountain Lion进行了一次干净的安装,在安装Nokogiri之后-在启动Rails控制台时出错:

警告:Nokogiri是根据LibXML版本2.8.0构建的,但动态加载了2.7.8

因此,我在这里查看了其他问题,卸载了所有内容并重试,但我注意到Nokogiri网站上的安装说明已过时:

因为“brew安装libxml2 libxslt”,实际上是安装libxml2.8.0,并进一步阅读它所指的2.7.8说明:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                    --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                    --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                    --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                    --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
(通知libxml2/2.7.8)

所以我再次卸载,并使用:(libxml2/2.8.0)重新安装

虽然它在IRB中似乎工作得很好,但在Rails C中却没有——它仍然说:


警告:Nokogiri是根据LibXML版本2.8.0构建的,但动态加载了2.7.8

我试过运行bundle更新,但还是一样


有什么办法可以解决这个问题吗?

所以你首先运行了
gem安装nokogiri--with-xml2-include=/usr/local/cillar/libxml2/2.7.8/include/libxml2--with-xml2-lib=/usr/local/cillar/libxml2/2.7.8/lib…
,它仍然说“nokogiri是根据LibXML版本2.8.0构建的”?这看起来好像它没有注意到开关

无论如何,问题与您的计算机所说的完全一样:libxml*。因此它在运行时使用的是旧版本。请尝试
manldconfig
,在标准目录中查找旧的libxml库。将新的放在旁边,并将符号链接指向它就足够了


免责声明:我不是osxer,买家要小心。

除非您迫切需要使用更新版本的libxml2,否则随OS X Mountain Lion发布的标准版本就可以了。我用过

brew uninstall libxml2
brew uninstall libxslt

gem uninstall nokogiri
gem install nokogiri
效果很好。没有必要重新安装建议的Ruby 1.9.3。当然,只有在您以前安装过libxslt(正如我所做的那样)的情况下,才需要卸载libxslt

如果确实卸载了其中一个库,您可能希望通过

brew missing

是否意外删除了依赖项。

检查您的gem文件,确保nokogiri是隐式定义的——不要依赖隐式包含来为您提供正确版本的nokogiri gem


然后卸载libxml2和libxslt(如果通过brew安装),通过gem卸载nokogiri,然后通过bundler安装重新安装。

您好,我现在不确定最初的错误,因为我没有注意到它(版本可能已被翻转?)。我试过你的建议“man ldconfig”,但它说“没有手动输入ldconfig”。你能想点别的我可以试试的吗?谢谢您可以尝试发布实际的错误消息。而且,这并不难找到:我也有同样的问题。
nokogiri-v
的输出说明:
编译:2.8.0,加载:2.8.0
。似乎只有Rails才存在奇怪的问题。请尝试brew卸载libxml2,然后重试(如果不起作用,请卸载nokogiri并重新安装)。另外,在gem文件顶部附近添加PG gem。
brew missing