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

时间:2013-03-25 20:11:33

标签: 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创建一个spec文件,如果我有一个好的SOURCES文件夹,我可以使用rpmbuild -ba foo.spec

构建它

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

1 个答案:

答案 0 :(得分:0)

您是否尝试从已经存在的二进制文件创建RPM?在这种情况下,您可以将整个构建内容从SPEC文件中删除,并且您需要一个SOURCE目录来保存您所拥有的软件包,下面描述的%prep步骤将从此处获取它们。 在一个二进制包中我从zip文件构建了一段时间,我做了:

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

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