我正在尝试使用test-kitchen
,一种使用虚拟机测试 chef (etc) 食谱的工具。然而,当遵循导游执行此操作后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 程序员,对 Ruby 生态系统(以及 gem 等)了解不多。在 Python 中,使用 pip,您可以用来--user
将 Python 包安装到用户的主目录中。或者使用virtualenv
本地存储。
其他人也遇到过类似的问题,但建议/接受的答案有时是以 root 身份运行。 我是不是以 root 身份执行所有操作。
我正在使用 Ubuntu Linux 14.04.1 trusty。我想使用流浪汉用于 VM(但如果需要,我可以更改为另一个本地 VM 系统)。
是否有一个标准方法可以从用户主目录安装和使用附加 Ruby 宝石?
答案1
听起来你已经安装了来自 Ubuntu 的“ruby”包,并将 test-kitchen 安装为 rubygem。强烈建议在开发 Chef cookbook 代码时使用厨师DK。Chef Software, Inc. 在多个流行的工作站平台上为 ChefDK 创建了原生 (deb) 软件包,包括 Ubuntu Linux 14.04。此外还有一个apt 存储库如果您希望使用 进行下载,则其中包括 ChefDK apt-get
。
ChefDK 包括 chef、test-kitchen 和 kitchen-vagrant,以及许多其他对 Chef cookbook 开发有用的工具。您还可以将其用作您的默认“系统” ruby如果您的系统上只需要 Chef,那么 Ruby 就足够了。如果您这样做,请确保卸载发行版的“ruby”包。
拥有此软件包的动机是因为 CHEF 对已发布软件的迁移速度与发行版不同。通常,最新版本或新呃Ruby/RubyGems 的版本在发行版软件包存储库中不可用,并且各个发行版的发布周期也大不相同。作为一名 Python 程序员,我相信您会对此表示同情,因为不同发行版上提供各种版本的 Python。