2010-09-02 32 views
15

Tôi đang theo hướng dẫn của Ruby on Rails tại http://railstutorial.org/chapters/beginning#sec:1.4.1 và mọi thứ sẽ hoạt động tốt cho đến khi tôi cố gắng đưa ứng dụng của mình vào Heroku.Đá quý Heroku không hoạt động với RVM

Tôi đã cài đặt Heroku, mà làm việc tốt, nhưng bây giờ khi tôi chạy heroku keys:add hoặc bất kỳ lệnh Heroku khác, tôi nhận được lỗi sau:

/home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:9:in `rescue in <top (required)>': 
no such file to load -- net/https. Try running apt-get install libopenssl-ruby (LoadError) 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:5:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/rest_client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku/client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku.rb:3:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/bin/heroku:6:in `<top (required)>' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `load' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `<main>' 

Tôi đã làm những gì được thông báo lỗi nói, và cài đặt libopenssl-ruby , nhưng heroku vẫn không hoạt động.

tôi đã thực hiện một tìm kiếm và tìm thấy những điều sau hai trang mà cố gắng để chống lại các lỗi Heroku: http://www.mail-archive.com/[email protected]/msg05001.html http://blog.project-sierra.de/archives/1534

Tôi làm theo các hướng dẫn trên các trang này (mà đều giống nhau), nhưng Heroku vẫn doesn 't làm việc.

Tôi thường làm công việc của mình trên các cửa sổ, vì vậy mọi thứ hơi mới mẻ đối với tôi trên ubuntu. Đây là môi trường ruby ​​của tôi:

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.7 
    - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/sirswap/.rvm/gems/[email protected] 
    - RUBY EXECUTABLE: /home/sirswap/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/sirswap/.rvm/gems/[email protected]/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/sirswap/.rvm/gems/[email protected] 
    - /home/sirswap/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Tôi đang chạy ubuntu 10.04.

Bất kỳ giúp đỡ hoặc tư vấn cho các bước tiếp theo sẽ được nhiều đánh giá cao :)

+0

Cảm ơn các bạn đã bình luận, tôi thực sự bận rộn vào lúc này với các cuộc phỏng vấn xin việc và du lịch, vì vậy sẽ phải trả lời một chút sau để trả lời những gì phù hợp với tôi :) –

Trả lời

20

tôi có kinh nghiệm cùng một vấn đề, và tôi nghĩ rằng nó là do không cài đặt tất cả các phụ thuộc ruby ​​liệt kê khi bạn chạy:

$rvm requirements # it was earlier: rvm notes 

Cụ thể, tôi thực hiện [hãy chắc chắn để cài đặt năng khiếu đầu tiên]:

$sudo aptitude install build-essential bison openssl libreadline5 libreadline5-dev curl git zlib1g zlib1g-dev libssl-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev 

và sau tất cả, tôi biên dịch lại cài đặt ruby ​​của mình (sử dụng $rvm reinstall 1.9.2) và heroku hoạt động như một sự quyến rũ.

+6

+1 để kiểm tra ghi chú rvm – samvermette

+1

'rvm notes' thực sự quan trọng trên * nix và Mac OS vì thiếu phụ thuộc thường sẽ giữ cho các phần của Ruby không hoạt động, chỉ chúng sẽ không rõ ràng cho đến sau này. Sau đó, chúng tôi sẽ gặp sự cố và sẽ không liên kết vấn đề với quá trình cài đặt. Đó là khi chúng tôi đập đầu vào tường một lúc. –

+0

Điều này cũng phù hợp với tôi. Theo hướng dẫn của Rails và lệnh Heroku đã bị bẻ khóa, nhưng việc cài đặt các phụ thuộc bị thiếu và biên dịch lại 1.9.2 làm việc như một sự quyến rũ. –

2

đọc hướng của tôi trên how to install RVM on Linux. Bạn cần phải cài đặt libssl-dev hoặc những thứ như net/https sẽ không hoạt động. Đó là OK mặc dù, chỉ cần cài đặt và biên dịch lại của bạn rubies.

+0

Cảm ơn, tôi chỉ có vấn đề này và cài đặt libssl-dev và chạy extconf.rb đã sửa nó – Lobe

+1

-1 cho spam thương mại about.com thay vì tài liệu thực. – wuputah

1

Trong trường hợp của bạn "biên dịch lại hồng ngọc của bạn" có lẽ có thể được thực hiện bằng cách phát hành:

rvm install 

Hoặc cách khác bạn có thể làm cho một số tiến bộ bằng cách thủ công biên dịch lại phần mở rộng openssl:

cd /home/sirswap/.rvm/src/ruby-1.9.2-p0/ext/openssl 
ruby extconf.rb 
make 
make install 
4

Hey :) Không biết nếu nó vẫn còn có liên quan hoặc cho dù điều này sẽ làm việc cho bạn là tốt .. nó đã làm cho tôi.

Đã cùng một vấn đề chính xác ..

Tôi cũng nhận thấy khi làm
$ rails console

tôi đã nhận lỗi mà chỉ ra tôi đã có vấn đề với Readline.

Theo dõi http://rvm.beginrescueend.com/packages/readline/ đã giúp tôi khắc phục tất cả các sự cố tôi đã gặp phải.

3

Tôi cũng đang thực hiện Railstutorial trên Ubuntu 10.10 và gặp lỗi chính xác khi cố gắng thêm các phím Heroku. Điều này giải quyết nó:

$ rvm remove 1.9.2 
$ rvm pkg install openssl 
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr 
+0

$ rvm pkg install openssl – grigy

4

Tôi đã thổi nhiều giờ vào ngày hôm qua. Cuối cùng, hơi một cách tình cờ (thực sự giống như tuyệt vọng tuyệt đối), tôi nhìn vào tập tin/usr/bin/Heroku

tôi nhận thấy dòng đầu tiên của kịch bản nói

#!/usr/bin/env ruby1.9.1 

tôi đã thay đổi này để

#!/usr/bin/env ruby 

và nó bắt đầu hoạt động. Sau khi cài đặt lại ruby ​​khoảng 10 lần và tất cả những gì mucking xung quanh với openssl. rolleyes

+0

Tôi đã làm việc qua rvm nhưng không thích thay đổi môi trường lớn (gây ra các lỗi liên quan đến rvm lạ xuất hiện mã shell-invoking khác). Loại bỏ rvm đã phá vỡ mọi thứ và rất nhiều lần thử ruby ​​/ ruby-full/libssl không giúp ích gì. Nhưng điều này đã làm! Cảm ơn. – gojomo

+0

Vui vì nó đã giúp Gojomo. Tôi cũng đã liên lạc với nhóm heroku và đã làm việc với họ để thử và hiểu vấn đề này: https://github.com/heroku/heroku/issues/174 –

+1

Nhân tiện, 'vấn đề' như tôi thấy, là lực lượng kịch bản Heroku sử dụng ruby ​​1.9.1. khi tôi cài đặt openssh etc, Ubuntu áp dụng nó lên 1.9.2 - do đó, lỗi 1.9.1 vẫn còn. Đó là sự hiểu biết của tôi (không phải là ruby-expert) về vấn đề này. –

0

Vui lòng cài đặt lại ruby. Tôi đã cùng một vấn đề và cố định bằng cách cài đặt lại ruby.

rvm reinstall ruby 1.9.2 
Các vấn đề liên quan