Как запустить пакетную установку как обычный пользователь

Я пытаюсь использовать 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 является более простым вариантом для начинающих, но он потребляет больше места на жестком диске.

После того, как вы установили ruby, вы можете проверить правильность его установки, позвонив ruby -v из командной строки.

После этого вы можете установить пакет, позвонив gem install bundler

После установки gem вы сможете запускать bundler, однако если вы используете rbenv, вам может понадобиться сначала запустить rehash

Я надеюсь, что объяснение имеет смысл - пожалуйста, кричите, если у вас есть вопросы.

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