簡體   English   中英

ruby 2.0 rails gem 安裝錯誤“無法加載此類文件 — openssl”

[英]ruby 2.0 rails gem install error “cannot load such file — openssl”

我正在使用osx 10.8.2安裝的ruby 2.0並且....在嘗試運行“sudo gem install rails”時得到這個

$ sudo gem install rails
ERROR:  Loading command: install (LoadError)
    cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

我之前有 ruby​​ 1.9.x 和 rails 3.2.x 工作正常

您必須先安裝 OpenSSL 並再次重新編譯 ruby​​:

RVM:

rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr

如果您使用的是 RVM,請遵循:

$ brew install automake
$ rvm pkg install openssl
$ rvm requirements run
$ rvm reinstall all --force
$ gem install rails

它對我有用。

我在這個錯誤上度過了非常糟糕的時光。 最后我完成了它。 無論您使用 RVM 還是不使用 RVM,只有一次解決方案。

確保在安裝 ruby​​ 之前先安裝了 OpenSSL。

虛擬機

  1. 卸載 rvm

    房車內爆

要么

rm -rf ~/.rvm

不要忘記刪除 .bashrc 和/或 .bash_profile(或您使用的任何 shell)中的腳本調用。 sudo apt-get install zlib1g zlib1g-dev build-essential openssl libssl-dev libmysqlclient18 libmysqlclient-dev libyaml-dev curl git-core python-software-properties libpq-dev nodejs

然后安裝 RVM,發布 ruby​​。

要么

rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr

沒有 RVM

首先,您應該找到 Ruby 的位置:

whereis ruby

將列出它在您的系統上存在的所有位置,然后您可以明確刪除所有這些位置。 或者你可以使用這樣的東西:

rm -rf /usr/local/lib/ruby
rm -rf /usr/lib/ruby
rm -f /usr/local/bin/ruby
rm -f /usr/bin/ruby
rm -f /usr/local/bin/irb
rm -f /usr/bin/irb
rm -f /usr/local/bin/gem
rm -f /usr/bin/gem

然后

sudo apt-get install zlib1g zlib1g-dev build-essential openssl libssl-dev libmysqlclient18 libmysqlclient-dev libyaml-dev curl git-core python-software-properties libpq-dev nodejs

apt-get -y update
apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
tar -xvzf ruby-2.0.0-p247.tar.gz
cd ruby-2.0.0-p247/
./configure --prefix=/usr/local
make
make install

我希望這對你有幫助。

我為 ruby​​ 2.1.2 修復了這個錯誤,如下所示。

rvm pkg install openssl
rvm reinstall ruby-2.1.2 --with-openssl-dir=$rvm_path/usr

這對我有用,類似於已經發布的其他一些答案。

rvm pkg install openssl
rvm reinstall all --force

在 OSX 上,使用 rbenv 和自制軟件,以下對我有用:

brew install openssl
CONFIGURE_OPTS=--with-openssl-dir=$(brew --prefix openssl) rbenv install whatever-ruby-version

安裝 ruby​​ 2.0 時,可能是因為 openssl 導致 ruby​​gems 2.0 安裝沒有完成。 確保您提供了 openssl 配置文件的有效路徑; 你可以:

find . -type f -name "openssl.cnf"

路徑通常是 $HOME/.rvm/usr 或 $HOME/.rvm/usr/ssl

然后

[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1

確保 ruby​​gems 安裝成功完成。 可能是在不重新安裝的情況下修復該路徑的更好方法,但這應該可以。

請務必在 rvm 站點上查看此頁面: https ://rvm.io/packages/openssl/

跑步

rvm requirements run

給我:

Missing required packages: autoconf, automake, libtool, pkg-config, apple-gcc42, readline, libxml2, libxslt, libksba, openssl, sqlite

brew install autoconf automake ...

我能夠在沒有 openssl 錯誤的情況下rvm reinstall 2.0.0

我在相同的操作系統版本上遇到了同樣的問題。 我使用 rvm 並按照此命令中的步驟操作:

$ rvm requirements

按照這些說明,我跑了:

$ brew update
$ brew tap homebrew/dupes
$ brew install bash curl git
$ brew install autoconf automake apple-gcc42 libtool pkg-config openssl readline libyaml sqlite libxml2 libxslt libksba

我早些時候遇到了同樣的問題,嘗試了所有的片段,但沒有一個成功。 環顧四周后,以下對我有用:

$ rvm remove 2.0.0 # get rid of unsuccessful installation
$ rvm get head --autolibs=3 # get the latest RVM and build required libs
$ rvm requirements # just in case, install all other required stuff
$ rvm install ruby-2.0.0
$ rvm --default use ruby-2.0.0

rvm get head --autolibs=3究竟做了什么? 我猜它會自動下載依賴項,但我希望得到一個明確的答案。

嘗試使用gem install <package>時,我在 Fedora 上遇到了相同的 openssl 錯誤。 看來您需要使用 yum/dnf 安裝其他軟件包

sudo dnf install rubygems rubygem-bundler ruby-devel mariadb-devel

運行上述命令后, gem install <package>現在應該可以工作了。

剛剛經歷了同樣的問題。 需要一點時間,但是,升級 openssl

brew upgrade openssl@1.1

為我工作。 將來版本可能會有所不同,請輸入 brew install openssl 以查看您可以升級到哪個版本。 我希望它有幫助。

如果您有 libssl 1.1 ,您的問題可能是這些舊版本的 ruby​​(2.4 是截止日期)僅與 libssl1.0 兼容。

對於 debian/ubuntu,請確保apt-get install libssl1.0-dev成功。

如果您使用ruby-install ,它將采用與 rvm 相同的 openssl 參數:

ruby-install ruby-2.0.0-p247 -- --with-openssl-dir=/usr/local/opt/openssl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM