puma gem - 无法构建gem原生扩展

时间:2015-05-09 17:47:48

标签: puma

安装puma gem时出现以下错误

    $ gem install puma
    Fetching: puma-2.11.2.gem (100%)
    Building native extensions.  This could take a while...
    ERROR:  Error installing puma:
    ERROR: Failed to build gem native extension.

    ruby extconf.rb
    checking for BIO_read() in -lcrypto... no
    checking for BIO_read() in -llibeay32... no
    *** extconf.rb failed ***

13 个答案:

答案 0 :(得分:68)

尝试以下

gem install puma -- --with-cppflags=-I/usr/local/opt/openssl/include
bundle install

您还可以指定gem版本,如下所示:

gem install puma -v '2.11.3' -- --with-cppflags=-I/usr/local/opt/openssl/include

答案 1 :(得分:36)

我在OS X 10.12.4上,@ mahi添加的评论为我工作:

CGPoint

答案 2 :(得分:14)

我在OSx El Capitan上遇到过类似的问题。为了解决我必须做的问题:

brew install openssl
brew link --force openssl

答案 3 :(得分:9)

不是我的回答,但是this帮助我在macOS(大型Sur)上安装了puma,因为在构建puma时有警告。

我使用的命令是这样:

gem install puma -- --with-cflags="-Wno-error=implicit-function-declaration"

答案 4 :(得分:7)

我在Mac OS X 10.10下遇到了类似的错误。

mkmf.log中的详细信息表明这是由于:

  

同意Xcode / iOS许可证需要管理员权限   通过sudo以root身份重新运行。

这是由安装新版Xcode引起的。 通过接受Apple的Xcode许可证很容易解决这个问题:

sudo xcodebuild -license

希望这可能有助于将来的某些人; - )

答案 5 :(得分:7)

这可能是一个开放的错误

gem install puma -v 2.11.2 -- --with-opt-dir=/usr/local/opt/openssl

答案 6 :(得分:6)

libssl1.0-dev安装对我有帮助。试试

apt-get install libssl1.0-dev

然后

gem install puma

答案 7 :(得分:5)

使用bundler和homebrew时:

$ bundle config build.puma --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install

我在Lloeki点复制并修改了这个答案:https://stackoverflow.com/a/31516586/704499

答案 8 :(得分:3)

我必须事先做到这一点:sudo apt-get install libgmp3-dev

答案 9 :(得分:3)

你试过吗

DISABLE_SSL=true gem install puma

如果您具有特定于版本的要求,请指定版本:

DISABLE_SSL=true gem install puma -v version_number

答案 10 :(得分:2)

gem正在寻找ssl库。所以我们必须提供包含ssl lib

的lib的路径

e.g。的/ usr /共享/ OpenSSL的

在我的情况下,ssl lib" libcrypto"在/ usr / local / lib中。所以让我们将/ usr / local传递给它(不包括 lib 字)。

用于gem install

gem install puma -- --with-opt-dir=/usr/local

用于捆绑安装

bundle config build.puma --with-opt-dir=/usr/local
bundle install

注意名称build。 puma 。其中 puma 是宝石的名称。

build config命令将以下内容添加到〜/ .bundle / config

---
BUNDLE_BUILD__PUMA: "--with-opt-dir=/usr/local"

答案 11 :(得分:0)

运行brew info openssl并按照其中的说明操作。不要尝试--force将最新的openssl链接到默认安装OSX的那个。 (0.9.8)

具体而言,它会要求您将自制的openssl版本(截止日期为1.0.2)添加到$ PATH中。
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

注意:确保从bash_profile中删除任何export PATH行,因为上面的这一行会导出它,以便将$ PATH变量的其余部分附加到结尾。要查看bash配置文件,请使用vi ~/.bash_profile

这解决了安装需要编译的ruby gem的问题。 (在这种情况下是彪马)

答案 12 :(得分:0)

安装这些软件包。

apt-get install openssl ruby​​-openssl libssl-dev