2015-05-09 69 views
19

我收到以下错误,而安装彪马宝石彪马宝石 - 无法建立宝石原生扩展

 
    $ 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 *** 

回答

1

创业板寻找SSL库。因此,我们必须提供包含ssl库的lib的路径,例如,/usr/share/openssl

在我的情况下,ssl lib“libcrypto”位于/ usr/local/lib中。所以让我们通过/ usr/local(不包括lib word)。

对于创业板安装

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

对于捆绑安装

 
bundle config build.puma --with-opt-dir=/usr/local 
bundle install 

通知名字构建。 美洲狮。其中美洲狮是宝石的名称。

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

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

我在Mac OS X 10.10碰上了类似的错误。在mkmf.log

细节表明,这是由于:

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

这是由安装的Xcode的新版本引起的。 这很容易被接受的Xcode许可从苹果解决:

sudo xcodebuild -license 

希望这可以帮助别人,将来;-)

61

请尝试以下

gem install puma -- --with-cppflags=-I/usr/local/opt/openssl/include 
bundle install 

您也可以指定宝石版,如下所示:

gem install puma -v '2.11.3' -- --with-cppflags=-I/usr/local/opt/openssl/include 
+1

我在El Capitian OSX 10.11.2。当我第一次做'宝石安装puma'时 - 它给了我'错误:无法建立宝石原生扩展'。然后我尝试了你的发送命令(与美洲狮版本“2.9.1”),它似乎没有错误的工作! (好极了!)。请你能解释一下这个命令是什么意思? (我现在很好奇,为什么这个命令解决了这个问题)。谢谢你的帮助!!! – Atlas7

+0

为El Capitan工作,不知道为什么。 – Senthe

+0

安装特殊版本的美洲狮,那正是我需要的 –

3

我不得不这样做beforeha nd:sudo apt-get install libgmp3-dev

+0

我试过'''sudo apt-get install libssl-dev'''然后安装'''gem install puma -v'3.1.0''''但它没有奏效。然后我'''sudo apt-get install libgmp3-dev''',然后安装它工作的gem。谢谢@matsko –

14

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

brew install openssl 
brew link --force openssl 
+0

这可能会触发警告,不会工作 '''警告:拒绝链接:openssl 链接桶只有openssl意味着您可能最终链接到不安全的, 弃用的系统OpenSSL,同时使用来自Homebrew的openssl。 而是将完整的include /库路径传递给你的编译器,例如: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib''' –

15

我在OS X 10.12。4个,注释@mahi加入为我工作:

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

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

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

这对我有用High内华达 –

1

libssl1.0-dev的安装帮助我。尝试

apt-get install libssl1.0-dev 

然后

gem install puma 
0

运行brew info openssl并按照指示。不要尝试--force将最新的openssl与默认安装的OSX链接在一起。 (0.9.8)

具体来说,它会要求你将自制版本的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 gem的问题。 (彪马在这种情况下)

相关问题