安装Ruby gem时的开发人员工具问题 [英] Developer tools issues when installing Ruby gems
问题描述
我正在尝试在我的MacOS 10.13.6上安装puma.要安装puma,我运行命令gem install puma
,但它返回了
I am trying to install puma onto my MacOS 10.13.6. To install puma, I run the command gem install puma
but it returned
Building native extensions. This could take a while...
ERROR: Error installing puma:
ERROR: Failed to build gem native extension.
current directory: /Users/salem/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.12.0/ext/puma_http11
/Users/salem/.rbenv/versions/2.5.1/bin/ruby -r ./siteconf20180801-14654-17z0n88.rb extconf.rb
checking for BIO_read() in -lcrypto... *** 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=/Users/salem/.rbenv/versions/2.5.1/bin/$(RUBY_BASE_NAME)
--with-puma_http11-dir
--without-puma_http11-dir
--with-puma_http11-include
--without-puma_http11-include=${puma_http11-dir}/include
--with-puma_http11-lib
--without-puma_http11-lib=${puma_http11-dir}/lib
--with-openssl-dir
--with-openssl-include
--without-openssl-include=${openssl-dir}/include
--with-openssl-lib
--without-openssl-lib=${openssl-dir}/lib
--with-cryptolib
--without-cryptolib
/Users/salem/.rbenv/versions/2.5.1/lib/ruby/2.5.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from
...
...
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/Users/salem/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/puma-3.12.0/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /Users/salem/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/puma-3.12.0 for inspection.
Results logged to /Users/salem/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/puma-3.12.0/gem_make.out`
_mkmf.log_
可以在下面找到...
The _mkmf.log_
can be found below...
clang -o conftest -I/Users/salem/.rbenv/versions/2.5.1/include/ruby-2.5.0/x86_64-darwin17 -I/Users/salem/.rbenv/versions/2.5.1/include/ruby-2.5.0/ruby/backward -I/Users/salem/.rbenv/versions/2.5.1/include/ruby-2.5.0 -I. -I/usr/local/opt/openssl/include -I/Users/salem/.rbenv/versions/2.5.1/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -Wno-error=shorten-64-to-32 -pipe conftest.c -L. -L/Users/salem/.rbenv/versions/2.5.1/lib -L/usr/local/opt/openssl/lib -L. -L/Users/salem/.rbenv/versions/2.5.1/lib -fstack-protector -L/usr/local/lib -lruby.2.5.1-static -framework Foundation -lpthread -ldl -lobjc "
error: unable to open output file '~/tmp/conftest-8ad96a.o': 'No such file or directory'
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return 0;
6: }
/* end */
Xcode已安装在我的Mac上.我运行了xcode-select --install,它确认Xcode已经安装.
Xcode is installed on my Mac. I ran xcode-select --install which confirmed that Xcode was already installed.
然后我认为这可能是权限问题...
I then thought it could be a permissions issue...
~ $ ls -lah tmp
total 0
drwxrwxrwx 3 salem staff 96B Jul 30 08:35 .
drwxr-xr-x+ 62 salem staff 1.9K Aug 1 13:17 ..
drwxr-xr-x 3 salem staff 96B Jul 27 15:11 vmSWVyg
,但似乎设置了正确的权限.
but it appears that it has the correct permissions set.
在安装nokugiri时也会出现此问题
This issue also arises when installing nokugiri
推荐答案
您可能要安装openssl,例如通过自制程序:
You might want to install openssl, e.g. via homebrew:
brew install openssl
在 github 上也讨论了类似的问题.
A similar issue was also discussed on github.
如果是nokogiri,则可能缺少libxml:
In case of nokogiri, libxml might be missing:
brew install libxml2
这篇关于安装Ruby gem时的开发人员工具问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!