ruby-on-rails - 安装 Ruby gem 时的开发人员工具问题
问题描述
我正在尝试将 puma 安装到我的 MacOS 10.13.6 上。要安装 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 时也会出现此问题
解决方案
您可能想要安装 openssl,例如通过 homebrew:
brew install openssl
github上也讨论了类似的问题。
在 nokogiri 的情况下,libxml 可能会丢失:
brew install libxml2
推荐阅读
- video - FFmpeg:Concat 过滤器后的 NAL 单元大小无效
- parsing - 不平衡的树。很可能是由不平衡的标记引起的
- opencv - 图像中矢量与原点的交点与现实世界中的平面相交
- java - 停止线程并释放 Java 中的锁
- python - Heroku 每 24 小时更新一次其中的文件
- reactjs - ReactJS 中的动态弹出框
- python - Python Selenium 如何使用现有的 chromedriver 窗口?
- javascript - Angular2:touchStart 和 touchEnd 在移动视图中没有正确响应
- r - R plotly sankey节点不透明度
- javascript - 如何在不使用正文解析器的情况下获取 POST 正文