h0945466 发表于 2018-8-3 09:32:25

制作puppet的rpm包

  当前puppet的最新版是:http://puppetlabs.com/downloads/puppet/puppet-2.7.6.tar.gz
  facter的最新稳定版本是:http://puppetlabs.com/downloads/facter/facter-1.6.2.tar.gz
  puppet-2.6.6.tar.gz中的conf/redhat/目录下包含了一个puppet.spec文件,经过简单的修改,就可又直接用来制作rpm包了。
  我的当前环境是RHEL-5.7,x86_64。
  1. 准备自己的打包环境
  确认系统上有rpmbuild命令可用,没有的话,安装rpm-build包。
  建议使用个人账号打包,这样需要先初始化一个自己的打包环境:
  在自己的home目录建一个rpmbuld目录,
  $cd ~
  $mkdir rpmbuild
  $mkdir rpmbuild/{SOURCES,SPECS,SRPMS,RPMS,BUILD}
  然后,在自己的home目录下建一个.rpmmacros 文件,内容如下:
  %_topdir    %(echo $HOME)/rpmbuild
  对于这次要打包的puppet,puppet.spec中依赖一个rhel宏,你可以写在.rpmmacros文件里,也可以rpmbuild -D ‘rhle 5′这样在打包时指定。
  假如写在.rpmmacros文件里,内容如下:
  %rhel5
  另外,还有一个建议,假如你想打出来的包的名字是puppet-2.7.6-1.el5.noarch.rpm,那么,在这个文件里写添加一个宏dist
  %dist.el5
  2.下载puppet包,还有puppet-2.7.6.tar.gz.asc,这个打src包时,需要。
  3.修改puppet.spec文件,官方提供的这个包里的puppet.spec有个错误,搜索http_server,只有一行,将http_server改为http。
  4.将这个puppet.spec复制到~/rpmbuild/SPECS下。
  5.将修改过的puppet-2.7.6目录重新打包,将包复制到~/rpmbuild/SOURCES目录下。
  6. 最后一步,开始打包:
  $cd ~/rpmbuild/SPECS
  假如~/.rpmmacros里已经写了rhel宏,那么这里就可以直接打包了:
  $rpmbuild -ba puppet.spec
  假如~/.rpmmacros里没有定义rhel宏,那么命令需要这样写:
  $rpmbuild -D ‘rhel 5′ -ba puppet.spec
  假如不出意外,打好的包会放在~/rpmbuild/RPMS/noarch目录下。
  假如出错,一般是依赖关系的问题,缺少什么,就安装什么包(一般是xxx-devel包),然后重新打包就可以了。
  打facter的rpm包与puppet的差不多,将facter-1.6.2.tar.gz解压后,将conf/redhat/facter.spec复制到~/rpmbuild/SPECS下,将facter-1.6.2.tar.gz复制到~/rpmbuild/SOURCES下,然后开始打包:
  $cd ~/rpmbuild/SPECS
  $rpmbuild -ba facter.spec
页: [1]
查看完整版本: 制作puppet的rpm包