技术开发 频道

自动化应用程序构建和发布的过程

    创建应用程序结构

    您需要在每一个操作系统目录中为想要安装的每一个应用程序另外创建一个目录。注意,该目录是明确对应于每一种 OS 的,您应该只创建实际需要的应用程序目录。例如,您可能希望在 Fedora 机器上安装 Perl,但不想在其他机器上安装它。在清单 3 中可以看到一个示例规划:

    清单 3. 一个 OS 目录中的应用程序目录

    drwxrwxrwx   4 mc       staff        512 May 12 12:30 apache/

    drwxrwxrwx   4 root     other        512 Apr 16  2003 assassin/

    drwxrwxrwx   3 501      other        512 Jun 11 10:11 bind/

    drwxrwxrwx   3 root     other        512 Jul 24 15:37 ccache/

    drwxrwxrwx   5 root     other        512 Jun 21 17:12 clamav/

    drwxrwxrwx   6 root     other        512 Jul 25 15:28 cpan/

    drwxrwxrwx   4 root     other        512 Jul 25 12:35 cpanplus/

    drwxrwxrwx   4 root     other        512 Sep  6  2003 cyrus/

    drwxrwxrwx   3 root     other        512 Jun  6 16:29 dhcp/

    drwxrwxrwx   3 root     other        512 Apr 11 15:42 distcc/

    drwxrwxrwx   3 root     other        512 May 11 10:39 eggdrop/

    drwxrwxrwx   3 root     other        512 Apr  9 05:50 ethereal/

    drwxrwxrwx   5 root     other        512 Jun  8 19:12 gawk/

    drwxrwxrwx   2 root     other        512 May 15 08:19 gcc/

    drwxrwxrwx   4 root     other        512 Jul 28  2003 ircd/

    drwxrwxrwx   4 root     other        512 Apr  9 05:44 libpcap/

    drwxrwxrwx   5 root     other        512 Jul 25 13:22 mysql/

    drwxrwxrwx   3 root     other        512 Mar 25 13:07 nmap/

    drwxrwxrwx   3 root     other        512 Nov 21  2003 ogsi-lite/

    drwxrwxrwx   6 root     other        512 Jul 25 13:33 perl/

    drwxrwxrwx   3 root     other        512 Aug 19  2003 php/

    drwxrwxrwx   6 root     other        512 Mar  5 15:09 ppro/

    drwxrwxrwx   3 root     other        512 May 15 09:02 python/

    drwxrwxrwx   4 root     other        512 Apr 22 06:06 razor/

    drwxrwxrwx   3 root     other        512 Aug 24  2003 razorsdk/

    drwxrwxrwx   4 root     other        512 Dec  4  2003 sendmail/

    drwxrwxrwx   3 root     other        512 May 23 09:37 ssh/

    drwxrwxrwx   4 root     other        512 May 11 10:25 tcl/

    drwxrwxrwx   3 root     other        512 Dec 22  2003 tcpwrappers/

    drwxrwxrwx   6 root     other        512 Apr 24 07:13 xmltv/

    您需要再在每一个目录中创建一个或两个结构,这取决于应用程序以及组织和配置您的单独构建的选项。创建的每一个目录将用来保存 live 应用程序(已配置和构建的应用程序版本)。您可以以两种方式进行组织:使用对应每个版本的目录,或者直接使用应用程序版本。

    *对应每个版本的目录:对应于应用程序每个版本的另外一层目录。对那些想要每一个版本创建很多不同构建配置的应用程序来说,这很实用。例如,您可能会创建一个名为 perl-5.9.0/debug-build 的目录,以及另一个名为 perl-5.9.0/std-build 的目录。

    *直接版本目录:目录中的每个子目录都是原始 tarball 所创建的。如果您在所有机器上对给定的 OS 使用相同的配置,那么您可以这样进行组织。

    根据您想如何构建和部署应用程序,可以使用任意一种结构,或者两者都用。只是需要确保您知道每种情况下的结构,因为在开始部署时,您应该知道目录的规划。例如,对于 Apache,我可能要为每个版本创建三四个目录,用来保存调试的不同配置,同时还要有一些用于开发、阶段测试(staging)和产品版本的安装目录。这样得到了如清单 4 中所示的一个规划:

    清单 4. 支持不同活动配置的 Apache 规划

    ./httpd-2.0.46

    ./httpd-2.0.46/staging-build

    ./httpd-2.0.46/devel-build

    ./httpd-2.0.46/prod-build

    ./httpd-2.0.49

    ./httpd-2.0.49/staging-build

    ./httpd-2.0.49/devel-build

    devel-build 目录中包含的目录与解开原始 tarball 时创建的目录相同。通过比较,清单 5 展示了开发机器上的 Perl 的布局,在这台机器上,Perl 的每一个版本都是以标准构建方式安装的。从清单中可以看出,我们有了一个更简单的结构。

0
相关文章