创建应用程序结构
您需要在每一个操作系统目录中为想要安装的每一个应用程序另外创建一个目录。注意,该目录是明确对应于每一种 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 的每一个版本都是以标准构建方式安装的。从清单中可以看出,我们有了一个更简单的结构。