Не удается установить gem с помощью задачи установки Rakefile в Bundler при разработке собственного gem

Я разрабатываю несколько частных гемов и думаю, что я не правильно понимаю последовательность установки PATH/GEM_PATH и / или Bundler/RVM, было бы интересно, если бы кто-то мог скинуться.

У меня есть хранилище с двумя драгоценными камнями (A & B для простоты). Я разработал драгоценные камни, используя скаффолдинг, следуя рекомендациям, изложенным в этом руководстве по комплектации.

Благодаря проекту Bundler у меня есть несколько задач Rakefile, таких как rake build, rake install, rake install:local а также rake release, Из-за частной природы этих драгоценных камней я не могу выпустить их в RubyGems (и мы не рассматривали возможность размещения наших rubygems).

Мои машины используют RVM для управления версиями ruby ​​и Bundler версии 1.15.1

Что я хочу сделать: предполагая, что новый компьютер / разработчик испытывает проект, в идеале мы бы cd в каждой из подпапок (в настоящее время 2, драгоценный камень A и драгоценный камень B), запустите rake install и после этого у нас должен быть доступный для всей системы драгоценный камень для текущего пользователя.

Что происходит: драгоценные камни построены и работают должным образом, но они доступны только внутри подпапки каждого драгоценного камня, то есть драгоценный камень A доступен только внутри подпапки A, а драгоценный камень B доступен только внутри подпапки B.

Что я пробовал: итак, после rake build/install/install:local новый .gem файл создается в pkg, Я пытался вручную установить "скомпилированный" файл с помощью gem install pkg/A.gem, gem install --local pkg/A.gem а также gem install --local --user-install pkg/A.gem безуспешно. ( есть много ТАК вопросов / ответов по этому поводу)

Я считаю, что это как-то связано с переменными PATH, но, как я уже говорил, я не до конца понимаю, как они управляются. Я получаю следующие результаты от этих команд:

# Our gem
> gem which A
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/A-0.1.8/lib/A.rb

# Pry, available globally
> gem which pry
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/pry-0.11.1/lib/pry.rb

Я потерян и расстроен слишком долго, любая помощь приветствуется. Также открыт, чтобы услышать предложения о лучших частных установках гемов:)

2 ответа

Решение

Да, это как-то связано с вашими переменными PATH. Ваша установка кажется хорошей.

Я советую сначала подтвердить ваш путь установки гемов:

echo $GEM_HOME

Дважды проверьте ваш PATH, чтобы убедиться в его наличии, а также убедитесь, что дом GEM также находится там, где был установлен драгоценный камень из rake install

echo $PATH

Если нет, поставьте его на своем пути, и у вас должно получиться что-то вроде этого:

echo PATH=$PATH:$GEM_HOME >> ~/.bashrc
source ~/.bashrc

Создайте свой драгоценный камень в соответствии с тем, что руководство вы связаны. Вы должны в конечном итоге с файлом драгоценного камня. Распространяйте это так, как считаете нужным (я использую rsync / crontab для загрузки новых версий гемов, но все идет как надо). Пользователь может установить драгоценный камень следующим образом:

gem install --user-install /path/to/your/file.gem

Это установит драгоценный камень в пользователя ~/.gem/ruby/<version>/gems/<your-gem-name> каталог.

Пробовал с пустым камнем (гурман, как в этом примере руководства), и он отлично работает. Но если вы не укажете параметр --user-install, он попытается установить в систему каталог ruby ​​(/usr/lib/ruby ​​/gems...)

Другие вопросы по тегам