0

我对如何使用我刚刚创建的项目(已经编译的二进制文件)中的 rpmbuild 创建一个完整的二进制包有点困惑。

我当前的项目包含与此用户类似的格式(为 Linux 打包专有软件)我有

  • foo(二进制)
  • 数据
  • foo.sh

libs将包含项目所需的所有共享库,而foo.sh是一个将 LD_LIBRARY_PATH 设置为包含libs的脚本。因此,用户将执行foo.sh并且程序应该启动。

我正在看这个网站的教程(rpm 教程

我知道创建一个 rpm 我创建一个构建区域使用rpmdev-setuptree 我可以创建一个规范文件使用cd ~/rpmbuild/SPECS; rpmdev-newspec foo,如果我有一个好的 SOURCES 文件夹,我可以使用它来构建它rpmbuild -ba foo.spec

但我不知道如何设置 SOURCES 目录。教程说明(这里)我应该创建一个 tarball 并将我的所有源文件放在其中并放在 SOURCE 目录中。在我的情况下,源文件是什么?

4

1 回答 1

0

您正在尝试从已有的二进制文件创建 RPM?在这种情况下,您可以将整个构建内容留在 SPEC 文件之外,并且您需要一个 SOURCE 目录来保存您拥有的捆绑包,%prep下面描述的步骤将从这里获取它们。在我从 zip 文件构建的二进制包中,我做了:

  • 标题,名称,版本,由我撰写/抄自原件的描述
  • 资料来源:下载 Linux 软件包的原始位置,官方文档,...
  • %prep:只需解压不同的部分,删除一些冗余文件,...
  • %build: 没事做
  • %install:手动创建相关目录$RPM_BUILD_ROOT,复制文件install,复制/创建配置文件,...
  • %clean: 吹走$RPM_BUILD_ROOT
  • %files:所有已安装文件的详尽列表。

这需要几次迭代才能正确。之后我通过重建我的 RPM 来遵循上游包(方便我将所有东西打包在一个 SRPM 中,其中 Source 部分有点用词不当......)

于 2013-03-25T20:27:46.577 回答