无法在 macos-10.15.6 上捆绑安装 puma 4.3.5 或 gem puma 与 ruby​​-2.6.6 [英] fail to bundle install puma 4.3.5 or gem puma with ruby-2.6.6 on macos-10.15.6

查看:17
本文介绍了无法在 macos-10.15.6 上捆绑安装 puma 4.3.5 或 gem puma 与 ruby​​-2.6.6的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无法在 macos-10.15.6 上捆绑安装 puma 4.3.5 或 gem puma 与 ruby​​-2.6.6尝试为我的项目捆绑依赖项,但 puma 4.3.5 出现错误.有人知道吗?

fail to bundle install puma 4.3.5 or gem puma with ruby-2.6.6 on macos-10.15.6 try to bundle dependencies for my project, but puma 4.3.5 occured an error. someone know about this?

xxxxxxxxxxxx

xxxxxxxxxxxx

这是错误内容:

fetching puma 4.3.5
Installing puma 4.3.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
/Users/lxj/.rvm/rubies/ruby-2.6.6/bin/ruby -I /Users/lxj/.rvm/rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20200731-28585-1eobsvu.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
checking for DTLS_method() in openssl/ssl.h... yes
checking for TLS_server_method() in openssl/ssl.h... yes
checking for SSL_CTX_set_min_proto_version in openssl/ssl.h... yes
creating Makefile

current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR=" clean

current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR="
compiling http11_parser.c
ext/puma_http11/http11_parser.c:44:18: warning: unused variable 'puma_parser_en_main' [-Wunused-const-variable]
static const int puma_parser_en_main = 1;
                 ^
1 warning generated.
compiling io_buffer.c
compiling mini_ssl.c
mini_ssl.c:145:7: warning: unused variable 'min' [-Wunused-variable]
  int min, ssl_options;
      ^
mini_ssl.c:299:40: warning: function 'raise_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
void raise_error(SSL* ssl, int result) {
                                       ^
2 warnings generated.
compiling puma_http11.c
puma_http11.c:203:22: error: implicitly declaring library function 'isspace' with type 'int (int)' [-Werror,-Wimplicit-function-declaration]
  while (vlen > 0 && isspace(value[vlen - 1])) vlen--;
                     ^
puma_http11.c:203:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isspace'
1 error generated.
make: *** [puma_http11.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5 for inspection.
Results logged to /Users/lxj/.rvm/gems/ruby-2.6.6/extensions/x86_64-darwin-19/2.6.0/puma-4.3.5/gem_make.out

An error occurred while installing puma (4.3.5), and Bundler cannot continue.
Make sure that `gem install puma -v '4.3.5'` succeeds before bundling.

In Gemfile:
  puma

推荐答案

貌似最新版的XCode工具(12 Beta 3)安装了一个版本的Clang(MacOS上默认使用的C编译器)会报错关于 Puma 原生扩展代码上使用的隐式函数.

It seems that the latest version of XCode tools (12 Beta 3) installs a version of Clang (the C compiler used by default on MacOS) that throws an error on implicit functions used on the native extension code of Puma.

这里指出的解决方法是告诉 Clang 不要将此行为视为错误.

The workaround as pointed out here is to tell Clang not to treat this behavior as an error.

尝试运行:

bundle config build.puma --with-cflags="-Wno-error=implicit-function-declaration"
bundle install

它应该可以工作.

这篇关于无法在 macos-10.15.6 上捆绑安装 puma 4.3.5 或 gem puma 与 ruby​​-2.6.6的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆