2.7. 将源代码放入 tarball
这部分论述了如何将 第 2.1.1 节 “源代码示例” 中引入的三个 Hello World
程序放在 gzip压缩 tarball 中,这是发布软件以后打包在一起的通用方法。
2.7.1. 将 bello 项目放入 tarball
bello 项目在 bash 中实施 Hello World
。该实施仅包含 bello
shell 脚本,因此生成的 tar.gz
存档除 LICENSE
文件外仅有一个文件。
此流程演示了如何准备要分发的 bello 项目。
先决条件
在这里,这是计划的 0.1
版。
步骤
将所有需要的文件放入一个目录中:
$ mkdir /tmp/bello-0.1 $ mv ~/bello /tmp/bello-0.1/ $ cp /tmp/LICENSE /tmp/bello-0.1/
为分发创建存档并将其移动到
~/rpmbuild/SOURCES/
目录,这是rpmbuild
命令存储构建软件包的默认目录:$ cd /tmp/ $ tar -cvzf bello-0.1.tar.gz bello-0.1 bello-0.1/ bello-0.1/LICENSE bello-0.1/bello $ mv /tmp/bello-0.1.tar.gz ~/rpmbuild/SOURCES/
有关 bash 编写的示例源代码的详情请参考 第 2.1.1.1 节 “使用 bash 编写的 hello World”。
2.7.2. 将 pello 项目放入 tarball
pello 项目使用 Python 实施 Hello World
。该实施仅包含 pello.py
程序,因此生成的 tar.gz
存档除 LICENSE
文件外有一个文件。
此流程演示了如何准备用于分发的 pello 项目。
先决条件
在这里,这是计划的 0.1.1
版本。
步骤
将所有需要的文件放入一个目录中:
$ mkdir /tmp/pello-0.1.2 $ mv ~/pello.py /tmp/pello-0.1.2/ $ cp /tmp/LICENSE /tmp/pello-0.1.2/
为分发创建存档并将其移动到
~/rpmbuild/SOURCES/
目录,这是rpmbuild
命令存储构建软件包的默认目录:$ cd /tmp/ $ tar -cvzf pello-0.1.2.tar.gz pello-0.1.2 pello-0.1.2/ pello-0.1.2/LICENSE pello-0.1.2/pello.py $ mv /tmp/pello-0.1.2.tar.gz ~/rpmbuild/SOURCES/
有关 Python 编写的示例源代码的更多信息,请参阅 第 2.1.1.2 节 “使用 Python 编写 hello World”。
2.7.3. 将 cello 项目放入 tarball
cello 项目使用 C 实施 Hello World
。实施仅包含 cello.c
和 Makefile
文件,因此生成的 tar.gz
存档除了 LICENSE
文件外有两个文件。
补丁文件
不会在程序的归档中发布。构建 RPM 软件包时,RPM 软件包程序应用补丁。补丁和 .tar.gz
存档一起放置在 ~/rpmbuild/SOURCES/
目录中。
此步骤演示了如何准备用于分发的 cello 项目。
先决条件
认为这是程序版本 1.0
。
步骤
将所有需要的文件放入一个目录中:
$ mkdir /tmp/cello-1.0 $ mv ~/cello.c /tmp/cello-1.0/ $ mv ~/Makefile /tmp/cello-1.0/ $ cp /tmp/LICENSE /tmp/cello-1.0/
为分发创建存档并将其移动到
~/rpmbuild/SOURCES/
目录,这是rpmbuild
命令存储构建软件包的默认目录:$ cd /tmp/ $ tar -cvzf cello-1.0.tar.gz cello-1.0 cello-1.0/ cello-1.0/Makefile cello-1.0/cello.c cello-1.0/LICENSE $ mv /tmp/cello-1.0.tar.gz ~/rpmbuild/SOURCES/
添加补丁:
$ mv ~/cello-output-first-patch.patch ~/rpmbuild/SOURCES/
有关使用 C 编写的示例源代码的详情请参考 第 2.1.1.3 节 “使用 C 语言编写的 hello World”。