我正在尝试为旧版本的 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
,./configure
和make
。
此后,我按照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 的文章,以及本节可以帮助您配置奇怪的构建设置。