không thể tải tệp như vậy - zlib ngay cả sau khi sử dụng rvm pkg install zlib


112

Tôi đã cài đặt gói zlib và ruby ​​1.9.3 bằng rvm, nhưng bất cứ khi nào tôi cố gắng cài đặt đá quý, nó lại báo cannot load such file -- zlib

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

$ rvm install 1.9.3
$ rvm pkg cài đặt zlib

$ rvm cài đặt lại 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

sử dụng $ rvm 1.9.3

$ gem install heroku
LỖI: Đang tải lệnh: cài đặt (LoadError)
    không thể tải tệp như vậy - zlib
LỖI: Trong khi thực thi gem ... (NameError)
    hằng số chưa khởi tạo Gem :: Lệnh :: InstallCommand

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

Câu trả lời:


201

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

Đây là cách thực hiện:

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

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

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

21
hoặc sudo yum install zlib-devel
chris finne

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

Làm việc hoàn hảo cho tôi. Mặc dù tôi đã phải biên dịch lại một lần nữa kể từ khi tôi đã mất tích libssl-dev quá (tôi cần nó vì RVM muốn lấy mã nguồn về ruby qua HTTPS) :-)
tr9sh

9

Cả hai câu trả lời khác gần như đúng ...

Các trang web RVM cho zlib cung cấp một sửa chữa nhanh chóng!

Trên đầu trang là "Sửa nhanh", hãy 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à chỉ cách cài đặt lại ruby

1

Ruby có một loạt các gói phụ thuộc như trên zlib-devel. Chúng thật khó chịu vì không có gì để chỉ ra rằng bạn cần thư viện cho đến khi nhận được một số thông báo lỗi khó hiểu trong khi cố gắng thực hiện một việc gì đó theo quy trình.

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? Bởi vì sau đó bạn có thể làm

rvm requirements

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


1

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

rvm autolibs enable
rvm reinstall 1.9.3

RVM sẽ tự động cài đặt các phụ thuộc bị thiếu và sử dụng chúng để biên dịch ruby.

Thêm chi tiết về autolibs => http://rvm.io/rvm/autolibs


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

1

Giải pháp phù hợp với tôi được mô tả trong repo rvm github, sự cố # 3389 .

Chạy

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

cho phiên bản ruby 2.3.0 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.