我的系统上只有ruby 2.0。我试着安装mechanize gem。它给了我一个错误,告诉我安装ruby devkit。我按如下方式安装了devkit - 下载安装程序/提取程序>将devkit解压缩到c:\ devkit> cd到c:\ devkit>将路径c:\ Ruby200-x64添加到config.yml文件> ruby dk.rb init
> ruby dk.rb install
。然后我得到了下面的错误。如何解决这个问题?
config.yml文件 -
# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---
- C:\Ruby200-x64
错误 -
C:\Ruby2Devkit>gem install mechanize
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mechanize:
ERROR: Failed to build gem native extension.
C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for main() in -lstdc++... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
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=C:/Ruby200-x64/bin/ruby
--with-stdc++lib
--without-stdc++lib
C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed
to generate an executable file. (RuntimeError)
You have to install development tools first.
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:519:in `try_link0'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:534:in `try_link'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:720:in `try_func'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:950:in `block in
have_library'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:895:in `block in
checking_for'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:340:in `block (2 levels)
in postpone'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:310:in `open'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:340:in `block in postpone'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:310:in `open'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:336:in `postpone'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:894:in `checking_for'
from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:945:in `have_library'
from extconf.rb:2:in `<main>'
Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/
2.0.0/gems/unf_ext-0.0.6 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/unf_ext-0.0.6/
ext/unf_ext/gem_make.out
答案 0 :(得分:2)
如果可能的话,请向我推荐这个人,他的回答对我有帮助 - https://stackoverflow.com/a/16579164/3184475
我花了好几个小时试图找到一种方法来使用我现有的ruby安装来实现这一目标。我安装了devkit和mingw(基础和开发工具)。什么都没有帮助!我无法安装任何重要的宝石。
解决方案 - 删除您的devkit。卸载你的红宝石。从 - http://railsinstaller.org/en
安装RailsInstaller您将使用此安装程序获得一些额外的软件。但谁在乎 ?它将为您节省5个小时的挫折,谷歌搜索,运行命令和以下步骤,你不知道。如果你不被允许这样做,那就准备好了。
安装此软件后,转到cmd并运行ruby -v
以检查您拥有的红宝石。
当您尝试安装gem时,可能会收到一些ssl安全证书错误,例如 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
解决方案就在这里 - https://gist.github.com/luislavena/f064211759ee0f806c88
我从以上链接的主要步骤对我有用。我建议你阅读整篇文章。
第1步:获取新的信任证书 如果您已经阅读了前面的章节,您将会知道这意味着什么(如果您没有,那就会感到羞耻)。
我们需要下载AddTrustExternalCARoot-2048.pem。
使用上面的链接并将此文件放置/保存在以后您可以轻松找到的地方(例如您的桌面)。
重要提示:文件必须以.pem作为扩展名。像Chrome这样的浏览器会尝试将其保存为纯文本文件。确保在下载后更改文件名以包含.pem。
步骤2:在您的安装中找到RubyGems证书目录 为了让我们复制这个文件,我们需要知道把它放在哪里。
根据您安装Ruby的位置,目录将有所不同。
以Ruby 2.1.5的默认安装为例,放置在C:\ Ruby21
中打开命令提示符并输入:
C:\>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb
现在,让我们找到该目录。在同一窗口中,输入路径部分直到文件扩展名,但使用反斜杠:
C:\>start C:\Ruby21\lib\ruby\2.1.0\rubygems
这将在我们指示的目录中打开一个资源管理器窗口。
第3步:复制新的信任证书 现在,找到ssl_certs目录并复制我们从上一步中获得的.pem文件。
它将与其他文件一起列出,例如GeoTrustGlobalCA.pem。
第4步:获利 实际上没有第4步。你应该能够毫无问题地安装Ruby gem。
如果您无法获取该文件AddTrustExternalCARoot-2048.pem,您可以使用下面的文本并将其另存为.pem文件。
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----
答案 1 :(得分:0)
OSX用户的旁注。您可能只需要接受XCode许可证sudo xcodebuild -license
无论如何,请查看mkmf.log
了解更多详情