puma gem - 无法构建 gem 本机扩展

问题描述 投票:0回答:14

我在安装 puma gem 时遇到以下错误

 $ gem 安装 puma
    获取:puma-2.11.2.gem (100%)
    构建本机扩展。这可能需要一段时间...
    错误:安装 puma 时出错:
    错误:无法构建 gem 本机扩展。

    红宝石extconf.rb
    检查 -lcrypto 中的 BIO_read()... 否
    检查 -llibeay32 中的 BIO_read()...否
    *** extconf.rb 失败 ***
puma
14个回答
77
投票

尝试以下方法

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

41
投票

我使用的是 OS X 10.12.4,@mahi 添加的评论对我有用:

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

22
投票

不是我的答案,但是this帮助我在macos(big sur)上安装puma,因为在构建puma时出现警告。

我使用的命令是这样的:

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

19
投票

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

apt-get install libssl1.0-dev

然后

gem install puma

17
投票

你尝试过吗

DISABLE_SSL=true gem install puma

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

DISABLE_SSL=true gem install puma -v version_number

13
投票

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

brew install openssl
brew link --force openssl

9
投票

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

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

8
投票

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

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

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

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

sudo xcodebuild -license

希望这对将来的人有帮助;-)


8
投票

使用捆绑器和自制程序时:

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

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


5
投票

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

例如/usr/share/openssl

在我的例子中,ssl lib“libcrypto”位于 /usr/local/lib 中。因此,让我们将 /usr/local 传递给它(不包括 lib 单词)。

用于 gem 安装

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

对于捆绑安装

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

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

构建配置命令将以下内容添加到〜/.bundle/config

---
BUNDLE_BUILD__PUMA:“--with-opt-dir=/usr/local”

4
投票

我必须事先这样做:

sudo apt-get install libgmp3-dev


1
投票

运行

brew info openssl
并按照其中的说明进行操作。不要尝试将最新的 openssl 与 OSX 默认安装的 openssl 链接起来。 (0.9.8)

具体来说,它会要求您将 openssl 的 Homebrew 版本(截至目前应为 1.0.2)添加到您的 $PATH 中。

--force


注意:请确保从 bash_profile 中删除任何

echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

行,因为上面的这一行会导出它,并将 $PATH 变量的其余部分附加到末尾。要查看 bash 配置文件,请使用

export PATH

这解决了安装需要编译的 ruby gem 的问题。 (本例中为彪马)


0
投票

apt-get 安装 openssl ruby-openssl libssl-dev


0
投票
vi ~/.bash_profile

及以上,请使用以下

6.0

© www.soinside.com 2019 - 2024. All rights reserved.