如何使用旧的 autoconf/automake 项目打包 RPM

问题描述 投票:0回答:1

我正在尝试打包一个用 C 语言编写并由 autoconf 和 autotools 管理的 systemd 服务的 RPM。当我尝试按照项目 README.md 中的说明使用

sudo make rpm
命令打包 RPM 时,该命令出现错误:

cp: cannot create regular file '/root/rpmbuild/SOURCES': No such file or directory

如何配置

make
目标以查看
/home/rpmbuild/SOURCES
(rpmbuild 实际所在的位置)而不是根目录?接下来$RPM_BUILD_ROOT到底是什么?,我检查了
~/.rpmmacros
,它确实包含了这一行

%_topdir %(echo $HOME)/rpmbuild

所以我不确定我做错了什么。

对于上下文,我在尝试

./bootstrap
之前运行
./configure
sudo make
sudo make install
sudo make rpm

rpm autotools autoconf automake rpmbuild
1个回答
0
投票

这个...

cp: cannot create regular file '/root/rpmbuild/SOURCES': No such file or directory

...表示root用户没有搭建RPM搭建环境。这本身没问题,因为您不应该以 root 身份构建 RPM,就像您不应该以 root 身份构建程序一样。

但是如果您想自己构建这个 RPM,那么您将需要一个自己的 RPM 构建环境。 RedHat 有一些不错的基础文档。您可能不需要经历所有这些,但它很早就在您的主目录中记录了您将需要的 RPM 构建环境,从

~/rpmbuild
开始。如果您已经或愿意安装
rpmdev-setuptree
(来自 rpmdevtools),那么您可以使用它来设置适当的环境,但我通常只是手动创建所需的目录。

我预计您可以通过为自己设置 RPM 构建环境,然后以自己的身份运行

make rpm
来取得进一步的进展。或者,如果您坚持不明智地以 root 身份进行构建,那么首先为 root 设置 RPM 构建环境。

© www.soinside.com 2019 - 2024. All rights reserved.