2010-11-29 3 views
11

Я искал эту проблему и не нашел похожих похожих вопросов. Пожалуйста, несите меня, если это повторяется.Ошибка разрешения отказа при использовании RVM

Я следовал руководству в RVM сайта установить RVM и я установил рубины:

[email protected]:~$ rvm list 

rvm rubies 

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

Как вы можете видеть, что я сделал рубиново-1.9.2 моего по умолчанию.

Это мой драгоценный камень каталог:

[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/ 

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

+0

Также найдено странное явление. Когда я открываю новую оболочку, рубиновая версия должна быть той, которая установлена ​​общесистемной (т. Е. Ruby-1.8.7), не так ли? Но, это дает мне 1.9.2, и я должен сделать систему rvm, чтобы вернуться к этому. – 2010-11-29 11:17:53

+0

Очень странно. Попробуйте `chmod -R u + w/home/syed/.rvm` – aceofspades 2010-11-29 18:19:18

ответ

18

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

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

Кажется, что РВМ пытается создать эту папку «стопами», но не имеет разрешения, чтобы сделать это.

3

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

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

rvm use 1.9.2 
rvm gemset create YOURGEMSETNAME 
rvm gemset use YOURGEMSETNAME 

или просто

rvm [email protected] --create 

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

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

Я пробовал это раньше: $ rvm use --create [email protected] Но он вызывает такие же ошибки. Он принимает /home/syed/.gem/specs как каталог gem вместо /home/syed/.rvm/gems/[email protected] Я не знаю почему. – 2010-11-29 11:24:35

+0

Это странно, он должен работать без каких-либо проблем с разрешением. Проверьте свои разрешения полностью снова. – fifigyuri 2010-11-29 12:18:52

1

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

2

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

1

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

2

У меня была эта проблема и я хотел записать свой ответ для потомков. Все каталоги в моем каталоге 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 

Я не знаю, если это нормально, но после изменения их всех к моему не суперпользователя проблема ушла.

4

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

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

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

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

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

Если вы не» t владеете им, а затем отнесите его своему пользователю

sudo chown -R user:rvm gemset 
Смежные вопросы