rpm + rpm -ba 构建源代码

rpm + rpm -ba 构建源代码

当我执行 rpm -ba /usr/src/redhat/SPECS/my_spec.spec

如此处所述,输出不包含以下内容:/root/rpmbuild/SRPMS/test.sh-6.2-2.rpm,请告知原因?

在 /usr/src/redhat/RPMS 下备注我没有看到 test.sh-6.2-2.rpm

 [root@linux /usr/src/redhat/SOURCES]#  rpm -ba   /usr/src/redhat/SPECS/my_spec.spec
 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/test.sh
 Wrote: /root/rpmbuild/SRPMS/test.sh-6.2-2.src.rpm

我的规格文件

Summary: An example tool. To show a simple rpm build of the tool.
Name: test.sh
Version: 6.2
Release: 2
Source:/root/test.sh
Group: Development/Debuggers
BuildRoot:/var/tmp/test.sh
License: OtherLicense
%description

答案1

尝试使用 rpmbuild 命令。我认为 rpm 没有“-ba”选项。

答案2

您没有指定所使用的 RedHat 或 CentOS Linux 版本。该选项已在多年前rpm -ba被删除。因此,假设您使用的是 RHEL 5.x 或 CentOS 5.x 或更高版本,您需要使用命令来构建您的 RPMrpmrpmbuild

然而:看来您在研究 rpm 时参考了某种书籍或手册。如果此信息源建议使用rpm -ba来构建 RPM,则它已经过时了。我认为您最好找一本较新的书籍或手册,因为 RPM 近年来已经发生了很大的变化。您可以从以下开始rpmbuild 手册页或查看可用文档列表在 RPM 网站上。

答案3

spec 文件似乎已损坏,build_root 应该是一个目录。源是一个裸文件名,而不是完整路径。等等。

安装 rpm-build,该软件包为创建 RPM 提供了大量基础结构。如果您在 {x,}emacs 中打开 xyz.spec,它会打开一个模板(不知道是否适用于 vim 或类似的东西)。Fedora RM 指南是必读内容。它有助于获取源包(选择一些简单、独立的包,如 bison 或 git;希望您已经知道如何构建这些包)并剖析其源 RPM。

相关内容