我对如何使用 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/