2013-02-28 20 views
41

Używam osx 10.8.2 zainstalowany rubinowy 2.0 i .... dostał to podczas próby uruchomienia „sudo gem install szyn "ruby ​​gem install rails 2.0 błąd "nie można załadować taki plik - OpenSSL"

$ 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 

miałem rubinowy 1.9.x oraz 3.2.x szyn roboczy w porządku przed

Odpowiedz

48

Musisz zainstalować OpenSSL pierwszy i ponownie skompilować rubin:

RVM:

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

Proponuję dodać 'ruby_configure_flags = - with-openssl-dir =" $ rvm_path/usr "' do '~/.rvm/user/db', więc jeśli ponownie zainstalujesz Ruby, aby dodać kolejny pakiet, nie zapomnij włączyć OpenSSL. – georgebrock

+4

Co powiesz na Windows? – user1429980

+0

Mam również ten problem w systemie Windows. Każda pomoc dla nas? – Automatico

1

Podczas instalowania Ruby 2.0, możliwe jest, że rubygems instalacja 2.0 nie została zakończona ok, bo z OpenSSL. Upewnij się, że podałeś poprawną ścieżkę do pliku konfiguracyjnego openssl; możesz:

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

ścieżka jest zwykle $ HOME/.rvm/usr lub $ HOME/.rvm/usr/SSL

Następnie

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

Bądź montaż Sure rubygems zakończył się pomyślnie. Może to być lepszy sposób naprawienia tej ścieżki bez ponownej instalacji, ale powinno to zrobić.

1

Upewnij się, aby sprawdzić tę stronę na miejscu RVM: https://rvm.io/packages/openssl/

Running

rvm requirements run

dał mi:

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

po brew install autoconf automake ...

Mogłem rvm reinstall 2.0.0 bez błędów OpenSSL

30

Jeśli używasz RVM należy postępować:

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

pracował dla mnie.

+1

dzięki, twoja pomoc była dla mnie naprawdę przydatna! – duykhoa

+0

To nie była zła odpowiedź! ponownie zainstaluj --all --force trwa długo, ale jeśli masz dużo rubinów ... przygotuj się ... –

+0

Brew działa tylko na Mac OS. – wortwart

1

Miałem ten sam problem z tą samą wersją systemu operacyjnego. Używam RVM a następnie wykonać czynności opisane w tym poleceniem:

$ rvm requirements 

obserwuję te instrukcje, wpadłem:

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

ten pracował dla mnie, który jest podobny do niektórych innych odpowiedzi już wysłana.

rvm pkg install openssl 
rvm reinstall all --force 
1

Miałem ten sam problem wcześniej, wypróbowałem wszystkie fragmenty i żadne z nich się nie sprawdziło.Po rozglądając się za odrobiną następuje pracował dla mnie:

$ 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 

Co rvm get head --autolibs=3 zrobić dokładnie? Domyślam się, że automatycznie pobiera zależności, ale miałem nadzieję na jasną odpowiedź.

5

Miałem bardzo zły czas z tym błędem. W końcu to zrobiłem. Istnieje tylko raz rozwiązanie, czy jesteś z RVM lub bez RVM.

Upewnij się, że zainstalowałeś OpenSSL najpierw PRZED instalacją ruby.

RVM

  1. Odinstaluj RVM

    RVM implode

lub

rm -rf ~/.rvm 

D nie zapomnij usunąć wywołań skryptów w pliku .bashrc i/lub .bash_profile (lub innej powłoce, której używasz). sudo apt-get install zlib1g zlib1g-dev build-essential openssl-dev libssl libmysqlclient18 libmysqlclient-dev libyaml-dev curl git-core python-Software-właściwości libpq-dev nodejs

następnie zainstalować RVM, post rubin.

LUB

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

BEZ RVM

Najpierw należy dowiedzieć się, gdzie Ruby jest:

whereis ruby 

będzie lista wszystkich miejsc, gdzie istnieje w systemie, a następnie można usuń wszystkie wyraźnie. Lub można użyć coś takiego:

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 

WTEDY

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 

Mam nadzieję, że to pomoże.

3

na OSX, z rbenv i homebrew, następujące pracował dla mnie:

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

natknąłem się ten sam błąd openssl na Fedorze, gdy próbuje użyć gem install <package>. Wydaje się, trzeba zainstalować dodatkowe pakiety z yum/DNF

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

Po uruchomieniu powyższego polecenia, gem install <package> powinien teraz działać.

Powiązane problemy