Python 制作安装程序的最佳实践-我可以使用Yum吗

Python 制作安装程序的最佳实践-我可以使用Yum吗,python,installation,yum,Python,Installation,Yum,我是安装人员的新手,到目前为止,我一直在手动执行要安装的项目的逐行列表。显然,这不是一种可扩展的方法,尤其是当需要定期安装新服务器,而不是由同一个人安装时 目前我需要通过Yum安装大约30个软件包(从大型的mySQL到小型的70KB随机软件包) 手动安装其他一些(基本上只是“Python setup.py install”命令的Python包) 创建一些目录,更改一些权限等 创建自动执行此操作的东西的最佳方式是什么。我不能总是假设客户机服务器有Yum,那么我需要下载所有二进制文件和依赖项并让脚本

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

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

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


我知道这是一个复杂的问题。有人知道这方面的好教程吗?

您马上就要问几个问题,所以我只想谈谈打包和安装Python库

使用
setup.py
可以将Python包转换为RPM,以便在任何Red Hat/CentOS上安装 使用yum或者up2date来创建一个box。这就是我在工作中如何在内部安装所有软件包的方法。假设基金会<代码> RPMBudie安装了实用工具,其简单之处如下:

python setup.py bdist_rpm

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

您一下子问了几个问题,所以我只想谈谈打包和安装Python库

使用
setup.py
可以将Python包转换为RPM,以便在任何Red Hat/CentOS上安装 使用yum或者up2date来创建一个box。这就是我在工作中如何在内部安装所有软件包的方法。假设基金会<代码> RPMBudie安装了实用工具,其简单之处如下:

python setup.py bdist_rpm

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

您可以创建一个RPM包,该包取决于您需要的包。
(对于Fedora,但对于RHEL/CentOS也一样)

基本上,.spec文件中有这样一行:
需要:mysql服务器、httpd、php

因此,您可以将其添加到您的yum mirror中(假设您有一个),然后执行安装的任何人都可以执行
yum install server setup
,它将自动引入所有必需的软件包。正如jathanism所说,您可以从
setup.py
脚本创建RPM,并将它们放在镜像上,然后让您的元包依赖于这些RPM


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

您可以根据需要的软件包创建RPM软件包。
(对于Fedora,但对于RHEL/CentOS也一样)

基本上,.spec文件中有这样一行:
需要:mysql服务器、httpd、php

因此,您可以将其添加到您的yum mirror中(假设您有一个),然后执行安装的任何人都可以执行
yum install server setup
,它将自动引入所有必需的软件包。正如jathanism所说,您可以从
setup.py
脚本创建RPM,并将它们放在镜像上,然后让您的元包依赖于这些RPM

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