nie można załadować takiego pliku - zlib nawet po użyciu rvm pkg install zlib

112

Zainstalowałem pakiet zlib i Ruby 1.9.3 używając rvm, ale kiedy próbuję zainstalować gems, jest to napisane cannot load such file -- zlib

Polecenia, których użyłem do zainstalowania, to

$ rvm install 1.9.3
$ rvm pkg install zlib

$ rvm reinstalacja 1.9.3 --with-readline-dir = / home / username / .rvm / usr \
    --with-iconv-dir = / home / username / .rvm / usr \
    --with-zlib-dir = / home / username / .rvm / usr \
    --with-openssl-dir = / home / username / .rvm / usr

$ rvm użyj 1.9.3

$ gem install heroku
BŁĄD: polecenie ładowania: zainstaluj (LoadError)
    nie można załadować takiego pliku - zlib
BŁĄD: Podczas wykonywania gem ... (NameError)
    niezainicjowana stała Gem :: Commands :: InstallCommand

Cała pomoc na ten temat każe mi po prostu zrobić rvm pkg install zlib, a następnie ponownie zainstalować rubin --with-zlib-dir=/home/username/.rvm/usr, ale to nie zadziałało.

Razor Storm
źródło

Odpowiedzi:

201

Skończyło się na zainstalowaniu zlib z apt-get, a następnie ponownej instalacji Rubiego, aby nie używać katalogu rvm dla zlib.

Oto jak to zrobić:

$ sudo apt-get install zlib1g-dev
$ rvm reinstall 1.9.3

[Edytuj] Jak wspomina komentator @chrisfinne, na systemach opartych na CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3
Razor Storm
źródło
21
lub sudo yum install zlib-devel
chris finne
4
Cóż, niezależnie od systemu operacyjnego, rada @chrisfinne jest nadal przydatna (przynajmniej dla mnie)!
U mnie zadziałało idealnie. Chociaż musiałem ponownie skompilować ponownie, ponieważ brakowało mi libssl-dev (potrzebowałem go, ponieważ rvm chciał pobrać źródła ruby ​​przez HTTPS) :-)
tr9sh
9

Obie pozostałe odpowiedzi były prawie prawidłowe ...

Witryna rvm dla zlib zapewnia szybką naprawę !

U góry strony znajduje się opcja „Szybka poprawka”. Postępuj zgodnie z jej instrukcjami:

  • napraw instalację,
  • dostarczą ci instrukcji, co zrobić, aby zainstalować zlib z twojego systemu
  • i pokaż, jak ponownie zainstalować Rubiego
mpapis
źródło
1

Ruby ma wiele zależności od pakietów, takich jak ta z zlib-devel. Są paskudne, ponieważ nic nie wskazuje na to, że potrzebujesz biblioteki, dopóki nie pojawi się jakiś niejasny komunikat o błędzie podczas próby zrobienia czegoś rutynowego.

Rozwiązaniem jest użycie rvm . Użyj go, nawet jeśli potrzebujesz tylko jednej wersji ruby. Czemu? Ponieważ wtedy możesz to zrobić

rvm requirements

Spowoduje to zbadanie konkretnego systemu operacyjnego i wygenerowanie zestawu poleceń, które można skopiować z powrotem do wiersza poleceń, aby zainstalować brakujące pakiety.

Izaak Rabinowicz
źródło
1

Użyj autolibów, aby zainstalować zależności:

rvm autolibs enable
rvm reinstall 1.9.3

RVM automatycznie zainstaluje brakujące zależności i użyje ich do kompilacji Rubiego.

Więcej szczegółów na temat autolibs => http://rvm.io/rvm/autolibs

mpapis
źródło
1
rvm pkg install openssl && rvm pkg install zlib && rvm pkg install libyaml &&
  rvm pkg install iconv
rvm install 1.9.3-p0 --with-opt-dir = $ HOME / .rvm / usr \
  --with-libxml2-dir = / usr / local / Cellar / libxml2 / 2.7.8 \
  --with-readline-dir = / usr / local / Cellar / readline / 6.2.1
Kewin
źródło
1

Rozwiązanie, które sprawdziło się u mnie, jest opisane w repozytorium rvm na github, numer 3389 .

Biegać

rvm install 2.3.0 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8

dla wersji Ruby 2.3.0 .

belgoros
źródło