Подтвердить что ты не робот

Разрешение отклонено с RVM

Я искал эту проблему и не мог найти соответствующие похожие вопросы. Пожалуйста, несите меня, если это повторяется.

Я выполнил инструкции в RVM для установки RVM, и у меня установлены рубины:

[email protected]:~$ rvm list

rvm rubies

   ruby-1.8.7-p302 [ i386 ]
=> ruby-1.9.2-p0 [ i386 ]

Как вы можете видеть, я сделал ruby-1.9.2 своим дефолтом.

Это мой каталог gem:

[email protected]:~$ rvm gemdir
/home/syed/.rvm/gems/ruby-1.9.2-p0

Теперь я попытался установить рельсы, и у меня возникла следующая ошибка:

[email protected]:~$ gem install rails
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /home/syed/.gem/specs

Я даже сделал это без каких-либо различий в ошибке:

[email protected]:~$ chown -R syed /home/syed/.rvm/

В настоящее время моя среда выглядит следующим образом:

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

Я не понимаю, почему он пытается установить gems в мой путь к каталогу gem системы?

4b9b3361

Ответ 1

У меня была такая же проблема, и я разрешил ее, выполнив следующие действия:

sudo mkdir ~/.gem/specs
sudo chmod 777 ~/.gem/specs

Кажется, что RVM пыталась создать эту папку "specs", но не имела прав для этого.

Ответ 2

Мне действительно не нравится принятый ответ, его взлом - не решение, подходящее для производства. Когда вы chmod 777, вы предоставляете кому-либо на машине доступ к полному доступу к этим папкам.

Гораздо лучше создать индивидуальный гемсет для этого проекта, затем убедитесь, что вы владеете им с помощью chown.

rvm gemset create project
rvm use [email protected] # May not be necessary

И в папке с вашими драгоценными камнями для случая выше "home/syed/.rvm/gems/" убедитесь, что новый созданный вами gemset принадлежит вам

cd home/syed/.rvm/gems/ && ls -la 

Если вы не являетесь владельцем этого файла, откройте его своему пользователю

sudo chown -R user:rvm gemset

Ответ 3

Возможно, попробуйте также проверить разрешения "chown" для необходимых файлов/каталогов, чтобы узнать больше о вашем сообщении об ошибке.

Обычно я создаю gemset для разных приложений/проектов, поэтому я не получаю смесь сотен разных драгоценных камней в одном месте через несколько недель/месяцев. Попробуйте следующее:

rvm use 1.9.2
rvm gemset create YOURGEMSETNAME
rvm gemset use YOURGEMSETNAME

или просто

rvm [email protected] --create

Попытайтесь установить свои драгоценные камни после этого. Если вы хотите, чтобы драгоценные камни появлялись для каждого gemset для ruby ​​1.9.2, чем переход на глобальный гемсет и установка там ваших драгоценных камней:

rvm [email protected]
gem install rails3 # or whatever you wish

Ответ 4

Я решил это, наконец. Оказывается, мой брандмауэр блокировал 199.91.171.93. Когда я открыл доступ, я больше не получал сообщения Errno::EACCES. Я диагностировал это с помощью --verbose, и я мог видеть, что источник пытался обновить область $HOME/.gem/specs/rubygems.org% 80/quick/Marshal.4.8, но не мог просто потому, что трафик был заблокирован.

Ответ 5

У меня просто была эта проблема и я хотел записать свой ответ для потомков. Все каталоги в моем каталоге RVM, специфичном для Ruby, принадлежали root. Поэтому я должен был все их любить.

~/.rvm/gems/ruby-1.9.3-p286

drwxr-xr-x  22 root           staff   748 Nov 12 13:34 bin
drwxr-xr-x   2 root           staff    68 Nov 20 14:42 cache
drwxr-xr-x   2 root           staff    68 Nov  1 09:59 doc
drwxr-xr-x  47 root           staff  1598 Nov 12 13:34 gems

Я не знаю, нормально ли это, но после того, как они все изменили для моего пользователя без полномочий root, проблема исчезла.

Ответ 6

Как выглядит ваш путь? Похоже, вы получаете системную версию gem вместо команды rvm.

Ответ 7

Для тех, кто приехал из Google: в Windows у меня была эта проблема, потому что у меня была установлена ​​более ранняя версия Ruby в моем каталоге Program Files, в каких более новых версиях Windows есть ограничения безопасности. Запустите ruby --version, чтобы убедиться, что он как ожидается.