Postfix的安装方式与其它的软件有些不同,其做为悠久的邮件服务器,它支持众多的特性,包括与第三方软件的交互整合功能。这里对其的编译、安装过程进行了一个简单总结。---------------InstallationofPostfixAddingUsersandGroups--添加用户及其组Be
Postfix的安装方式与其它的软件有些不同,其做为悠久的邮件服务器,它支持众多的特性,包括与第三方软件的交互整合功能。这里对其的编译、安装过程进行了一个简单总结。
---------------
Installation of Postfix
Adding Users and Groups--添加用户及其组
Before you compile the program, you need to create users and
groups that will be expected to be in place during the
installation. Add the users and groups with the following commands
issued by the root user:
groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Postfix Daemon User" -d /var/spool/postfix -g postfix
-s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail
Configuring the Build--编译配置
Postfix的编译安装与其它通用的软件安装不同,它有自己的一套规则。
The Postfix source tree does not contain a configure script,
rather the makefile in the top-level directory contains a makefiles
target that regenerates all the other makefiles in the build tree.
If you wish to use additional software such as a database back-end
for virtual users, or TLS/SSL authentication, you will need to
regenerate the makefiles using one or more of the appropriate
CCARGS and AUXLIBS settings listed below.
Cyrus-SASL
To use Cyrus-SASL with Postfix, use the following arguments:
CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-lsasl2'
OpenLDAP
To use OpenLDAP with Postfix, use the following arguments:
CCARGS='-DHAS_LDAP'
AUXLIBS='-lldap -llber'
Sqlite
To use Sqlite with Postfix, use the following arguments:
CCARGS='-DHAS_SQLITE'
AUXLIBS='-lsqlite3 -lpthread'
MySQL
To use MySQL with Postfix, use the following arguments:
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-lmysqlclient -lz -lm'
PostgreSQL
To use PostgreSQL with Postfix, use the following arguments:
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-lpq -lz -lm'
CDB/TinyCDB
To use CDB or TinyCDB with Postfix, use the following
arguments:
CCARGS='-DHAS_CDB'
AUXLIBS='/libcdb.a'
StartTLS Authentication
To use OpenSSL with Postfix, use the following arguments:
CCARGS='-DUSE_TLS -I/usr/include/openssl/'
AUXLIBS='-lssl -lcrypto'
具体的编译参数和选项选项:
1.AUXLIBS
2.CC
3.CCARGS
4.DEBUG
5.OPT
参数:-I ,-D, -L, -R, -r, -l。各个参数的说明如下:
-I 指明某一包的库文件所在的地方
-D The -D option provides a way to define macros at the time you
compile Postfix. Add-on packages for Postfix require that you
define a particular macro to tell Postfix to include it when
building. For example, if you want to include support for MySQL,
you define the HAS_MYSQL macro:CCARGS='-DHAS_MYSQL'
-L 加入对某一包的额外库的支持。如:AUXLIBS='-L/usr/local/lib'
-l 和-L一块儿使用,具体到某一库。如:AUXLIBS='-L/usr/local/lib
-lmysqlclient'
-R -r
The linker uses an argument to include directories in a runtime
search path for dynamic libraries. The argument differs depending
on your linker and platform. The GNU linker (Linux, FreeBSD) uses
-rpath, as does IRIX. Solaris, on the other hand uses -R, and HP-UX
uses +b. Consult the manpage for your linker, ld(1), to see which
argument you should use to set the runtime library search path.
如:Using the SSL library as an example, if your libssl.so file is
located in /usr/local/lib and you are building Postfix on FreeBSD
or another system that uses rpath, define AUXLIBS as follows:
AUXLIBS='-L/usr/local/lib -rpath/usr/local/lib -lssl'
下面给出一个例子:可以将它保存成shell,如:install.sh文件
#make tidy
# Specify all of our options and supporting libraries
make makefiles \
CCARGS='-DUSE_SASL_AUTH -DHAS_SSL -DHAS_MYSQL -DHAS_LDAP \
-I/usr/local/include/sasl -I/usr/local/ssl/include \
-I/usr/local/include/mysql -I/usr/local/include' \
AUXLIBS='-L/usr/local/lib -L/usr/local/ssl/lib \
-L/usr/local/lib/mysql -L/usr/local/lib \
-lsasl2 -lcrypto -lssl -lmysqlclient -lz -lm -lldap -llber \
-rpath /usr/local/lib/mysql -rpath /usr/local/lib \
-rpath /usr/local/ssl/lib'
To build Postfix, type:
$ sh build.sh
$ make
Installing Postfix--安装
If you have Cyrus SASL and OpenSSL installed, install Postfix by
running the following commands:
make CCARGS="-DNO_NIS -DUSE_TLS -I/usr/include/openssl/
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
AUXLIBS="-lssl -lcrypto
-lsasl2"
\
makefiles &&
make
This package does not come with a useful test suite.
Now, as the root user:
sh postfix-install -non-interactive \
daemon_directory=/usr/lib/postfix \
manpage_directory=/usr/share/man \
html_directory=/usr/share/doc/postfix-2.10.0/html
\
readme_directory=/usr/share/doc/postfix-2.10.0/readme
Command Explanations--指令解析
make makefiles: This command rebuilds the makefiles throughout
the source tree to use the options contained in the CCARGS and
AUXLIBS variables.
-DNO_NIS: This option disables building Network Information
Service/Yellow Pages support. The RPC implementation in Glibc (on
which NIS/YP depends) is deprecated.
对于使用'-DNO_'这样的选项是为了在默认的选项中禁止掉一些组件,像nis、Berkeley
DB、ipv6、等这些没有使用的功能块。
sh postfix-install -non-interactive: This keeps the install
script from asking any questions, thereby accepting default
destination directories in all but the few cases. If the
html_directory and readme_directory options are not set then the
documentation will not be installed.
---------------
Configuring Postfix--配置
Config Files
/etc/aliases, /etc/postfix/main.cf, and /etc/postfix/master.cf
Configuration Information
Create (or append to an existing) /etc/aliases with the
following command. Change for your non-root login
identity so mail addressed to root can be forwarded to you. As the
root user:
cat >> /etc/aliases <<"EOF"
# Begin /etc/aliases
MAILER-DAEMON: postmaster
postmaster: root
root:
# End /etc/aliases
EOF
To protect an existing /etc/aliases file, the above command
appends these aliases to it if it exists. This file should be
checked and duplicate aliases removed, if present.
Note
The /etc/postfix/main.cf and /etc/postfix/master.cf files must be
personalized for your system. The main.cf file needs your fully
qualified hostname. You will find that main.cf is self documenting,
so load it into your editor to make the changes you need for your
situation.
Note
Postfix can also be set up to run in a chroot jail. See the file in
the source examples/chroot-setup/LINUX2 for details.
If you have an existing configuration, you can run the postfix
utility to add any necessary definitions to your existing files. As
the root user:
/usr/sbin/postfix upgrade-configuration
Before starting Postfix, you should check that your
configuration and file permissions will work properly. Run the
following commands as the root user to check and start your Postfix
server:
/usr/sbin/postfix check &&
/usr/sbin/postfix start
Boot Script--启动脚本
To automate the running of Postfix at startup, install the
/etc/rc.d/init.d/postfix init script included in the
blfs-bootscripts-20130721 package.
make install-postfix
---------------
Contents--所产生的文件
Installed Programs:
mailq, newaliases, postaliases, postcat, postconf, postdrop,
postfix, postkick, postlock, postlog, postmap, postmulti,
postqueue, postsuper and sendmail
Installed Libraries:
None
Installed Directories:
/etc/postfix, /usr/lib/postfix, /usr/share/doc/postfix-2.10.0,
/var/lib/postfix and /var/spool/postfix
Short Descriptions--简短描述
mailq--A symlink to sendmail.
newaliases--A symlink to sendmail.
postaliases--is a utility for Postfix alias database
maintenance
postcat--Prints the contents of files from the Postfix queue in
human readable format.
postconf--Displays or changes the value of Postfix configuration
parameters.
postdrop--Creates a file in the maildrop directory and copies
its standard input to the file.
postfix--is the Postfix control program.
postkick--Sends requests to the specified service over a local
transport channel.
postlock--Locks a mail folder for exclusive use, and executes
commands passed to it.
postlog--A Postfix-compatible logging interface for use in, for
example, shell scripts.
postmap--Creates or queries one or more Postfix lookup tables,
or updates an existing one.
postmulti--is the Postfix multi-instance manager. It allows a
system administrator to manage multiple Postfix instances on a
single host.
postqueue--The Postfix user interface for queue management.
postsuper--The Postfix user interface for superuser queue
management.
sendmail--is the Postfix to Sendmail compatibility
interface.
---------------