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

Amo*_*dey 28 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 ***

Zac*_* Xu 72

请尝试以下方法

gem install puma -- --with-cppflags=-I/usr/local/opt/openssl/include
bundle install
Run Code Online (Sandbox Code Playgroud)

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

gem install puma -v '2.11.3' -- --with-cppflags=-I/usr/local/opt/openssl/include
Run Code Online (Sandbox Code Playgroud)

  • `gem install puma -v'3.6.0' - --with-opt-dir =/usr/local/opt/openssl`在seirra上工作 (9认同)
  • 在El Capitan上,运行`gem install puma -v'2.11.2' - --with-opt-dir =/usr/local/opt/openssl`.这对我来说很好. (5认同)
  • 我在 El Capitian OSX 10.11.2 上。当我第一次做 `gem install puma` 时 - 它给了我 `ERROR: Failed to build gem native extension`。然后我尝试了你的发送命令(使用 puma 版本“2.9.1”),它似乎没有错误!(好极了!)。请你能解释一下这个命令是什么意思吗?(我现在很好奇为什么这个命令解决了这个问题)。谢谢你的帮助!!! (2认同)

Bea*_*ech 39

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

gem install puma -v '3.6.0' -- --with-opt-dir=/usr/local/opt/openssl
Run Code Online (Sandbox Code Playgroud)


kom*_*ten 18

这不是我的答案,但这个帮我安装在Mac OS彪马(大表)自建立美洲狮时有警告。

我使用的命令是这样的:

gem install puma -- --with-cflags="-Wno-error=implicit-function-declaration"
Run Code Online (Sandbox Code Playgroud)


Kon*_*udy 14

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

brew install openssl
brew link --force openssl
Run Code Online (Sandbox Code Playgroud)


Aka*_*shP 14

你有没有尝试过

DISABLE_SSL=true gem install puma
Run Code Online (Sandbox Code Playgroud)

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

DISABLE_SSL=true gem install puma -v version_number
Run Code Online (Sandbox Code Playgroud)

  • 如果我们谈论开发环境,这是最简单的解决方案! (2认同)

小智 11

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

apt-get install libssl1.0-dev
Run Code Online (Sandbox Code Playgroud)

然后

gem install puma
Run Code Online (Sandbox Code Playgroud)

  • 或者使用apt install libssl-dev获取更通用的dev版本。 (2认同)
  • 这是适用于Ubuntu / Linux开发人员的可行解决方案 (2认同)

Pre*_*rem 8

它可能是一个开放的ssl错误

gem install puma -v 2.11.2 -- --with-opt-dir=/usr/local/opt/openssl
Run Code Online (Sandbox Code Playgroud)


Gaw*_*win 7

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

mkmf.log显示的细节表明这是由于:

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

这是由安装新版Xcode引起的.通过接受Apple的Xcode许可证可以轻松解决这个问题:

sudo xcodebuild -license
Run Code Online (Sandbox Code Playgroud)

希望这可能会在将来帮助某人;-)


mor*_*ler 6

使用bundler和homebrew时:

$ bundle config build.puma --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install
Run Code Online (Sandbox Code Playgroud)

我在这里复制并改编了Lloeki的答案:https://stackoverflow.com/a/31516586/704499


Amo*_*dey 5

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

例如 /usr/share/openssl

在我的情况下,ssl 库“libcrypto”在 /usr/local/lib 中。因此,让我们将 /usr/local 传递给它(不包括lib字)。

对于 gem 安装

gem install puma -- --with-opt-dir=/usr/local
Run Code Online (Sandbox Code Playgroud)

对于捆绑安装

捆绑配置 build.puma --with-opt-dir=/usr/local
捆绑安装

注意名称构建。美洲狮。其中puma是宝石的名称。

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

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


归档时间:

查看次数:

17860 次

最近记录:

6 年,6 月 前