Назад | Перейти на главную страницу

Не удается выполнить инициализацию кухни без полномочий root

Я пытаюсь использовать 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.

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

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

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

Есть ли стандартный метод установки и использования дополнительных гемов 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, доступных в разных дистрибутивах.