2012-03-15 8 views
107

Tôi đã cài đặt gói zlib và ruby ​​1.9.3 sử dụng RVM, nhưng bất cứ khi nào tôi thử cài đặt đá quý nó nói cannot load such file -- zlibkhông thể tải tập tin như vậy - zlib ngay cả sau khi sử dụng RVM pkg cài đặt zlib

Các lệnh tôi sử dụng để cài đặt là

$ 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 

Tất cả các sự giúp đỡ về vấn đề này nói với tôi chỉ làm rvm pkg install zlib, và sau đó cài đặt lại ruby ​​với --with-zlib-dir=/home/username/.rvm/usr, nhưngnàykhông hoạt động.

Trả lời

198

Tôi đã kết thúc cài đặt zlib từ apt-get và sau đó cài đặt lại ruby ​​thành không sử dụng thư mục rvm cho zlib.

Sau đây là cách làm:

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

[Chỉnh sửa] Như commenter @chrisfinne đề cập, trên các hệ thống/RedHat dựa CentOS:

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

hoặc sudo yum cài đặt zlib-devel –

+1

Tôi đã gắn thẻ câu hỏi là ubuntu: P –

+4

Vâng, bất kể hệ điều hành, lời khuyên của @chrisfinne vẫn hữu ích (đối với tôi ít nhất)! –

9

Cả hai phản ứng khác đã gần như ngay lập ...

rvm site for zlib cung cấp sửa chữa nhanh!

Trên đỉnh khỏi trang là một "Quick sửa chữa" làm theo hướng dẫn của nó, nó sẽ:

  • sửa chữa cài đặt của bạn,
  • cung cấp cho bạn hướng dẫn phải làm gì để cài đặt zlib từ hệ thống của bạn
  • và hiển thị làm thế nào để cài đặt lại ruby ​​
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

ruby ​​có một loạt các gói phụ thuộc như một trong những ngày zlib-de vel. Họ đang khó chịu vì không có gì để cho biết bạn cần thư viện cho đến khi nhận được một số thông báo lỗi tối nghĩa trong khi cố gắng để làm một cái gì đó thường xuyên.

Giải pháp là sử dụng rvm. Sử dụng nó ngay cả khi bạn chỉ cần một phiên bản của ruby. Tại sao? Vì sau đó bạn có thể thực hiện

rvm requirements 

Điều này sẽ thăm dò hệ điều hành cụ thể của bạn và tạo một bộ lệnh để bạn có thể sao chép các gói bị thiếu.

1

Sử dụng autolibs để cài đặt phụ thuộc:

rvm autolibs enable 
rvm reinstall 1.9.3 

RVM sẽ tự động cài đặt phụ thuộc mất tích và sử dụng chúng cho biên soạn ruby.

tin chi tiết về autolibs =>http://rvm.io/rvm/autolibs

1

Các giải pháp mà làm việc cho tôi được mô tả trong repo RVM github, issue #3389.

Run

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

cho ruby ​​2.3.0 phiên bản.