Не удается установить 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...)