《Life with qmail》中Install部分的翻译
2.qmail的安装
这部分用来指导qmail的安装。如果你是经验丰富的系统管理员,你可以依据qmail源代码中的INSTALL文件中的安装向导来安装qmail.该安装向导是qmail官方的安装向导,他们比 Lift with qmail中的安装向导复杂,并且,他们假定读者是经验丰富的系统和邮件管理员。另外,他们也是过时的并且不被Bernstein推荐采用。
-----------------------------------------------------------------------------------------------------------------
注:
如果你选择安装使用下列向导,你为了熟悉全面过程应该通读盖章节的每个部分。
----------------------------------------------------------------------------------------------------------------
2.1.安装发布
2.1.1.二进制与源代码的比较
由于二进制版本受到qmail许可的限制,通常都是从源代码安装。如果你不精通源代码和二进制之间的区别,想象被你预定的大馅饼。“二进制”版本的大馅饼送到后就可以吃。“源代码”版本的大馅饼将包括相应的配套元件:面粉,酵母,乳酪,辣酱油,上面的修饰以及指导你做大馅饼的方法等。源代码安装是给你的更多一点的工作,但是,如果你慎重地遵从操作向导,结果是相同的——或者,更改善——。自己的烤的大馅饼将更新鲜,并且你能根据自己的爱好来调整上面的修饰,你还可以从中获得很多关于馅饼的知识,并且了解了它的“工作”机制。
2.1.2. Tarball(手工安装包) 与OS_specific(自动安装包)的比较
一些操作系统提供了使源代码自动自动安装的机制包。还回到大馅饼的例子,他们提供一个包裹馅饼成分和制作方法的包,你仅仅通过操作你个按钮就可以制成馅饼。
听起来挺不错的,不过一般不采用这种方法?
在实践中,它可能是个好的想法。首先聚集这些包相当难,并且,如果不给他们设置他们将不会做任何事情。他们是软件,并且,象任何软件那样,他们可能有故障。但是,即使他们是免费的,他们提供的便利也将算在成本来中。你失去了自己烤大馅饼的大部分优点:调整馅饼顶部装饰的能力,有关作馅饼的知识和馅饼的工作机制。
如果将qmail比作大馅饼,那么自己动手去安装这这种方法还是可行的。它是:qmail系统是个十分复杂的系统,安装者和维护者要使其正常工作需要十分了解该系统。自动安装版的qmail比用户版的更容易安装,但是,用户版的更容易成形,处理。你一旦安装了qmail系统,你将会有很多机会来重新配置它或者查找它没有按照你设想的方式工作的原因。由于这个原因,我建议使用源代码手工安装,而不用红帽子的“RPM"包或其他的自动安装包。
2.2.安装准备
在安装qmail之前,尤其是第一次安装qmail,有一些事情需要你认真考虑。
如果可能,把qmail安装在“双机”系统上。这将会给你一个修正错误而不至于失去重要的邮件或者打断对你的用户提供的邮件服务的机会。如果你没有备份,并且你的系统已经安装sendmail,smail或一些其他的MTA的邮件系统,你能不干扰地安装或测试qmail而不干扰其他已经存在的邮件系统。当把别的MTA的邮件系统转移为qmail是,即使你又一些qmail的经验,建议你还是做个计划列表。
2.3.系统要求
qmail将安装并运行在UNIX或类UNIX系统中,但是,也有一些必要条件:
大约10兆的硬盘空间。在安装后,你能释放4兆空间通过除掉目的文件。
一个包含C编译器,系统头函数和库的完全的支持C语言编译的系统。安装用法将会让你知道你怎样得到这些必要部件的方法。
一些用来保存二进制文件,文档和配置文件的空间
为运行行列准备足够的磁盘空间。小的单用户系统仅仅需要2兆字节。大的服务器则需要2千兆位组。
一个兼容的操作系统。以便UNIX的大部分工具可正常运行。在源代码中的EADME文件有兼容版本的列表。
强烈推荐使用一个域名服务器(DNS).
缺少上述的任一条件,qmail能仅仅能给已经在它的邮件传输路径的配置文件中配置过的远程系统送信。
妥当的网络连接。qmail必须安装在连通功能很好的系统上,因此,你可能不会再一个只有28.8k的连接速度的邮件列表服务器上安装qmail。
serialmail是为使qmail能够稳定的运行在连通性能不太好的机器上而设定的。有关相关的信息附录中关于serialmail的部分。
2.4.下载源代码
好,下载你的系统已经满足安装qmail准备好了的必要条件了。
第一步 下载qmail和任何别的辅助工具的源代码。
你将需要qmail,当然,你还应该得到ucspi-tcp和daemontools :
qmail, ftp://cr.yp.to/software/qmail-1.03.tar.gz
ucspi-tcp, ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
daemontools, ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
通过你的浏览器或通过ftp工具来获得这些源文件。
-----------------------------------------------------------------------------------------------------------------
注:
如果任何一个连接失败了,可能适应为该数据包已经被更新了。
在这种情况下,你应该去http://cr.yp.to/software.html,下载最新版本。
更新后的版本可能与其他的工具不兼容,一定要阅读发布版本中的“从老版本中的更新”部分
----------------------------------------------------------------------------------------------------------------
2.5.构建源代码
2.5.1.验证构建环境
你需要做的第一件事情就是确保编译所需的工具存在。
如何来确定编译所依赖的工具是否存在呢?虽然该工具不一定存在,最简单的方法就是试试它。
--------------------------------------------------------------------------------------------------------------
注:
如果每个试验都能通过,你能停下来,跳到到下一部分。
--------------------------------------------------------------------------------------------------------------
At a command line prompt, type cc and press Enter:
在命令行提示符下,输入cc和并且敲回车:
$ cc
cc: No input files specified
$
如果你得到类似的回答,在你的路有C编译器。
如果没有,也并不意味着你没有安装。可能是你的路径里没有包含该路径。当然,也可能是你根本就没有安装。
试试这些:
/usr/bin/cc
/usr/bin/gcc
/usr/local/bin/cc
/usr/local/bin/gcc
/usr/ccs/bin/cc
如果这些都不能运行,你就要试试其他平台的发式。根据你的操作系统,
在提示符下输入下面命令之一
Red Hat Linux:(PC机用的免费UNIX操作系统) :
rpm -qa | grep gcc or rpm -qa | grep egcs
FreeBSD(一种可免费使用的UNIX操作系统):
includes GCC by default
如果你不能发现已经安装了C编译器,那么你就要去找到并安装它。
和你的操作系统销售公司或其他的操作系统支持频道联络。
在这一部分中我们将介绍编译qmail的实际步骤--通往手工剪切-复制的方式,该步骤可以省略。
2.5.2.打开源文件包
如果你要进行这项步骤,你就已经有了正常运行的C编译器和复制源代码的工具,下一步,复制或者移动源文件包到你的工作目录中,建议qmail放在/usr/local/src目录下,ucspi-tcp 和 daemontools 放在/package目录下。
在这一时间,你应该变成root(超级用户)的身份,如果你还不是的话。
执行下面命令:
su
umask 022
mkdir -p /usr/local/src
mv qmail-1.03.tar.gz ucspi-tcp-0.88.tar.gz /usr/local/src
mkdir -p /package
chmod 1755 /package
现在你能展开源文件包:
cd /usr/local/src
gunzip qmail-1.03.tar.gz
tar xpf qmail-1.03.tar
gunzip ucspi-tcp-0.88.tar.gz
tar xpf ucspi-tcp-0.88.tar
rm *.tar #注释:可选,除非空间紧张
cd /package
gunzip daemontools-0.76.tar.gz
tar xpf daemontools-0.76.tar
rm *.tar # 注释:同上
现在源文件的目录路径为 /usr/local/src/qmail-1.03, /usr/local/src/ucspi-tcp-0.88, 和 /package/admin/daemontools-0.76.
2.5.3.创建目录
由于qmail的安装程序将会创建所需要的子目录,所以你仅仅需要制作qmail的“主”文件夹就行了
mkdir/var/qmail
好,继续下一部分。
------------------------------------------------------------------------------------------------------------------
注:
如果你想在其他目录(不是/var)中安装qmail,那么你可以通过在/var/qmail中创建系统连接来实现。
例如:
一个分布式的设计将通过下面命令被创建:
mkdir /var/qmail
ln -s /usr/man /var/qmail/man
mkdir /etc/qmail
ln -s /etc/qmail /var/qmail/control
ln -s /usr/sbin /var/qmail/bin
--------------------------------------------------------------------------------------------------------------
2.5.4.创建用户和组
创建必要的用户和组的最简单的方法是制作小的脚本文件来帮你创建。
在源文件夹中你将发现被叫做INSTALL.ids的文件。
它包括支持许多平台的命令行,所以,能够容易快速地把它复制为另一个文件并编辑。
cd /usr/local/src/qmail-1.03 cp INSTALL.ids IDS
然后,使用你喜欢的编辑器,删除你不需要的那些部分。
例如,下面是IDS为FreeBSD(一种可免费使用的UNIX操作系统)系统编辑之后的内容:
pw groupadd nofiles
pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
pw groupadd qmail
pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
然后运行它,执行chmod来使它可实行,或者用sh程序运行它:
第一个方式:
chmod 700 IDS
./IDS
第二个方式:
/bin/sh IDS
当脚本运行结束的时候,全部都你的用户和组都已经被创建,你可以继续进行下一部分。
但是,如果你的系统不被编入INSTALL.ids,你该做什么呢?
你将必须用手工创建他们。
打开你喜欢的编辑器并且编辑/etc/group
你需要追加下列2行在文件的末尾:
qmail:*:2107:
nofiles:*:2108:
-------------------------------------------------------------------------------------------------------------------
注:
确认2107和2108不已经被使用。
如果他们已经被使用,请选其他不被使用的数字。
--------------------------------------------------------------------------------
下一步,使用vipw(大部分的系统有它,或者用你的编辑器编辑文件/etc/passwd)追加下面内容:
alias:*:7790:2108::/var/qmail/alias:/bin/true
qmaild:*:7791:2108::/var/qmail:/bin/true
qmaill:*:7792:2108::/var/qmail:/bin/true
qmailp:*:7793:2108::/var/qmail:/bin/true
qmailq:*:7794:2107::/var/qmail:/bin/true
qmailr:*:7795:2107::/var/qmail:/bin/true
qmails:*:7796:2107::/var/qmail:/bin/true
-----------------------------------------------------------------------------------------------------------------
注:
确认7790-7796不被使用,并且2107和2108是同一个组的id号。
如果这些UID的某一个已经被使用,选不正被使用的数字。
---------------------------------------------------------------------------------------------------------------
你不比加这些行到这些文件的末尾,这是解释它的最简单的方法。
现在准备好了,继续前进下一部分。
2.5.5.开始构建
现在你能开始构建qmail了。改变目录到/usr/local/src/qmail-1.03目录下,然后该是构建:
cd /usr/local/src/qmail-1.03
在验证构建环境部分中,你得到了你的C编译器。
如果它不被叫做cc,或者它在的文件夹没在你的路径环境变量中,你将需要编辑conf-cc和conf-ld。
确保你的编译程序是gcc,并且,它在你的PATH(环境变量)中。
仅仅编辑conf-cc和conf-ld,用“gcc”替换“cc”。
现在输入下面命令就行了:
make setup check
在编译完后,你将需要配置你的邮件。
提供了两个脚本使得这工作更简单。
如果你的DNS已经配置好了,这手稿应该是你在这一点上需要的全部:
./config
If, for some reason, config can't find your hostname in DNS, you'll have to run the config-fast script:
如果由于某种原因配置文件不能在域名服务器(DNS)中发现你的主机名称,你将必须与运行config-fast脚本程序:
./config-fast 你的主机全名
例如,你的域名是example.com,并且如果你的计算机的主机名称是dolphin,你的config-fast命令将为:
./config-fast dolphin.example.com
现在qmail被安装在你的系统上,准备好即将运行!
下一部分将一步一步指导你启动和运行qmail.
2.6.安装ucspi-tcp
非常简单,你展开qmail,ucspi-tcp和daemontools 的源程序包。
现在改变目录到ucspi-tcp文件夹:
cd /usr/local/src/ucspi-tcp-0.88
在构建部分中,如果你修改了conf-cc和conf-ld文件,在这里做相同的处理。
接着,做:
make make setup check
就这样,ucspi-tcp被成功安装。
2.7.安装daemontools
改变目录到文件夹daemontools:
cd /package/admin/daemontools-0.76
再次,如果你在安装qmail和ucspi-tcp时修改了conf-cc和conf-ld文件,,你在这里将需要做相同的变化。
接着,做:
package/install
在BSD系统上(没有文件 /etc/inittab),你将需要重启系统来运行svscan来管理运行这些后台工具。
用 "ps -ef | grep svscan" 或 "ps waux | grep svscan" 来验证svscan是否运行。
附录:只翻译《Life with mail》中第二章(安装)的1-7节。