Проблема с разрешением Rubygems при использовании sudo - PullRequest
1 голос
/ 11 июня 2011

Я использую sudo для установки гемов и обновления самих рубинов, но это приводит к тому, что проблема всех новых файлов в /usr/lib/ruby/gems/1.8/gems принадлежит root:root с разрешением 750

Это, в свою очередь, приводит к невозможности загрузки большинства драгоценных камней.

Например, я недавно обновил rubygems и, если я попытаюсь gem env, я получу:

/usr/local/lib/site_ruby/1.8/rubygems/specification.rb:512:in `read': Permission denied - /usr/lib/ruby/gems/1.8/specifications/rubygems-update-1.6.2.gemspec (Errno::EACCES)
    from /usr/local/lib/site_ruby/1.8/rubygems/specification.rb:512:in `load'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:116:in `load_gems_in'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:115:in `each'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:115:in `load_gems_in'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:112:in `reverse_each'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:112:in `load_gems_in'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:309:in `refresh!'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:67:in `from_gems_in'
    from /usr/local/lib/site_ruby/1.8/rubygems/source_index.rb:47:in `from_installed_gems'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1025:in `source_index'
    from /usr/local/lib/site_ruby/1.8/rubygems/gem_path_searcher.rb:135:in `init_gemspecs'
    from /usr/local/lib/site_ruby/1.8/rubygems/gem_path_searcher.rb:14:in `initialize'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:984:in `new'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:984:in `searcher'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:206:in `try_activate'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:57:in `require'
    from /usr/local/lib/site_ruby/1.8/rubygems/config_file.rb:55
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
    from /usr/local/lib/site_ruby/1.8/rubygems/gem_runner.rb:8
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
    from /usr/bin/gem:9

Текущий обходной путь - chmod, чтобы все файлы были доступны для чтения всем, но это становится действительно раздражающим.

Некоторые характеристики сервера:

uname -a дает

Linux HomeBox 2.6.35 28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux


sudo gem env т

RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.2
  - RUBY VERSION: 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/nicklas/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/


ruby -v т

ruby 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]

Я был бы рад предоставить больше информации о проблеме.


Обновление

Я просто вычистил все содержимое ruby ​​и rubygems и переустановил его. Та же проблема.

1 Ответ

1 голос
/ 11 июня 2011

Я тоже использую Ubuntu дома, и после многих проблем с использованием apt для установки я обнаружил, что RVM .

RVM очень прост в установке и позволяет запустить и запуститьбыстро и легко.Но как только вы начнете использовать его некоторое время, вы обнаружите, что он превосходит любую систему пакетов ОС, поскольку обладает функциями, которые позволяют:

  • Устанавливать несколько версий Ruby и JRuby и легкопереключаться между ними.Я могу просто выдать rvm use 1.9.2 или rvm use jruby-1.6.2, и мой путь переключается автоматически, и все работает просто.
  • Установите наборы драгоценных камней в "наборы гемов", которые позволяют вам использовать одни и те же камни в нескольких версиях ruby,Вам не нужно переустанавливать вручную.Кроме того, вы можете переключаться между наборами гемов, чтобы вы могли изолировать экспериментальные версии гемов и т. Д.

Я рекомендую удалить собственный пакет ruby ​​и установить RVM.Вы будете рады, что сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...