安装Ruby gems时开发人员工具问题

时间:2018-08-01 19:07:24

标签: ruby-on-rails ruby rubygems puma

我正在尝试在我的MacOS 10.13.6上安装puma。要安装puma,我运行命令gem install puma,但返回了

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_可以在下面找到...

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已经安装。

然后我认为这可能是权限问题...

~ $ 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

但它似乎已设置了正确的权限。

在安装nokugiri时也会出现此问题

1 个答案:

答案 0 :(得分:1)

您可能要安装openssl,例如通过自制程序:

brew install openssl

github上也讨论了类似的问题。

如果是nokogiri,则可能缺少libxml:

brew install libxml2