相关疑难解决方法(0)

为什么在Mac OS上安装Nokogiri失败并且libiconv丢失了?

我一直在尝试在Mac OS 10.9.3上安装Nokogiri,无论我尝试什么,安装最终都会失败,并显示以下错误消息:

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for …
Run Code Online (Sandbox Code Playgroud)

ruby macos libxml2 nokogiri libiconv

156
推荐指数
8
解决办法
7万
查看次数

升级到OS Sierra后,Rails会出现分段错误,可能与sqlite3 gem有关

升级到OSX Sierra后,我遇到了随机分段错误的问题.它最常出现在运行rails测试时,我相信它是由sqlite3_adapter引起的.

我目前的工作是简单地退出终端并重新启动它.这适用于大约1或2个轨道测试,而第三个我几乎可以保证得到另一个分段故障.

是否有其他人遇到此问题或找到更好的解决方法?

$ rails t
Running via Spring preloader in process 13817
/Users/USER/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:27: [BUG] Segmentation fault at 0x00000000000110
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]
Run Code Online (Sandbox Code Playgroud)

编辑:

在深入研究sqlite3_adapter.rb后,我发现导致分段错误的行是创建一个新的SQlite3数据库.

db = SQLite3::Database.new(
    config[:database].to_s,
    :results_as_hash => true
)
Run Code Online (Sandbox Code Playgroud)

编辑2:

我没有退出并重新启动终端,而是发现运行:

spring stop
Run Code Online (Sandbox Code Playgroud)

暂时停止问题.不是解决方案,而是更好的解决方案.

编辑3:

这似乎是Apple提供的libsqlite3不是叉安全的问题.更多信息可以在这里找到:

https://github.com/sparklemotion/sqlite3-ruby/issues/195

现在,我在〜/ .bashrc文件的底部创建了一个别名:

alias ss='spring stop'
Run Code Online (Sandbox Code Playgroud)

出现问题时,我现在可以输入:

ss
Run Code Online (Sandbox Code Playgroud)

然后重新运行测试.

sqlite ruby-on-rails sqlite3-ruby ruby-2.3.1

24
推荐指数
1
解决办法
3671
查看次数

未能安装Nokogiri宝石

我正在开发一个rails应用程序,允许每个使用帐户的图像附件.我正在使用paperclip和amazon网络服务:

gem 'paperclip'
gem 'aws-sdk'
Run Code Online (Sandbox Code Playgroud)

当我运行bundle install时,我收到以下消息:

extconf失败,退出代码1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out
An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

当我尝试运行'gem install nokogiri'时,我收到以下消息:

extconf失败,退出代码1

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.2/gems/nokogiri-1.6.5 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.1.2/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.5/gem_make.out
Run Code Online (Sandbox Code Playgroud)

我的操作系统是Mac OS X 10.9.4 Mavericks.这里发生了什么?如何让nokogiri安装和行为正常?

完整堆栈跟踪:

Building native extensions with: '--use-system-libraries'
This could take a while...
ERROR:  Error …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip nokogiri rvm

16
推荐指数
4
解决办法
2万
查看次数