Изменение пути к гемам не имеет ничего общего с обновлением 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.