Puma宝石 - 无法构建本地宝石扩展

41

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

    $ gem install puma
    正在下载: puma-2.11.2.gem (100%)
    正在构建本地扩展,这可能需要一些时间...
    ERROR: 安装puma出错:
    ERROR: 无法构建gem本地扩展。
ruby extconf.rb 没有找到 -lcrypto中的BIO_read() 没有找到 -llibeay32中的BIO_read() *** extconf.rb 失败 ***
15个回答

4
我之前必须做这个:
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 - sagar junnarkar

3
对于puma 6.0及以上版本,请使用以下内容
PUMA_DISABLE_SSL=1 gem install puma -v "6.2.1"

如果你在使用时遇到问题,
请运行
export PUMA_DISABLE_SSL=1 

bundle install

1
运行brew info openssl并按照那里的说明操作。不要尝试使用--force将最新版本的openssl与默认安装在OSX上的版本链接起来。(0.9.8)
具体而言,它会要求您将Homebrew版本的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 gems时出现的问题。(在这种情况下为Puma)

0
安装这些软件包。
apt-get install openssl ruby-openssl libssl-dev

0
这是一个老话题,但是这里没有任何帮助,所以我要分享一下我是如何解决这个问题的,因为我花了很多时间去挖掘和阅读一些资料。
重新安装 OpenSSL: brew reinstall openssl 获取已安装 OpenSSL 的路径: brew --prefix openssl 最后,使用正确的路径重新安装 Puma: gem install puma -v '5.6.7' -- --with-openssl-dir=/path/to/openssl 最后,如果你使用 bundle,可以继续执行 bundle install/update

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接