Kesalahan saat memasang permata di ubuntu 12.04 aws ec2

Saya mendapatkan instance Ubuntu 12.04 di AWS EC2.
Saya hanya ingin gem install rails.
Tapi ini menunjukkan pesan kesalahan ini.
Apakah ini disebabkan oleh perbedaan gem env antara sudo gem env?
Apakah ada cara untuk mengatasi masalah ini kecuali rvm implode?
Apa risiko menggunakan rvmsudo saja?

Fetching: atomic-1.1.15.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/local/rvm/gems/ruby-1.9.3-p545@global directory.

permata env:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 1.9.3 (2014-02-24 patchlevel 545) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p545@global
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.3-p545/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p545@global/bin
  - SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-1.9.3-p545@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/rvm/gems/ruby-1.9.3-p545@global/bin
     - /usr/local/rvm/rubies/ruby-1.9.3-p545/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/rvm/bin

sudo permata env:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.8
     - /home/ubuntu/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - http://rubygems.org/

person user3411589    schedule 13.03.2014    source sumber


Jawaban (2)


Apakah ini disebabkan oleh perbedaan gem env antara sudo gem env?

Sangat mungkin, rvm Ruby terpisah dan berbeda dari lingkungan sistem Ruby dan bergantung pada di mana gem dieksekusi sesuai dengan jalurnya.

Namun, sepertinya Anda menjalankan instalasi permata rvm Ruby sebagai pengguna yang berbeda sebagai pemilik /usr/local/rvm/gems dan subdirektorinya, yang seharusnya diinstal sebagai rvmsudo

Sebagai pengguna apa Anda menjalankan instalasi permata rvm?

Anda dapat mencoba ini:

chown -R user-you-want-to-run-command-as.user-you-want-to-run-command-as /usr/local/rvm/gems

Atau coba juga seperti yang Anda sebutkan rvmsudo. Risikonya ada karena beberapa file mungkin memiliki root kepemilikan yang mungkin tidak Anda inginkan jika Anda ingin lebih aman.

Perhatikan bahwa rvmsudo bukan cara yang disarankan melainkan gunakan rvm pada direktori lokal Anda. Jika Anda ingin menghapusnya, Anda dapat melakukan ini:

rvmsudo rvm implode
sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm

Kemudian instal ulang hanya dengan rvm

person Rico    schedule 13.03.2014

rvm dibuat untuk digunakan tanpa hak sudo atau khusus/sudo. menginstal ulang akan lebih dihargai. bersihkan instalasi rvm saat ini rvmsudo rvm implode sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm dan kemudian tutup semua konsol/bashes/terminales dan masuk lagi dengan pengguna yang ingin Anda gunakan rvm dan instal lagi.

person The86Freak    schedule 22.07.2014