Как запустить пакетную установку как обычный пользователь
Я пытаюсь использовать bundle install
, Я не пользователь Ruby - это моя первая настоящая попытка даже запустить грабли. Я просто пытаюсь использовать некоторые пакеты с ThrowtheSwitch.org, которые используют Rake и так далее.
Я изначально установил ruby несколько дней назад, используя:
sudo apt-get install ruby-full
Это позволило мне использовать грабли с платформой тестирования Unity. Теперь я хотел бы использовать CMock. инструкции по использованию CMock говорят cd
в каталог тогда
$ bundle install
$ bundle exec rake
Поэтому я устанавливаю упаковщик, используя:
$ sudo apt-get install bundler
Но затем работает bundle install
постоянно спрашивает у меня пароль. Итак, я стараюсь:
$ gem install bundler
Что не удается для разрешения записи на /var/lib/gems/1.9.1. Итак, я стараюсь:
$ sudo gem install bundler
который устанавливает ОК, поэтому я пытаюсь bundle install
снова. Но все равно постоянно спрашивают мой пароль. Итак, я стараюсь:
$ sudo bundle install
И получите предупреждение о том, что я не должен запускать bundler от имени пользователя root:
Не запускайте Bundler от имени пользователя root. Bundler может запросить sudo, если это необходимо, и установка вашего пакета с правами root нарушит работу этого приложения для всех пользователей без полномочий root на этом компьютере.
Как я могу установить это правильно, чтобы я мог запустить его, как ожидалось?
Примечание: я видел, что есть несколько других вопросов на эту тему, ни на один из которых я не понял ответов, поэтому позвольте мне подчеркнуть, что я не разработчик ruby (или даже web-стек) - мне это нужно с точки зрения непрофессионала возможный.
Обратите внимание: я видел несколько упоминаний о RVM и rbenv. Я не уверен, были ли они, в частности, случайными для этих вопросов, или требуется один или оба. У меня на данный момент тоже нет. Я собираюсь исследовать именно то, что они сейчас.
Обратите внимание на третье: моей платформой является WSL (так что вроде Ubuntu).
3 ответа
Я работаю с Руби всего несколько недель. Я скажу, я знаю, где ты. Я не собираюсь сильно помогать, но скажу, на ваш последний вопрос в комментариях, что я понимаю, что эти две команды разные.
Я понимаю короткий ответ. Можно иметь разные версии Ruby, с которыми они должны работать (унаследованные проекты и т. Д.), И не каждая версия Ruby может работать с каждой версией данного гема. По этой причине можно использовать rbenv или rvm для управления искусством настройки проекта с определенной версией ruby и последующей установки необходимых гемов.
Я работал с rvm на моем mac и rbenv в linux и нашел их достаточно похожими для простых вещей, которые я делал. Установка rbenv на Linux оказалась немного проще. После правильной настройки sudo больше не требуется для установки гемов, что является предпочтительным. Я бы порекомендовал попробовать один из них и установить в соответствии с инструкциями на их сайте. После установки все должно пройти гладко.
Если вы по какой-то причине застряли на системной установке ruby, это поможет:
export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
export PATH="$GEM_HOME/bin:$PATH"
нашел его в другом месте: https://guilhermesimoes.github.io/blog/using-bundler-with-system-ruby
Попробуйте запустить:
gem install bundler
bundle install
Я попытаюсь объяснить, как работает экосистема рубина:
Bundler - это гем - модуль, который устанавливается поверх ruby. Драгоценные камни установлены с использованием
gem install <gem name>
Я бы порекомендовал вам взглянуть на установку менеджера версий ruby, прежде чем делать что-либо еще. два основных кандидата - RVM и rbenv.
Я считаю, что RVM является более простым вариантом для начинающих, но он потребляет больше места на жестком диске.
- проверить, как установить rvm на https://rvm.io/
- в качестве альтернативы посмотрите на rbenv на https://github.com/rbenv/rbenv
После того, как вы установили ruby, вы можете проверить правильность его установки, позвонив ruby -v
из командной строки.
После этого вы можете установить пакет, позвонив gem install bundler
После установки gem вы сможете запускать bundler, однако если вы используете rbenv, вам может понадобиться сначала запустить rehash
Я надеюсь, что объяснение имеет смысл - пожалуйста, кричите, если у вас есть вопросы.