RPM 构建在 %build 中失败

RPM 构建在 %build 中失败

我正在尝试为旧版本的 Fedora 创建 Samba RPM。互联网上没有可供下载的版本,所以我有源代码。

到目前为止,我有五个标准目录/BUILD、、和。/RPMS/SOURCES/SPECS/SRPMS

这里/SOURCES有源代码,压缩包里
/SPEC文件samba.spec

当我执行 a 时,rpmbuild -v -bb --clean SPECS/samba.spec它在解开球并尝试构建后倒塌。错误是:line 29: autogen.sh : command not found

更具体地说,在我的中%build有:autogen.sh./configuremake

此后,我按照make install部分内容进行安装%install

我哪里做错了?

请注意,手动安装源代码时一切都正常。

删除 ./autogen.sh 后,出现:'/var/tmp/rpm-tmp.BEyARh:第 29 行:./configure:没有此文件或目录。

编辑:啊哈!我想我知道问题所在了。它在根/samba目录中查找./autogen.sh等,而一旦提取 tar 包并将其放入 /BUILD,它应该在 `/samba/source3/ 中查找。我该如何配置它?

答案1

我会尝试做的第一件事就是更换线路

autogen.sh

在你的 .spec 文件中

./autogen.sh

因为 autogen.sh 可能不在您的 PATH 上。将 放在./它前面将告诉 shell 执行该文件,前提是#!顶部有一个 shebang ( )。如果 autogen.sh 的第一行不是这样的#! /bin/bash./autogen.sh您可以尝试

bash autogen.sh

它将明确地将该文件作为 bash 脚本执行。

根据更改后的问题进行编辑:

解决这个问题的一种方法可能是改变

./autogen.sh

./source3/autogen.sh

或者

pushd source3
./autogen.sh
popd

这样就rpm可以找到文件了。不过,我不确定这是否算是“好的”包装。

您还可以更改一些 RPM 设置。有一本很棒的书叫做最大转速Edward C. Bailey 撰写的关于如何创建 RPM 的文章,以及本节可以帮助您配置奇怪的构建设置。

相关内容