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

Posted

技术标签:

【中文标题】puma gem - 无法构建 gem 原生扩展【英文标题】:puma gem - Failed to build gem native extension 【发布时间】:2015-07-20 12:17:06 【问题描述】:

安装 puma gem 时出现以下错误

$ 宝石安装美洲狮 获取:puma-2.11.2.gem (100%) 构建原生扩展。这可能需要一段时间... 错误:安装 puma 时出错: 错误:无法构建 gem 原生扩展。 红宝石 extconf.rb 检查 -lcrypto 中的 BIO_read()... 否 检查 -llibeay32 中的 BIO_read() ... 否 *** extconf.rb 失败 ***

【问题讨论】:

【参考方案1】:

试试下面的

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

【讨论】:

我在 El Capitian OSX 10.11.2 上。当我第一次做gem install puma - 它给了我ERROR: Failed to build gem native extension。然后我尝试了你的发送命令(使用 puma 版本“2.9.1”),它似乎没有错误! (耶!)。请你能解释一下这个命令是什么意思吗? (我现在很好奇为什么这个命令可以解决问题)。谢谢你的帮助!!! 在 El Capitan 上为我工作,但不知道为什么。 安装我需要的特殊版本的彪马 在 El Capitan 上,运行 gem install puma -v '2.11.2' -- --with-opt-dir=/usr/local/opt/openssl。这对我来说很好。 gem install puma -v '3.6.0' -- --with-opt-dir=/usr/local/opt/openssl 在 seirra 工作【参考方案2】:

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

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

【讨论】:

@Ameen 什么不起作用?您是否遇到与上述相同的错误或不同的错误?另请注意,这是针对 OS X 10.12.4 而不是 Ubuntu。 openssl 库很有可能在 Ubuntu 的其他地方。 为 OSX 10.12.6 (Sierra) 工作,bundle install 现在成功了。 天哪,这正是我所需要的。在 macOS 10.14.3 上工作【参考方案3】:

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

apt-get install libssl1.0-dev

然后

gem install puma

【讨论】:

apt install libssl-dev 以获得更通用的开发版本。 这是适用于 Ubuntu/Linux 开发人员的有效解决方案 适用于 Ubuntu 18.04。谢谢@Victor 是的,这适用于 Ubuntu 18.04,非常感谢 这帮助我在使用 Ubuntu 18.04 的 Windows Linux 子系统上解决了这个错误【参考方案4】:

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

我使用的命令是这样的:

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

【讨论】:

这就是解决方案。在这里找到它:***.com/a/63201544/4843137【参考方案5】:

你试过了吗

DISABLE_SSL=true gem install puma

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

DISABLE_SSL=true gem install puma -v version_number

【讨论】:

如果我们在谈论开发环境,那是最简单的解决方案!【参考方案6】:

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

brew install openssl
brew link --force openssl

【讨论】:

这可能会触发警告并且不起作用Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib【参考方案7】:

可能是打开的 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

希望这可能对将来的某人有所帮助;-)

【讨论】:

【参考方案9】:

使用捆绑器和自制软件时:

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

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

【讨论】:

这对我来说是救命稻草!在带有 Puma 4.0.1 的 Mac OS 10.14.5 上出现此问题。谢谢!【参考方案10】:

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

例如/usr/share/openssl

在我的例子中,ssl 库“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 是 gem 的名称。

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

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

【讨论】:

【参考方案11】:

我必须事先这样做:sudo apt-get install libgmp3-dev

【讨论】:

我尝试了sudo apt-get install libssl-dev,然后安装了gem install puma -v '3.1.0',但没有成功。然后我sudo apt-get install libgmp3-dev 然后安装了它工作的gem。谢谢@matsko【参考方案12】:

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

具体来说,它会要求您将 Openssl 的 Homebrew 版本(截至目前应该是 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 的问题。 (这里是彪马)

【讨论】:

【参考方案13】:

安装这些包。

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

【讨论】:

以上是关于puma gem - 无法构建 gem 原生扩展的主要内容,如果未能解决你的问题,请参考以下文章

Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。 - 塔林杜

安装 pg gem;错误:无法构建 gem 原生扩展

Gem::Installer::ExtensionBuildError: 错误: 无法构建 gem 原生扩展 - Aptana

在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展

sudo gem install cocoapods 错误:无法构建 gem 原生扩展。?

MySQL 安装:错误:无法构建 gem 原生扩展