我正在尝试将为 Centos 开发的厨师菜谱改编到 Ubuntu,并认为一定有更好的方法。
方法论(我使用 Vagrant):
vagrant reload
- 查看日志以找到损坏的包裹
例子:
[Wed, 04 Jul 2012 06:24:34 +0200] FATAL: Chef::Exceptions::Package: package[python-devel] (foo::deps line 57) had an error: Chef::Exceptions::Package: No version specified, and no candidate version available for python-devel
- 谷歌“apt-get install”尝试找到 Ubuntu 的等效版本
- 修改代码以包含平台测试,使用我发现的包名称。
- 重复。
有没有一种快速可靠的方法可以从 Centos 中找到 Ubuntu(apt-get 而不是 yum)软件包名称?我还遗漏了什么吗?
答案1
发行版之间没有 1:1 软件包等价列表,因为没有 1:1 等价性,而且即使有,也会随着包装的发展而定期变化。
我使用的快速可靠的方法是经验——对 Debian 软件包工作方式的深入了解通常足以告诉我软件包名称是什么(也许可以通过快速的 apt-cache 搜索来证实我的怀疑)。不过,我认为您整个转换过程效率极低——与其玩打地鼠游戏,每次打完后都要花很长时间,不如一次通读整个配方,查看所有软件包(以及文件位置等其他所有内容),并在转换过程中从 CentOS 转换为 Ubuntu。您可能需要修复一两件您错过的事情,但这比一次找到需要更改的每一件事要快得多——而且您会发现 Chef 根本不会出错的事情(例如前面提到的文件位置问题)。