linux - 创建二进制包以在 Linux 中分发所需的步骤

标签 linux distribution fedora packaging rpm

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

我当前的项目包含与该用户类似的格式(Packaging proprietary software for Linux) 我在哪里

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

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

我正在查看此网站 (rpm tutorial) 的教程

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

但我不知道如何设置 SOURCES 目录。该教程指出( here )我应该创建一个 tarball 并将所有源文件放入其中并放入 SOURCE 目录中。在我的例子中,源文件是什么?

最佳答案

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

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

这需要几次迭代才能正确。之后,我通过重建 RPM 来跟踪上游包(为了方便起见,我将所有内容都打包在 SRPM 中,其中“源”部分有点用词不当……)

关于linux - 创建二进制包以在 Linux 中分发所需的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15623834/

相关文章:

java - Scala 类文件与 Java 类文件

r - R中的多元K-S检验

java - 将默认 Java VM 更改为客户端

ssl - 验证 SSL 证书时出现问题

linux - 在 x86 Linux 上调试 SIGBUS

linux - libpcap 是通过 socket API 实现的吗?

linux - 在 Mac OS X 上使用 AWK 拆分文件

algorithm - 给定数字集和区间的分布算法

linux - curl:(6)无法解析主机:google.com;名称或服务未知

linux - 返回文件树目录深度的递归函数