Не может кухня init как некорневая

Я пытаюсь использовать test-kitchen, инструмент для тестирования шеф-повара (и т.д.) поваренные книги с виртуальными машинами. Однако при следовании руководству и выполнению kitchen init --driver=kitchen-vagrant, Я получаю следующую ошибку:

      create  .kitchen.yml
      append  Rakefile
      create  test/integration/default
      append  .gitignore
      append  .gitignore
Fetching: kitchen-vagrant-0.15.0.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.9.1 directory.

Я не выполняю это как корень. Я - главным образом программист Python и не знаю много о рубиновой экосистеме (и драгоценный камень и т.д.). В Python, с зернышком, можно использовать --user устанавливать пакеты Python на корневом каталоге пользователя. Или используйте a virtualenv сохраненный локально.

У других людей были подобные проблемы, но советовать/принимать ответ должен иногда выполнять это как корень. Я не делаю всего как корня.

Я использую Ubuntu Linux 14.04.1 надежных человека. Я хотел бы использовать бродягу для VM (но я могу измениться на другую локальную систему VM в случае необходимости).

Существует ли стандартный метод установить и использовать дополнительные драгоценные камни Ruby из корневого каталога пользователя?

1
задан 23 May 2017 в 14:33
1 ответ

Похоже, вы установили "ruby" пакеты от Ubuntu и установили test-kitchen как rubygem. Для разработки кода поваренной книги Chef настоятельно рекомендуется использовать ChefDK . Chef Software, Inc. создает собственные (deb) пакеты для ChefDK на нескольких популярных платформах для использования на рабочих станциях, включая Ubuntu Linux 14.04. Существует также репозиторий apt , который включает ChefDK, если вы предпочитаете загружать его с помощью apt-get .

ChefDK включает в себя chef, test-kitchen и kitchen-vagrant, плюс множество других инструментов, полезных для разработки поваренной книги Chef. Вы также можете использовать его в качестве "системного" рубина по умолчанию , если Chef - это все, для чего вам нужен Ruby в вашей системе. Если вы это сделаете, убедитесь, что вы удалили пакет «ruby» дистрибутива.

Мотивация для получения этого пакета заключается в том, что CHEF перемещается с другой скоростью для опубликованного программного обеспечения, чем для дистрибутивов. Часто новейшие версии или новые или версии Ruby / RubyGems недоступны в репозиториях пакетов распространения, а между различными дистрибутивами циклы выпуска сильно различаются. Как программист на Python, я уверен, что вы можете с этим согласиться, учитывая разнообразие версий Python, доступных в разных дистрибутивах.

1
ответ дан 4 December 2019 в 00:13

Теги

Похожие вопросы