---------------
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='</path/to/CDB>/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
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 <LOGIN> 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: <LOGIN>
# 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.
---------------