Roh*_* A. 155 ruby rubygems ruby-on-rails
我总是按照" 安装Nokogiri "教程中的文档来解决Nokogiri安装问题.
但这一次,即使安装了所有依赖项,Nokogiri也没有安装.我收到以下错误:
libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html>
Run Code Online (Sandbox Code Playgroud)
我尝试通过指定libxml2和libxslt目录来安装它:
sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/
Run Code Online (Sandbox Code Playgroud)
但它返回了同样的错误.
我遵循了所有其他相关的Stack Overflow文章,没有人帮忙.有没有人有办法解决吗?
Rya*_*yan 244
您实际上可能需要安装这两个软件包
sudo apt-get install libxslt-dev libxml2-dev
Run Code Online (Sandbox Code Playgroud)
Eri*_*son 158
首先,安装依赖项:
sudo apt-get install libxslt-dev libxml2-dev
Run Code Online (Sandbox Code Playgroud)
如果仍然收到错误,则可能缺少编译器工具链:
sudo apt-get install build-essential
Run Code Online (Sandbox Code Playgroud)
如果你错过了一个构建工具链,你会得到"libxml2 is missing"错误(至少我在Debian Lenny遇到过这个问题).
Nokogiri构建测试编译libxml2头文件以验证它是否存在,但是,它没有区分"缺少libxml2"和"缺少测试libxml2的编译器".
Edu*_*rdo 59
在Mac OS X(Mavericks)中,在安装gem之前安装库brew
和设置NOKOGIRI_USE_SYSTEM_LIBRARIES=1
对我来说是个窍门.
总结:
如果以前安装过,请卸载gem:
gem uninstall nokogiri
Run Code Online (Sandbox Code Playgroud)使用Homebrew进行安装libxml2
,libxslt
并且libiconv
:
brew install libxml2 libxslt libiconv
Run Code Online (Sandbox Code Playgroud)安装gem指定要链接的库的路径:
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
Run Code Online (Sandbox Code Playgroud)Soj*_*odi 21
我在Fedora 13上遇到了同样的问题.经过令人沮丧和不成功的搜索
gem install nokogiri
Run Code Online (Sandbox Code Playgroud)
为我工作,我能够安装它并解决libxml2错误yum
.
只需安装gem via yum
而不是gem
命令:
su
yum search rubygem-nokogiri #this find the proper package name
yum install rubygem-nokogiri.i686
Run Code Online (Sandbox Code Playgroud)
这有助于我找到适合Fedora的正确答案,因为我使用RVM进行Ruby包管理,
yum install rubygem-nokogiri
Run Code Online (Sandbox Code Playgroud)
将所有Ruby宝石和依赖项引入系统,而不是进入我的RVM环境,并根据我的经验导致非常令人沮丧和谦卑的体验.
所以,你可以使用以下的Nokogiri yum gem:
yum provides rubygem-nokogiri
Run Code Online (Sandbox Code Playgroud)
并获取rubygem-Nokogiri的依赖项列表,其中显示了缺少的库.之后我跑了:
yum install libxml2-devel libxslt libxslt-devel
Run Code Online (Sandbox Code Playgroud)
现在Nokogiri编译Fedora和Nokogiri安装程序.D'哦!,我们需要标题从devel库编译Nokogiri.
pdu*_*ler 13
您通常需要用于构建gem的开发文件.尝试:
sudo apt-get install libxslt-dev libxml2-dev
Run Code Online (Sandbox Code Playgroud)
(我刚才看到埃里克在评论中提出了同样的建议.)
ril*_*lla 12
在Mac OS X(Mavericks)中,如果这些解决方案都不起作用,请尝试:
ARCHFLAGS="-arch x86_64" gem install nokogiri
Run Code Online (Sandbox Code Playgroud)
要么
ARCHFLAGS="-arch i386" gem install nokogiri
Run Code Online (Sandbox Code Playgroud)
取决于您系统的架构.
hoh*_*ner 11
这将是:
sudo yum install -y libxml2 libxml2-devel
Run Code Online (Sandbox Code Playgroud)
在RHEL服务器上.
Chl*_*loe 11
我能够安装Chocolatey,Windows 8.1 x64和DevKit x64.
cinst libxml2
cinst libxslt
cinst libiconv
gem install nokogiri --
--with-xml2-include=C:\Chocolatey\lib\libxml2.2.7.8.7\build\native\include
--with-xml2-lib=C:\Chocolatey\lib\libxml2.redist.2.7.8.7\build\native\bin\v110\x64\Release\dynamic\cdecl
--with-iconv-include=C:\Chocolatey\lib\libiconv.1.14.0.11\build\native\include
--with-iconv-lib=C:\Chocolatey\lib\libiconv.redist.1.14.0.11\build\native\bin\v110\x64\Release\dynamic\cdecl
--with-xslt-include=C:\Chocolatey\lib\libxslt.1.1.28.0\build\native\include
--with-xslt-lib=C:\Chocolatey\lib\libxslt.redist.1.1.28.0\build\native\bin\v110\x64\Release\dynamic
Run Code Online (Sandbox Code Playgroud)
您必须验证路径中的版本号是否正确.
您可能需要添加Microsoft的NuGet存储库:
-Source "https://go.microsoft.com/fwlink/?LinkID=230477"
Run Code Online (Sandbox Code Playgroud)
在macOS上,在我明确提供XCode libxml2路径之前,以上/以下内容对我来说都不起作用--with-xml2-include
。
gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 --use-system-libraries
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83093 次 |
最近记录: |