Red Hat Training
A Red Hat training course is available for RHEL 8
3.3. 将源代码放入 tar 包
tar 包是带有 .tar.gz
或 .tgz
后缀的存档文件。将源代码放入 tar 包是发布软件来为分发稍后进行打包的常用方法。
在以下部分中,了解如何将 三个 Hello World
程序的每个版本 放在 gzip 压缩的 tar 包中:
3.3.1. 将 bello
程序放入 tar 包中
bello 项目使用 Bash 实现 Hello World
。该实现仅包含 bello
shell 脚本。因此,生成的 tar.gz
存档除了 LICENSE
文件只有一个文件。
先决条件
-
假定使用
bello
程序的0.1
版本。
流程
将所有需要的文件放入一个目录中:
$ mkdir bello-0.1 $ mv ~/bello bello-0.1/ $ mv LICENSE bello-0.1/
为分发创建存档:
$ tar -cvzf bello-0.1.tar.gz bello-0.1 bello-0.1/ bello-0.1/LICENSE bello-0.1/bello
将创建的存档移到
~/rpmbuild/SOURCES/
目录中,这是rpmbuild
命令存储用于构建软件包的文件的默认目录:$ mv bello-0.1.tar.gz ~/rpmbuild/SOURCES/
3.3.2. 将 pello
程序放入 tar 包中
pello 项目使用 Python 实现 Hello World
。该实现仅包含 pello.py
程序。因此,生成的 tar.gz
存档除了 LICENSE
文件只有一个文件。
先决条件
-
假定使用
pello
程序的0.1.1
版本。
流程
将所有需要的文件放入一个目录中:
$ mkdir pello-0.1.1 $ mv pello.py pello-0.1.1/ $ mv LICENSE pello-0.1.1/
为分发创建存档:
$ tar -cvzf pello-0.1.1.tar.gz pello-0.1.1 pello-0.1.1/ pello-0.1.1/LICENSE pello-0.1.1/pello.py
将创建的存档移到
~/rpmbuild/SOURCES/
目录中,这是rpmbuild
命令存储用于构建软件包的文件的默认目录:$ mv pello-0.1.1.tar.gz ~/rpmbuild/SOURCES/
3.3.3. 将 cello 程序放入 tar 包中
cello 项目实现 C 编写的 Hello World
。实现仅包含 cello.c
和 Makefile
文件。因此,生成的 tar.gz
存档除了 LICENSE
文件有两个文件。
补丁
文件不随程序一起在存档中分发。构建 RPM 时,RPM 软件包管理器应用补丁。补丁将与 tar.gz
存档一起放在 ~/rpmbuild/SOURCES/
目录中。
先决条件
-
假定使用
cello
程序的1.0
版本。
流程
将所有需要的文件放入一个目录中:
$ mkdir cello-1.0 $ mv cello.c cello-1.0/ $ mv Makefile cello-1.0/ $ mv LICENSE cello-1.0/
为分发创建存档:
$ 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
将创建的存档移到
~/rpmbuild/SOURCES/
目录中,这是rpmbuild
命令存储用于构建软件包的文件的默认目录:$ mv /tmp/cello-1.0.tar.gz ~/rpmbuild/SOURCES/