ruby - rvm安裝 - 即使在使用rvm pkg install zlib之後,也無法加載這樣的文件-zlib




rvm yum (4)

Ruby有一堆像zlib-devel這樣的包依賴關係。 他們討厭,因為沒有任何東西可以表明你需要圖書館,直到試圖做一些例行工作時得到一些模糊的錯誤信息。

解決方案是使用rvm 。 即使您只需要一個版本的紅寶石,也可以使用它。 為什麼? 因為那樣你就可以做到

rvm requirements

這將探測您的特定操作系統並生成一組命令,您可以將其複制回命令行以安裝這些缺失的軟件包。

我使用rvm安裝了zlib軟件包和ruby 1.9.3,但是每當我嘗試安裝gems時,它都說cannot load such file -- 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重新安裝ruby,但這不起作用。


使用autolibs來安裝依賴關係:

rvm autolibs enable
rvm reinstall 1.9.3

RVM會自動安裝缺失的依賴關係,並將它們用於編譯ruby。

關於autolibs的更多細節=> http://rvm.io/rvm/autolibs


我最終從apt-get安裝zlib,然後重新安裝ruby,以便使用zlib的rvm目錄。

這是如何做到的:

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

[編輯]作為評論者@chrisfinne在CentOS / RedHat系統上提到:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

我為rvm github回購, 問題#3389描述了解決方案。

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

為紅寶石2.3.0版本。







rvm