我在安装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 失败 ***
我在安装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 失败 ***
请尝试以下方法
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
我正在使用OS X 10.12.4,@mahi添加的评论对我有效:
gem install puma -v '3.6.0' -- --with-opt-dir=/usr/local/opt/openssl
bundle install
已成功。 - xaunlopez这不是我的答案,但这个帮助我在MacOS(Big Sur)上安装puma,因为在构建puma时出现了警告。
我使用的命令是:
gem install puma -- --with-cflags="-Wno-error=implicit-function-declaration"
安装libssl1.0-dev对我很有帮助。请尝试安装
apt-get install libssl1.0-dev
然后
gem install puma
libssl-dev
以获取更通用的开发版本。 - Daniel-KM你试过了吗?
DISABLE_SSL=true gem install puma
如果您有版本特定的需求,请指定版本,例如:
DISABLE_SSL=true gem install puma -v version_number
我在OSx El Capitan上遇到了类似的问题。为了解决这个问题,我需要执行以下步骤:
brew install openssl
brew link --force openssl
链接仅限Keg的openssl意味着您可能会在使用Homebrew openssl的标头时链接到不安全的、已弃用的系统OpenSSL。
相反,将完整的包含/库路径传递给您的编译器,例如:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib```
- hateninegem install puma -v 2.11.2 -- --with-opt-dir=/usr/local/opt/openssl
我在Mac OS X 10.10下遇到了类似的错误。
mkmf.log
里的细节显示,这是因为:
同意Xcode/iOS许可证需要管理员权限,请使用sudo以root身份重新运行。
这是由于安装了新版本的Xcode引起的。这个问题很容易通过接受Apple的Xcode许可证来解决:
sudo xcodebuild -license
使用bundler和homebrew时:
$ bundle config build.puma --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install
我从Lloeki这里复制并适应了这个答案:https://dev59.com/bF0a5IYBdhLWcg3wAEk3#31516586
(注:此文为原文)
gem install puma -- --with-opt-dir=/usr/local
针对bundle install操作
bundle config build.puma --with-opt-dir=/usr/local bundle install
注意build.puma的名称,其中puma是宝石的名称。
build配置命令将以下内容添加到~/.bundle/config文件中
--- BUNDLE_BUILD__PUMA: "--with-opt-dir=/usr/local"
gem install puma -v '2.11.2' -- --with-opt-dir=/usr/local/opt/openssl
。这对我来说很有效。 - Kevin R.gem install puma -v '3.6.0' -- --with-opt-dir=/usr/local/opt/openssl
在 Sierra 上可以使用。 - mahi