Совет для обработки по умолчанию GEM_PATH - PullRequest
2 голосов
/ 10 сентября 2010

Когда я обновился с rubygems 1.3.5 до 1.3.7, мой GEM_PATH изменился.gem environment дает мне

- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/me/.gem/ruby/1.8 

... тогда как раньше это было /var/lib/gems/1.8

Как бы вы справились с этим?

  1. Я мог бы установить GEM_PATH, но это кажется немного грязным, так как мне пришлось бы делать это для моей оболочки и каждого из файлов environment.rb моего приложения.

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

  3. Должен ли япросто удалить старый каталог и переустановить все драгоценные камни?Это звучит безопасно, но требует много времени.

Спасибо за любые отзывы.

Ответы [ 2 ]

1 голос
/ 11 сентября 2010

Изменение пути к гемам не имеет ничего общего с обновлением RubyGems. Это связано с тем, что у вас есть две параллельные установки RubyGems: одна из репозитория пакетов Debian, которую вы установили через APT, и другая.

Решение простое: не делай этого.

Debian RubyGems был исправлен для установки его драгоценных камней в /var/lib/gems, RubyGems из RubyGems.Org использует /usr/lib/ruby/gems, если это доступно для записи, ~/.gem в противном случае.

Вы не должны никогда смешивать несколько различных установок RubyGems, и вам следует особенно не смешивать Debian-RubyGems и обычные RubyGems. Либо установите RubyGems из Debian и используйте only that, и only обновите его с помощью APT или , установите RubyGems из RubyGems.Org и используйте только , а только обновите его с помощью gem update --system. Обратите внимание, что это транзитивно также относится к YARV, который содержит свою собственную копию RubyGems. Если вы используете Debian-RubyGems, то вы должны также использовать упакованные в Debian версии YARV, поскольку только пакеты YARV для Debian были пропатчены для удаления RubyGems и использования Debian- предоставляется один.

Каким-то образом вам удалось «обновить» ваш Debian-RubyGems до простого, который на самом деле не является обновлением, а скорее похож на отдельную установку. На самом деле этого не должно происходить, потому что в Debian-RubyGems удалена функция обновления. Вот что печатает my с установленным Debian RubyGems:

gem update --system
# ERROR:  While executing gem ... (RuntimeError)
# gem update --system is disabled on Debian. RubyGems can be updated using the 
# official Debian repositories by aptitude or apt-get.

1.3.5 довольно старый, так что, возможно, этой проверки ошибок там не было, хотя я сомневаюсь в этом. AFAIK, что проверка ошибок была введена где-то в периоде 1.2.

0 голосов
/ 10 сентября 2010

Избегайте проблемы, используя rvm . Вы можете создавать и использовать новые наборы камней , отдельно от ваших текущих драгоценных камней.

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