我想安装没有二进制包(deb,rpm)的源代码包。
如果该模块已经安装在该机器上,我该如何停止模块的执行?
我在用着:
Exec { creates => "${zookeeper_path}/zookeeper/bin/zkServer.sh" }
然而所有其他的块无论如何都被执行。 什么是最好的方法? 检查几个文件的存在? 当傀儡检查更改时,我不想解开和重新编译所有模块。
编辑:
安装过程由几个步骤组成:
tar.gz包 尝试了几个死路,从@Mike Renfro的评论,我想出了以下步骤(随时改进):
不要使用Puppet从源代码安装软件包(这需要太长的时间,带来太多的问题)
总是创build二进制包。 它可以很容易地重新分配和testing。
设置你自己的仓库 – 对于Debian来说,一个好的select是rebupro ,文档似乎很糟糕,但是有一个Puppet模块来安装: puppet-reprepro 。 添加新软件包相当简单:
$ reprepro -Vb . includedeb squeeze ~/packages/my_package.deb
用fpm创build新的包。 构build一个包的过程非常简单,比在Puppet脚本中编写包容易得多。
安装软件包只需:
package { "leiningen": ensure => present }
您可以简单地获取仍在testing版本中的软件包,并将其与本地存储库进行部署。