2013-08-04 29 views
7

Tôi gặp lỗi khi triển khai ứng dụng rails4 của mình lên VPS. Các lỗi tôi nhận được làKhông thể triển khai dự án rails4 với capistrano. rbenv: phiên bản '2.0.0' chưa được cài đặt

rbenv: version `2.0.0' is not installed 

Nhưng sử dụng "ruby -v" tôi nhận được

ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux] 

Và trong gemfile của tôi, tôi có

source 'https://rubygems.org' 

ruby '2.0.0' 
gem 'rails', '4.0.0' 

Lỗi này xuất hiện sau khi cài đặt gói recipe

2013-08-04 23:23:56 executing `bundle:install' 
* executing "cd /home/yasinishyn/apps/kaiser/releases/20130804202355 && bundle install --gemfile /home/yasinishyn/apps/kaiser/releases/20130804202355/Gemfile --path /home/yasinishyn/apps/kaiser/shared/bundle --deployment --quiet --without development test" 
servers: ["xxx.xxx.xxx.xxx"] 
[198.211.125.183] executing command 
** [out :: xxx.xxx.xxx.xxx] rbenv: version `2.0.0' is not installed 
** [out :: xxx.xxx.xxx.xxx] 
command finished in 355ms 
*** [deploy:update_code] rolling back 
* executing "rm -rf /home/yasinishyn/apps/kaiser/releases/20130804202355; true" 
servers: ["xxx.xxx.xxx.xxx"] 
[xxx.xxx.xxx.xxx] executing command 
command finished in 342ms 

Hãy giúp tôi tìm ra điều này.

+0

bạn có thể đăng đầu ra của «phiên bản rbenv' (được thực hiện trên máy chủ) không? – mdemolin

Trả lời

6

Cảm ơn bạn Benjamin, nhưng lỗi là thực sự ngu ngốc)). Localy tôi sử dụng ruby ​​2.0.0-p195 được cài đặt bằng rvm. Trên máy chủ của tôi, người dùng ruby ​​2.0.0-p0 đã được rbenv cài đặt, bởi vì rbenv không có gói ruby ​​2.0.0-p195.

Vì vậy, trong khi tôi đã tạo ra ứng dụng rails4 mới bằng đường ray-nhà soạn nhạc, tôi không nhận ra rằng nó đã được tạo ra với .ruby phiên bản tập tin bên trong đó là một phù hợp với phiên bản ruby ​​ruby ​​2.0. 0-p195, vì vậy tôi chỉ đơn giản là * git rm .ruby-version * và mọi thứ đang hoạt động.

4

Đó chắc chắn là vấn đề PATH, capistrano sẽ gửi lệnh thông qua ssh mà không cần mở phiên điều khiển và tệp hồ sơ không được tải theo cùng cách nếu bạn mở phiên giao diện điều khiển ssh. Điều đó có thể giải thích tại sao thông qua giao diện điều khiển ssh bạn có thể nhận được một môi trường rbenv chính xác nhưng không phải thông qua capistrano.

Các công trình sau đây với debian/ubuntu, và cần phải được điều chỉnh cho distro khác

Tôi cho rằng bạn đã thêm một số export hướng dẫn trong một trong những tập hồ sơ của bạn. Trong ~/.profile hoặc ~/.bashrc có lẽ.

Hướng dẫn export Tôi sử dụng như sau, nhưng chúng có thể khác trong cấu hình của bạn, vì vậy nếu rbenv hoạt động bình thường khi bạn mở bảng điều khiển ssh thì bạn có thể giữ tập hợp export lệnh. Bí quyết tôi sẽ chi tiết chỉ là đặt chúng ở đúng nơi.

export hướng dẫn của tôi là:

echo 'export RBENV_ROOT=/opt/rbenv' 
echo 'export PATH=/opt/rbenv/bin:$PATH' 
echo 'eval "$(rbenv init -)"' 

1-

Di chuyển chúng từ bất kỳ tập tin mà trước đây bạn đã bao gồm họ và đặt chúng trong file /etc/profile.d/rbenv

2-

Chỉnh sửa tệp /root/.bashrc (hoặc /home/your_user/.bashrc nếu bạn truy cập máy chủ của mình bằng anoth dùng er hơn "gốc") và thêm dòng source /etc/profile.d/rbenv ngay trước khi dòng [ -z "$PS1" ] && return

3-

Chỉnh sửa các tập tin /home/deployer/.bashrc (giả sử bạn đang sử dụng "Deployer" người dùng cho capistrano, nếu không thích ứng với đường dẫn) và thêm dòng source /etc/profile.d/rbenv ngay trước khi dòng [ -z "$PS1" ] && return

4-

Xác nó hoạt động bằng cách mở một giao diện điều khiển phiên ssh và cố gắng ruby -v.Sau đó capistrano nên làm việc một cách chính xác

khác khả năng

rbenv cần rehash sau khi bạn cài đặt bằng tay đá quý, vì vậy chạy trên máy chủ của bạn rbenv rehash chỉ để đảm bảo

+0

Tôi có 5 ứng dụng đường ray khác trên VPS đó và các sự cố chỉ xuất hiện với ứng dụng này. Tôi nghĩ đó là vì tôi sử dụng ở đây ray4. –

+0

Tôi đang sử dụng 'default_run_options [: pty] = true ssh_options [: forward_agent] = true' trong tệp mũ của tôi và trước đây tôi đã thêm quyền như thế này' cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys'' và sau 'ssh-add -K' –

+0

Và cách tiếp cận này thực sự phá vỡ môi trường của tôi (( –

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