Я пытаюсь использовать 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 из корневого каталога пользователя?
Похоже, вы установили "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, доступных в разных дистрибутивах.