2012-01-19 43 views
17

thể trùng lặp: RVM
Ruby 1.9.2 and Rails 3 cannot open rails consolecài đặt ruby ​​1.9.3 sử dụng RVM trên ubuntu

Tôi đã cài đặt và ruby ​​1.9.2, cả hoạt động bình thường. Sử dụng phiên bản rvm 1.10.2. Trước đây tôi đã cài đặt các gói rvm readline/zlib, nhưng bây giờ tôi đang gặp khó khăn lớn với readline ngay bây giờ. Tôi đang cố gắng để cài đặt ruby ​​1.9.3 trong rvm, nhưng tôi luôn luôn kết thúc có readline không tìm thấy.

Tôi cố gắng để làm theo giải pháp khác nhau:

rvm remove 1.9.3 
rvm pkg install readline 
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr/ \ 
    --with-zlib-dir=$rvm_path/usr/ 

rvm use 1.9.3 
rvmsudo gem install bundler 
bundle install (all gems installed fine) 
rails c/rails s 
.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb:9:in `require': \ 
    cannot load such file -- readline (LoadError) 

Tôi có libreadline-dev (phiên bản 6, dòng điện một) được cài đặt (tất cả mọi thứ cần thiết cho những gói khá nhiều)

Tôi cũng thử như sau :

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-dir=/home/claudiocontin/.rvm/usr/ 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-lib=/home/claudiocontin/.rvm/usr/ 
checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 

Makefile không tạo ra tất nhiên ...

apt-get install libreadline-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
libreadline-dev is already the newest version. 

Ý tưởng?

Trả lời

12

gì tôi đã kết thúc làm là loại bỏ tất cả các libreadline từ RVM usr/lib/path.

Đã cài đặt gói libreadline5-dev (.deb trong trường hợp này) được tải xuống theo cách thủ công, vì bản phân phối ubuntu mới chỉ có libreadline6-dev làm ứng cử viên.

đi đến RVM ruby ​​1.9.3 src và:

ruby extconf.rb --with-editline-dir=/usr/ --with-readline-dir=/usr/ 
make 
sudo make install 

Bây giờ hoạt động giống như một nét duyên dáng.

thứ Rất đau đớn :)

chỉnh sửa:

cũng ghi nhớ rằng readline cũng sử dụng libeditline-dev bây giờ, bạn có thể tắt bằng tay khi configure ruby ​​readline, đi qua: --disable-libedit

ruby extconf --disable-libedit 
+0

Làm cách nào để cài đặt libreadline5-dev theo cách thủ công trên ubuntu 12.04? Không có nhiều về việc này trực tuyến. – user938363

+0

@ user938363 Chỉ cần apt-get cài đặt nó như vậy: 'sudo apt-get install libreadline5-dev' sau đó biên dịch như được hiển thị ở trên. –

5

Tôi luôn tìm thấy RVM để chơi độc đáo với các gói là một chút voodoo. Rất nhiều lần, đó là về bắt một phụ thuộc - Tôi đặt cùng một kịch bản mà tôi đã có may mắn với trong quá khứ, hãy thử này:

sudo apt-get install zlib1g-dev libssl-dev libsqlite3-dev libmysqlclient-dev imagemagick librmagick-ruby libxml2-dev libxslt1-dev build-essential openssl libreadline6 libreadline6-dev zlib1g libyaml-dev libsqlite3-0 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison libpq-dev libpq5 libmysql-ruby libmysqlclient-dev 

rvm pkg install autoconf 
rvm pkg install zlib 
rvm pkg install readline 
rvm pkg install openssl 
rvm pkg install iconv 
rvm install 1.9.3 
rvm use 1.9.3 --default 
+0

không may mắn. vẫn như cũ ... – CLod

+0

mà làm việc cho tôi, bur cho [rbenv] (https://github.com/sstephenson/rbenv) – fluxsaas

+0

Hãy thử chạy 'yêu cầu rvm' để có được một danh sách các gói cần có mặt. –

45

Tôi đã cố gắng làm rvm pkg readline, cài đặt ubuntu pkgs vv mà không thành công. Có gì làm việc cho tôi:

gem install rb-readline 

Và thêm dòng sau vào Gemfile của bạn:

gem 'rb-readline' 
+1

Điều này làm việc cho tôi cũng như –

+0

Cảm ơn rất nhiều! Tôi đã thử giải pháp MỌI ở đây và giải pháp MỌI trong trang rvm không có may mắn. Đã cố gắng làm việc này hàng giờ liền! Điều này làm việc độc đáo. Cảm ơn một lần nữa! – AyJay

+0

+1 Thay thế rất tốt để xây dựng readline. Tôi đã cài đặt hàng trăm thư viện từ nguồn trước, nhưng không thể có được phần mở rộng readline để xây dựng trên một máy nào đó. – Kelvin

Các vấn đề liên quan