2010-03-14 15 views
54

Cố gắng để có được Ruby 1.9.1 và chạy với RVM trên bản cài đặt mới (fedora).RVM Ruby 1.9.1 cài đặt không thể xác định vị trí zlib nhưng thời gian chạy và thư viện dev của nó là có

Sau khi thực hiện rvm install 1.9.1, các bản ghi rubygems lỗi cho thấy zlib không thể định vị

no such file to load -- zlib (LoadError)

Tuy nhiên cả hai bộ thực thi và phát triển thư viện zlib được cài đặt và cập nhật.

Tôi rất lo lắng về điều này vào lúc này.

Trả lời

63

Bạn cần cài đặt zlib trước khi biên dịch/cài đặt Ruby. Nếu bạn không làm điều này, hãy chắc chắn để loại bỏ tất cả mọi thứ liên quan đến Ruby 1.9.1 từ thư mục ~/.rvm của bạn (để nó sẽ được xây dựng từ đầu).

Install zlib sử dụng quản lý gói yêu thích của bạn:

sudo apt-get install zlib1g-dev 

Bạn cũng có thể muốn cài đặt các gói sau khi chúng được yêu cầu của các công cụ như OpenSSL,
Nokogiri, IRB hoặc SQLite:

libssl-dev libreadline6-dev libxml2-dev libsqlite3-dev 

Sau đó cài đặt lại Ruby 1.9.1 (hiện tại tôi sẽ đề nghị sử dụng phiên bản mới hơn):

rvm install 1.9.1 

Xem để "biên dịch ...". Điều này sẽ mất một lúc. Nếu không, sau đó Ruby 1.9.1 vẫn có thể được lưu trong bộ nhớ cache
trong thư mục ~/.rvm của bạn.

+3

Điều này làm việc tốt cho tôi, và tôi muốn cài đặt công cụ thông qua trình quản lý gói của hệ thống hơn là thông qua gói "rvm". –

+7

Vì phiên bản libreadline mới hơn có sẵn, nên cài đặt libreadline-dev hoặc trực tiếp libreadline6-dev –

+2

đây là giải pháp tốt nhất vì nó giúp bạn phải biên dịch lại ruby ​​mỗi khi gặp phải gem cần libssl, libxml, v.v. Và thực tế bạn có thể muốn thêm 'libxslt1-dev' và' libcurl4-openssl-dev' vào danh sách (phụ thuộc nokogiri) – sbeam

108

Sử dụng RVM để cài đặt zlib

https://rvm.io/packages/zlib/

rvm package install zlib 
rvm remove 1.9.1 
rvm install 1.9.1 -C --with-zlib-dir=$rvm_path/usr 

Edit: Các lệnh rvm package được đổi tên thành rvm pkg trong v1.6.25.

+0

Điều này làm việc hoàn hảo cho tôi - nhờ mẹo. – pakeha

+0

giải pháp tuyệt vời! – rubiii

+0

Rất đẹp. Phải mất mãi mãi để cài đặt lại Ruby, nhưng nó đã làm việc (với 1.9.2) tốt. –

1

Vì bạn đang sử dụng Fedora thử chạy:

yum install zlib-devel.i686 

Và sau đó thử cài đặt ruby ​​1.9.1 sử dụng RVM

rvm install 1.9.1 
9

tôi gặp phải vấn đề này khi cố gắng:

gem install gruff

Điều gì thực sự hiệu quả với tôi (Ubunut 10.10, MRI ruby ​​1.8.7) là:

  • đọc các ghi chú RVM và lắp đặt các phụ thuộc cho phiên bản ruby ​​tôi

sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev autoconf

  1. rvm package install zlib
  2. rvm remove 1.8.7
  3. rvm install 1.8.7

Vì vậy, về cơ bản: chỉ cần làm theo t anh rvm dẫn sử dụng

1

Ngoài ra, bạn biết rằng 1.9.1 là khủng khiếp bị hỏng đó là lý do tại sao không ai sử dụng nó một cách nghiêm túc, phải không? Tầm quan trọng của câu hỏi này là nhiều người không nhận ra điều này và cố gắng sử dụng nó với các API như Ruby On Rails. Tuy nhiên, như rubyonrails.org/download state, Ruby 1.9.1 không được hỗ trợ để sử dụng với Rails vì nó là bị hỏng.

3

Trong phiên bản hiện tại của rvm gói đối số đã được thay thế pkg đối số.

Bây giờ, để cài đặt gói zlib cho RVM cần:

RVM pkg cài đặt zlib

1

Trên Ubuntu mới nhất (11.10) đó cũng là một vấn đề với readline.

Readline was unable to be required, if you need completion or history install readline then reinstall ruby.

Vì vậy, toàn bộ RVM tôi và ruby ​​mới nhất quá trình cài đặt cho ubunutu 11.10 là:

# install rvm 
sudo apt-get install curl 
curl -L get.rvm.io | bash -s stable 

# install dependencies 
rvm pkg install zlib 
rvm pkg install readline 

# install additional dependencies -- follow instructions for your distribution/version 
rvm requirements 

# install ruby 
rvm install [ruby-version] 

Tôi gửi bài này để tham khảo trong tương lai của tôi và trong trường hợp va chạm bất cứ ai khác vào vấn đề này là tốt.

0

Đối với tôi, giải pháp rất đơn giản: tôi đã quên đóng/mở lại vỏ, như thiết lập rvm đã hướng dẫn tôi làm. Sau khi tôi đã làm điều đó, lỗi zlib đã biến mất và tôi có thể: gem install bundler