制作安装程序的最佳做法 - 我可以使用百胜

时间:2010-08-31 20:06:48

标签: python installer yum

我是安装人员的新手,直到现在才刚刚手动执行要安装的项目的逐行列表。显然,这不是一种可扩展的方法,特别是当需要定期安装新服务器时,而不是由同一个人安装。

目前我需要通过Yum安装大约30个软件包(从mySQL到大型70KB随机软件包) 手动安装一堆其他的(基本上只是“python setup.py install”命令的Python包) 创建一些目录,更改一些权限等。

创建自动执行此操作的最佳方法是什么。我不能总是假设客户端服务器有Yum,那么我是否需要下载所有二进制文件和依赖项并让脚本安装它们?

我知道这是一个有问题的问题。有谁知道这方面的任何好教程?

2 个答案:

答案 0 :(得分:4)

你一次要问几个问题,所以我只想谈谈打包和安装Python库......

使用setup.py,您可以将Python包转换为RPM,以便在任何Red Hat / CentOS上安装 使用yum的盒子。这就是我在工作中内部安装所有软件包的方法。假设安装了基础rpmbuild实用程序,它就是这么简单:

python setup.py bdist_rpm

这将在dist文件夹中构建您的包的RPM(例如dist/mypackage-1.01-1-noarch.rpm)。然后,您只需将此RPM添加到内部yum镜像(如果您有内部镜像),然后就可以轻松地将软件包分发到内部主机。

答案 1 :(得分:2)

您可以创建一个RPM包,该包依赖于您需要的任何包 http://fedoraproject.org/wiki/PackageMaintainers/CreatingPackageHowTo(对于Fedora,但RHEL / CentOS也是如此)

你基本上会在.spec文件中有一行代码如下:
Requires: mysql-server, httpd, php

所以你可以把它添加到你的yum镜像中(假设你有一个),那么正在进行安装的任何人都可以执行yum install server-setup并且它会自动拉入所有必需的包。正如jathanism所说,你可以从setup.py脚本创建RPM并将它们放在镜像上,然后让你的元数据包依赖于那些RPM。

如果有可能使用Debian系统,你也可以使用Debian软件包。