因为我必须在通过 kickstart 进程构建的多个 Oracle Linux 服务器上安装多个版本的 Python,所以我想为我们的 yum 存储库构建一个 python rpm。我能够使用“make altinstall”手动构建Python,它不会安装在默认系统Python安装上,所以我认为这将是可行的方法。
经过多次尝试和错误,我设法从 .bz2 python 2.7 包开始构建一个 rpm - 但现在当我尝试安装它时,出现错误:
error: Failed dependencies:
/usr/local/bin/python is needed by Python-2.7.2-1.i386
什么...???我正在尝试安装Python!系统默认的Python(2.4)位于/usr/bin/python!我的 python 目录原型位置是 /tmp/python2.7 (可执行文件是 /tmp/python2.7/bin/python2.7)。那么为什么它要在 /usr/local/bin 中查找呢?
这是我的 RPM SPEC 的核心:
%prep
%setup -q
%build
./configure --prefix=/tmp/python2.7
make
%install
make altinstall
我仔细查看了 rpm 构建日志,发现:
Requires: /bin/sh /tmp/python2.7/bin/python2.7 /usr/bin/env /usr/local/bin/python libc.so.6 libc.so.6(GLIBC_2.0)...[a lot more...]
好的,这就是 /usr/local/bin 的用武之地......现在的问题是,它是如何确定这些要求的?我是否指定了错误的内容?我需要覆盖某些东西吗?
像许多 rpm 新手一样,我了解构建部分,但我并没有真正“理解”rpmbuild 结束时发生的情况以及实际放入 rpm 文件中的内容(除了您在 %files 中指定的文件),然后是什么实际上,当你进行 rpm 安装时就会发生这种情况。
任何人都可以建议为什么我的安装失败或者我可以阅读什么来理解为什么我的 rpm 构建需要我正在尝试构建的内容?