如何从 Python 2.7.2 源创建二进制 RPM 包以安装到非标准前缀(例如 /opt/python27)?
假设以下构建正确。
wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/opt/python27 --enable-shared
make
make test
sudo make install
Run Code Online (Sandbox Code Playgroud)
我想构建一个二进制 RPM,而不是最后一个命令。
我想使用 Jenkins 创建 RPM 包以将代码和脚本部署到 Linux redhat 机器上所以应用程序是技术的混合(不需要编译)我只需要打包应用程序将它们部署到正确的位置重新启动阿帕奇
有人能提供一些关于如何为新手执行这些步骤的说明吗:
一些问题:
如果我要创建将部署到linux redhat机器上的RPM,我是否需要在本地linux机器上安装jenkins(我希望在windows上安装jenkins)
有没有人有一个从本地文件夹创建包的示例(目前没有源代码控制)我只想指定从中获取代码的目录并指定将代码部署到 rpm 所在计算机上的位置安装在
在目标计算机上,我想运行类似 yum -install mypackage-version12.rpm 的东西,它将把代码/脚本安装到指定的目录并重新启动 apache 我也需要一个这样的例子。
谢谢
我目前有两个问题:
1) 是否可以在 rpm 规范文件中指定软件包的范围?就像是
package >= 1.0.0 且 package < 1.0.50 意味着它将选取接近 1.0.50 的最新包版本
2) 有人知道 yum 是否会更新到更高版本的包,即使在规范文件中指定的版本较低?或者有什么可以避免升级到更高版本?为了更清楚起见,这是我的例子:
我的仓库中有两个包: package-1.0.5-1 package-2.0.10-1
如果我的包的规格文件!具有以下要求 要求:package > 1.0.5
当我执行 yum 安装 packageA 时,这意味着它将安装 1.0.5 版本的更高版本,或者它会假设 2.0.10 更高并会安装它?我想要实现的是告诉我的包只安装 1.0.5 版本的版本,而不是跳到 2.x 版本。
我希望我已经表达清楚了。感谢您给我的任何提示或回复
我想编写一个迷你脚本,用于下载 Linux RedHat 中 RPM 包的所有递归依赖项。
当我使用时:
repoquery -a --requires --recursive --resolve PACKAGE_NAME
Run Code Online (Sandbox Code Playgroud)
我没有获得所有递归依赖项,但是当我使用时:
repoquery -a --tree-requires PACKAGE_NAME
Run Code Online (Sandbox Code Playgroud)
我获得了所有依赖项,但没有获得可以通过管道导入的可用列表yumdownloader。
我应该怎么办?
我正在为依赖于php-mcrypt. 我的目标操作系统CentOS 6.5 php-mcrypt不在CentOS存储库中,但在EPEL. 有没有Requires:比手动安装EPEL更好的方法来满足这种在线依赖关系%pre?我真的不喜欢在 中强制安装另一个存储库的想法RPM,但我也不喜欢当RPMs 无法安装似乎不存在的依赖项时,直到有人足够聪明开始搜索各种国外回购。
处理这个问题的最佳方法是什么?
我写了一个 RPM 规范,它对 kernel-devel 包有要求。但是,安装任何kernel-devel 包都可以满足这一点。如何指定 RPM 需要当前运行的内核版本的 kernel-devel 包。
例如,我们的客户可能正在运行 3.10.0-514,但最新的是 3.10.0-693。如果您执行“yum install -y kernel-devel”,您将获得最新版本的头文件,满足我的 RPM 中的“Requires”行。我想确保安装的标头适用于 3.10.0-514。
我从官网下载了RPM包,但是安装的时候还是需要下载一些依赖。我需要在没有任何网络或存储库的情况下安装 docker-ce,所以我需要我依赖的所有 RPM 包以及它们的安装顺序。
Docker-CE 版本:18.03+
使用zypper search,我可以找到包。我知道我可以使用
rpm -qlp <package.rpm>
Run Code Online (Sandbox Code Playgroud)
列出文件,但我没有;因为它位于其中一个zypper存储库中。有这样的吗?
zypper list-files-in <package>
Run Code Online (Sandbox Code Playgroud)
注意:我正在为试图解决相同问题的其他人创建一个自我回答的问答