Используя RVM, как гарантировать, что драгоценные камни и не-драгоценные камни видят одну и ту же версию ruby?

#ruby #rubygems #rvm #berkeley-db

#ruby #rubygems #rvm #berkeley-db

Вопрос:

Я пытаюсь установить bdb на Ubuntu в качестве gem следующим образом,

 gem install bdb
  

Я не использую sudo, поскольку я устанавливаю с rvm. Версия ruby в моей системе 1.9.1, но версия, которую я использую для этой установки, 1.8.7 (я устанавливаю rbot, вы видите). Проблема, с которой я столкнулся, заключается в:

 checking for db_version() in -ldb-4.something... no
  

Я предполагаю, что это означает, что rubygems не находит ldb 4.something в тех местах, которые он ищет. Это потому, что я установил libdb-4.что-то (7, на самом деле) с помощью sudo, и версия ruby моей системы отличается от версии ruby, которую я использую для bdb? Используя rvm, как мне справиться с подобной ситуацией? Возможно, я что-то делаю неправильно, но мне кажется, моя проблема в том, что не все, что я использую, является gem, а то, что не является gems, видит неправильную версию ruby.

(если окажется, что моя проблема в чем-то совершенно не связанном: меня все еще интересует этот вопрос. Как вещи, которые я установил в своей системе с определенной версией ruby, уживаются с gems, установленными с использованием rvm в разных версиях ruby?)

Ответ №1:

«Как вещи, которые я установил в своей системе с определенной версией ruby, уживаются с gems, установленными с использованием RVM в разных версиях ruby?»

Они этого не делают, и в этом суть. RVM предназначен для управления различными версиями Ruby, чтобы они были изолированы друг от друга.

Это означает, что версии Ruby, которые вы используете для system (когда вы выполняете sudo gem install установку в system), не имеют ничего общего с текущей средой (при правильной настройке).)

Когда вы находитесь в среде RVM, каждая установленная версия Ruby является изолированной средой.

Что я бы порекомендовал, так это:

  1. Зайдите на веб-сайт RVM и ознакомьтесь с ним.
  2. В конце страницы продолжите чтение о том, как использовать наборы драгоценных камней.
  3. перейдите в каталог вашего проекта
  4. использование rvm 1.8.7@your_project_environment
  5. создайте свой файл .rvrmc, чтобы вы автоматически использовали эту среду в своем проекте при будущих посещениях этого проекта, этот файл может содержать «использование rvm 1.8.7@your_project_environment «который достигнет этого.
  6. установите все необходимые драгоценные камни

Если у вас есть дополнительные вопросы, не стесняйтесь обращаться к Уэйну Э. Сегину и множеству других пользователей RVM, и мы будем рады вам помочь. Конечно, первым поиском ответов является документация на веб-сайте.

Комментарии:

1. Я думаю, что это было недостаточно явно в моем вопросе, но: ключевым моментом здесь является то, что рассматриваемая зависимость не является драгоценным камнем. Он был установлен с помощью apt-get. Так что, возможно, мой вопрос действительно связан с тем, как взаимодействуют менеджеры пакетов? Спасибо за вашу помощь, эта документация была очень интересной!

2. @Ziggy скорее всего, вам нужно переустановить ruby после установки некоторых пакетов, таких как openssl / zlib, но для некоторых пакетов это не будет работать, как для ruby-something, этот пакет будет работать только с ruby, установленным через apt-get