1

我不知道这里出了什么问题——有什么想法吗?

我在 Ubuntu 8.04 LTS 上运行,并按照以下说明安装了 libxml2 和 libxslt:

http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php

http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php

但是,我安装了最新版本:

libxslt-1.1.24
libxml2-2.7.3

安装很顺利

-------------------- 我设置LD_LIBRARY_PATH---------------------------- ------

回声$LD_LIBRARY_PATH
/usr/local/libxslt/lib:

------------- 似乎该功能存在 - 至少基于字符串的输出 ------------
/usr/local/libxslt/lib$字符串 * | grep ParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc

------------------------ 但是编译仍然失败 ---------- ------------------

sudo gem install webrat
构建原生扩展。这可能需要一段时间...
错误:安装 webrat 时出错:
错误:无法构建 gem 原生扩展。

/usr/local/bin/ruby extconf.rb 安装 webrat
检查 /opt/local/include/、/opt/local/include/libxml2、/opt/local/include、/opt/local/include 中的 iconv.h, /opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include /libxml2... 是
检查 /opt/local/include/、/opt/local/include/libxml2、/opt/local/include、/opt/local/include、/opt/local/ 中的 libxml/parser.h包括/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2...是的
检查 /opt/local/include/、/opt/local/include/libxml2、/opt/local/include、/opt/local/include、/opt/local/include/libxml2、/usr 中的 libxslt/xslt.h /local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... 是
检查 libexslt/exslt .h 在 /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include, /usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... 是
检查 xmlParseDoc() 在 -lxml2.. . 是
的,在 -lxslt 中检查 xsltParseStylesheetDoc() ... 没有
缺少 libxslt。尝试“port install libxslt”或“yum install libxslt-devel”
*** extconf.rb failed ***
由于某种原因无法创建 Makefile,可能缺少
必要的库和/或头文件。检查 mkmf.log 文件以获取更多
详细信息。您可能需要配置选项。

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-xslt-dir
--without-xslt-dir
--with-xslt-include
--without-xslt-include=${xslt-dir}/include
--with-xslt-lib
--without-xslt-lib=${xslt-dir}/lib
--with-xml2lib
--without-xml2lib
--with-xsltlib
--without-xsltlib

Gem 文件将继续安装在 /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3 以供检查。
结果记录到 /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

4

6 回答 6

5

在 Ubuntu 中,您需要执行以下步骤: sudo apt-get install libxml2-dev sudo apt-get install libxslt-dev

于 2009-11-09T19:47:15.877 回答
1

Jared Evans 在他博客上的这篇文章中描述了一个在 Ubuntu 8.04 LTS 上对我有用的解决方案。他的诀窍是不使用apt-get安装 ruby​​gems,而是从源代码构建它。这对我很有用。他的帖子是针对安装的rails,所以我使用了这些(稍作修改)步骤来安装 nokogiri:

首先安装红宝石APT-GET

 sudo apt-get update
 sudo apt-get install ruby irb ri rdoc ruby1.8-dev libzlib-ruby
  libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby
  libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby
  libdbm-ruby libdbi-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev
  libsqlite3-ruby libxml-ruby libxml2-dev

除了 JARED 的说明之外,我还安装了(我不确定libxslt1.1是否有必要):

 sudo apt-get install libxslt1.1
 sudo apt-get install libxslt1-dev

下载 RUBYGEMS 源:

从 ruby​​forge下载最新的 RubyGems(目前是 1.3.6)(我使用的是 zip 包)。

建造红宝石:

 cd /TO/DIRECTORY/WHERE/YOU/UNZIPPED/rubygems-1.3.6/
 sudo ruby setup.rb
 sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

安装 NOKOGIRI:

 sudo gem update –system
 sudo gem install nokogiri

响应将是:

1 gem installed
Installing ri documentation for nokogiri-1.4.1...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options
Installing RDoc documentation for nokogiri-1.4.1...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options

我还没有注意到由“无定义”消息引起的任何问题......

于 2010-04-14T17:54:45.270 回答
0

尝试删除 libxslt* 并重新安装它们。这为我解决了这个问题。

于 2009-08-04T14:48:18.090 回答
0

您必须安装这些库的开发工具包。

于 2009-08-10T18:45:20.383 回答
0

尝试安装到非标准位置时出现相同的错误(因为我无权访问主目录之外的目录)。似乎这个答案只是安装到 /usr 中的默认位置以获得成功。还是我误会了?

如果有帮助,请访问http://groups.google.com/group/nokogiri-talk/browse_thread/thread/c1e909be09e90f5a ,了解有关我正在尝试做什么的更多上下文。

于 2009-11-21T19:43:35.250 回答
0

以下是在 Ubuntu 11.04 (natty) 上对我有用的方法:

sudo apt-get install libxslt-dev libxml2-dev

sudo gem install nokogiri

于 2011-05-26T21:21:58.737 回答