2015-05-09 68 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的問題。 (彪馬在這種情況下)

相關問題