1

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

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

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

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

4

2 回答 2

4

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

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

python setup.py bdist_rpm

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

于 2010-08-31T20:38:10.700 回答
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 软件包。

于 2010-08-31T20:48:34.837 回答