3

最新的 MacRuby 发行说明 (v0.6) 指出,作者已设法使此版本与 SQLite 和 Nokogiri gem 一起工作。但是,当我运行时sudo macgem install nokogiri,出现以下错误:

ERROR:  Error installing nokogiri:

extconf 失败:

然后是一堆路径,然后是:

libxml2 is missing.  try 'port install libxml2' or 'yum install libxml2'
/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/lib/ruby/Gems/1.9.0/gems/nokogiri-1.4.1/ext/nokogiri/extconf.rb:1:in `<main>': libxml2 is missing.  try 'port install libxml2' or 'yum install libxml2' (SystemExit)

任何人都知道如何让这个工作?我的平台是 Mac OS X 10.6.3。Nokogiri 通常(在普通的旧 ruby​​ 1.8.7 上)安装没有问题。

进步

好的,所以我有:

  1. git clone http://github.com/tenderlove/nokogiri.git
  2. cd nokogiri/ext/nokogiri
  3. 然后我用sudo port upgrade --enforce-variants libxml2 +universal和重建了macports库sudo port upgrade --enforce-variants libxslt +universal
  4. 然后我已经macruby extconf.rb成功执行
  5. 然后我继续make

此时它会出错,如下所示:

/usr/bin/gcc -I. -I/opt/local/include/libxml2 -I/opt/local/include/ -I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9.0/universal-darwin10.0 -I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9.0/ruby/backward -I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9.0 -I. -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/ -I/opt/local/include/libxml2 -I/opt/local/include  -fno-common -fexceptions -fno-common -pipe -O3 -g -Wall -Wno-parentheses  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -arch i386 -arch x86_64 -o html_document.o -c html_document.c
In file included from ./html_document.h:4,
             from html_document.c:1:
./nokogiri.h:35:16: error: st.h: No such file or directory
In file included from ./html_document.h:4,
             from html_document.c:1:
./nokogiri.h:35:16: error: st.h: No such file or directory
lipo: can't open input file: /var/folders/wU/wUGgoG1JGeKBgwalWLPMAU+++TI/-Tmp-//ccSgAUv5.out (No such file or directory)
make: *** [html_document.o] Error 1
4

4 回答 4

1

我认为你必须从源代码构建,因为只有 Nokogiri 的头是 MacRuby 兼容的

于 2010-05-06T04:04:18.560 回答
1

我认为您必须将 libxml2 构建为通用二进制文件。

如果您使用 MacPorts,请执行以下命令。

$ sudo 端口升级 --enforce-variants libxml2 +universal
$ sudo 端口升级 --enforce-variants libxslt +universal
$ sudo 端口升级 --enforce-variants sqlite3 +universal

它仍然在安装中失败(x _ x;

$ sudo macgem 安装 nokogiri                   
构建原生扩展。这可能需要一段时间...
错误:安装 nokogiri 时出错:
 制作失败:

是\n正在检查 xmlRelaxNGSetParserStructuredErrors()... 是\n正在检查 xmlRelaxNGSetParserStructuredErrors()... 是\n正在检查 xmlRelaxNGSetValidStructuredErrors()... 是\n正在检查 xmlSchemaSetValidStructuredErrors()... 是\n正在检查 xmlSchemaSetParserStructuredErrors()...是\n正在创建 Makefile\n", "make", "/usr/bin/gcc -I. -I/opt/local/include/libxml2 -I/opt/local/include/ -I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9.0/universal-darwin10.0 - I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9.0/ruby/backward -I/Library/Frameworks/MacRuby.framework/Versions/0.6/usr/include/ruby-1.9。 0-I。
于 2010-05-06T15:23:36.463 回答
1

如果你使用 GitHub 的源代码,

$ git clone git://github.com/tenderlove/nokogiri.git
$ cd nokogiri/ext/nokogiri/
$ sed -i.bak 's/<st.h>/<ruby\/st.h>/' nokogiri.h

如果你制作 Nokogiri 的 gem 包,

$ cd ../..
$ sudo gem 安装锄头
$ sudo gem 安装 rake 编译器
$ sudo gem 安装 racc
$ sudo gem install rexical
$ mkdir ~/.rubyforge; 触摸 ~/.rubyforge/user-config.yml
$耙宝石

上面的命令,我使用了系统默认的ruby。("/usr/bin/ruby")

$ cd 包
$ sudo macgem 安装 nokogiri-1.4.1.gem
于 2010-05-10T14:57:06.220 回答
0

我上传到 GitHub,我做了一个包。 http://wiki.github.com/Watson1978/nokogiri-macruby/

于 2010-05-13T20:38:10.810 回答