2012-03-15 36 views
5

Tôi đã tạo ra cụ thể một file dự án .rvmrc bao gồm một gemset tùy chỉnh (bằng cách sử dụng lệnh rvm --rvmrc --create [email protected]):RVM: Permission denied khi tải gemset từ file .rvmrc trong toàn hệ thống cài đặt

# excerpt of .rvmrc... 

environment_id="[email protected]" 

if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \ 
    && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] 
then 
    \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id" 

    if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] 
    then 
    . "${rvm_path:-$HOME/.rvm}/hooks/after_use" 
    fi 
else 
    # If the environment file has not yet been created, use the RVM CLI to select. 
    if ! rvm --create "$environment_id" 
    then 
    echo "Failed to create RVM environment '${environment_id}'." 
    return 1 
    fi 
fi 

này hoạt động cục bộ trên máy Mac của tôi, sử dụng RVM một người dùng. Chúng tôi cũng đang sử dụng Vagrant với cài đặt RVM toàn hệ thống trên hộp Vagrant của chúng tôi. Tuy nhiên, khi chúng tôi cd vào thư mục dự án và chấp nhận các tập tin .rvmrc, nó kết quả trong các thông báo sau (có, có rất nhiều các thông báo lỗi trùng lặp):

mkdir: cannot create directory `/usr/local/rvm/gems/[email protected]': Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
mkdir: cannot create directory `/usr/local/rvm/wrappers/[email protected]': Permission denied 

Đang cố gắng để tạo ra các gemset tay đề cập đến cùng lỗi, nhưng cũng đề cập rằng nó đã thành công:

$ rvm use 1.9.2 
Using /usr/local/rvm/gems/ruby-1.9.2-p318 
$ rvm gemset create registration 
mkdir: cannot create directory `/usr/local/rvm/gems/[email protected]': Permission denied 
'registration' gemset created (/usr/local/rvm/gems/[email protected]). 

Tôi có cấu hình không chính xác? Làm thế nào tôi có thể giải quyết vấn đề này vì vậy tôi có thể sử dụng một gemset tùy chỉnh từ một tập tin .rvmrc?

Trả lời

8

Vấn đề hóa ra là công thức đầu bếp đơn giản mà tôi đang sử dụng không thêm người dùng lang thang vào nhóm rvm. Điều này có thể được thực hiện bằng cách làm điều này:

sudo usermod -a -G rvm vagrant 

Nhưng tôi quyết định chuyển sang một nhiều robust RVM Chef cookbook mà làm việc một cách hoàn hảo sử dụng những công thức nấu ăn:

include_recipe "rvm::system" 
include_recipe "rvm::vagrant" 
1

Thử thêm 'sudo' trước lệnh rvm của bạn. Đăng ký ruby ​​@ sẽ được cài đặt trên toàn hệ thống nhưng vẫn hoạt động trên cơ sở mỗi người dùng.

+0

Tôi chắc chắn rằng 'sudo rvm ...' sẽ hoạt động, nhưng đó không phải là giải pháp đúng. Khi tôi 'cd' vào một thư mục, tệp' .rvmrc' sẽ tự động tải và tạo gemset mà không yêu cầu sudo. Có một vấn đề lớn hơn đang xảy ra ở đây. – Andrew

0

Đối với tôi, vấn đề đã được rằng tôi đã cài đặt .rvm trong thư mục nhà của tôi (người dùng cài đặt) nhưng bằng cách nào đó đã quản lý để có thư mục được chown bởi root: root.

ls-al/home/Darren * root drwxr-xr-x 2 gốc 4096 18 tháng mười 16:46 .rvm *

sudo chown darren:rvm .rvm -R

sudo useradd darren rvm

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