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 版本。

流程

  1. 将所有需要的文件放入一个目录中:

    $ mkdir bello-0.1
    
    $ mv ~/bello bello-0.1/
    
    $ mv LICENSE bello-0.1/
  2. 为分发创建存档:

    $ tar -cvzf bello-0.1.tar.gz bello-0.1
    bello-0.1/
    bello-0.1/LICENSE
    bello-0.1/bello
  3. 将创建的存档移到 ~/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 版本。

流程

  1. 将所有需要的文件放入一个目录中:

    $ mkdir pello-0.1.1
    
    $ mv pello.py pello-0.1.1/
    
    $ mv LICENSE pello-0.1.1/
  2. 为分发创建存档:

    $ 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
  3. 将创建的存档移到 ~/rpmbuild/SOURCES/ 目录中,这是 rpmbuild 命令存储用于构建软件包的文件的默认目录:

    $ mv pello-0.1.1.tar.gz ~/rpmbuild/SOURCES/

3.3.3. 将 cello 程序放入 tar 包中

cello 项目用 C 实现 Hello World。实现仅包含 cello.cMakefile 文件。因此,生成的 tar.gz 存档除了 LICENSE 文件有两个文件。

注意

patch 文件不在存档中随程序一起分发。构建 RPM 时,RPM 软件包管理器会应用补丁。补丁将与 tar.gz 存档一起放在 ~/rpmbuild/SOURCES/ 目录中。

先决条件

  • 假定使用 cello 程序的 1.0 版本。

流程

  1. 将所有需要的文件放入一个目录中:

    $ mkdir cello-1.0
    
    $ mv cello.c cello-1.0/
    
    $ mv Makefile cello-1.0/
    
    $ mv LICENSE cello-1.0/
  2. 为分发创建存档:

    $ 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
  3. 将创建的存档移到 ~/rpmbuild/SOURCES/ 目录中,这是 rpmbuild 命令存储用于构建软件包的文件的默认目录:

    $ mv /tmp/cello-1.0.tar.gz ~/rpmbuild/SOURCES/