2012-03-15 2 views
107

Я установил ZLIB пакет и рубин 1.9.3 с помощью RVM, но всякий раз, когда я пытаюсь установить драгоценные камни он говорит cannot load such file -- zlibне может загрузить такой файл - Zlib даже после того, как с помощью RVM PKG установки Zlib

команды, которые я раньше установки являются

$ rvm install 1.9.3 
 
$ rvm pkg install zlib 

$ rvm reinstall 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 use 1.9.3 

$ gem install heroku 
ERROR: Loading command: install (LoadError) 
    cannot load such file -- zlib 
ERROR: While executing gem ... (NameError) 
    uninitialized constant Gem::Commands::InstallCommand 

Все помощь по этому вопросу говорит мне, чтобы просто делать rvm pkg install zlib и затем повторно рубин с --with-zlib-dir=/home/username/.rvm/usr, но это не работал.

ответ

198

В результате я установил zlib из apt-get, а затем переустановил ruby ​​на , а не, используя каталог rvm для zlib.

Вот как:

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

[Редактировать] Как комментатора @chrisfinne упоминает, на основе/RedHat систем CentOS:

$ sudo yum install zlib-devel 
$ rvm reinstall 1.9.3 
+20

или sudo yum install zlib-devel –

+1

Я отметил вопрос как ubuntu: P –

+4

Ну, независимо от ОС, совет @chrisfinne по-прежнему полезен (по крайней мере для меня)! –

9

Обе другие ответы были почти правы ...

rvm site for zlib обеспечивает быстрое исправление!

На довершении страницы является «Быстрым решением» следовать за это инструкцией, он будет:

  • исправить установку,
  • предоставить вам инструкцию, что нужно сделать, чтобы установить Zlib из системы
  • и показать, как переустановить рубин
0
 
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 
1

рубин имеет кучу зависимостей пакетов, как один на ZLIB-де Vel. Они противны, потому что нет ничего, чтобы указать, что вам нужна библиотека, пока не получите какое-то непонятное сообщение об ошибке, пытаясь сделать что-то рутинное.

Решение должно использовать rvm. Используйте его, даже если вам нужна только одна версия рубина. Зачем? Потому что тогда вы можете сделать

rvm requirements 

Это будет зондировать вашей конкретной ОС и производить набор команд, которые можно скопировать обратно в командную строку, чтобы установить эти недостающие пакеты.

1

Используйте autolibs для установки зависимостей:

rvm autolibs enable 
rvm reinstall 1.9.3 

РВМ автоматически установить отсутствующие зависимости и использовать их для компиляции рубин.

Подробнее о autolibs =>http://rvm.io/rvm/autolibs

1

Решения, которые работали для меня описан в РВМ GitHub репо, issue #3389.

Run

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

для рубинового версии 2.3.0.

Смежные вопросы