ubuntu-qmail安装配置详解(step by step)(1)

一、简介

Qmail的特点

  • 安全性 为了验证Qmail的安全性,Qmail的支持者甚至出资$1000悬赏寻找Qmail的安全漏洞,一年以后,该奖金没有被领取,而被捐献给自由软件基金会。目前,Qmail的作者也出资$500来寻求Qmail的安全漏洞。
  • 速度:Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一台486一天上能处理超过10万封邮件,起支持并行投递。Qmail支持邮件的并行投递,同时可以投递大约20封邮件。目前邮件投递的瓶颈在于SMTP协议,通过STMP向另外一台互联网主机投递一封电子邮件大约需要花费10 多秒钟。Qmail的作者提出了QMTP(Quick Mail Transfer Protocol)来加速邮件的投递,并且在Qmail中得到支持。Qmail的设计目标是在一台16M的机器上最终达到每天可以投递大约百万级数目的邮件。
  • 可靠性:为了保证可靠性,Qmail只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。
  • 特别简单的虚拟域管理,甚至有一个第三方开发的称为vpopmail的add-on来支持虚拟POP域。使用这个软件包,POP3用户不需要具有系统的正式帐户。
  • 使用ezmlm支持用户自控制的邮件列表功能。
  • 邮件用户和系统帐户隔离,为用户提供邮件帐户不需要为其设置系统帐户,从而增加了安全性。

Qmail是一种可以完全替代Sendmail-binmail体系的新一代Unix邮件系统.Qmail与Sendmail比起来有很多特性,包括:
安全----Qmail将Mail处理过程分为多个过程,尽力避免用root用户运行.同时Qmail禁止对特权用户(root,deamon等)直接发 信.
可靠----Qmail的直接投递保证Email在投递过程中不会丢失.Qmail同时支持新的更可靠的信箱格式Maildir,保证系统在 突然崩溃情况下不至破坏整个信箱.
高效----在运行于奔腾的BSD/OS上,Qmail每天可以轻松的投递200000封信件.
简单----Qmail要比其他的Internet Mail系统小得多.Qmail通过统一的向前机制完成forwarding,alias和maillist等功能,Qmail使用简单高效队列来处理投递.Qmail-smtpd可以由inetd启动,节省了一定资源.
Qmail支持: host and user masquerading 
full host hiding 
virtual domains 
null clients 
list-owner rewriting 
relay control 
double-bounce recording 
arbitrary RFC 822 address lists 
cross-host mailing list loop detection 
2.2 所需资源
2.2.1 所需包
qmail-1.03.tar.gz Qmail基本系统包
ucspi-tcp-0.88.tar.gz tcpserver服务程序
daemontools-0.70.tar.gz 监视工具
checkpassword-0.90.tar.gz pop3验证用户程序
vpopmail-4.9.8.tar.gz 虚拟域用户pop3支持
vqsignup-0.4 web方式用户注册
sqwebmail-1.2.4.tar.gz webmail
qmailadmin-0.42.tar.gz 虚拟域web方式管理
ezmlm-0.53.tar.gz 邮件列表管理
autorespond-1.0.0.tar.gz 自动回复程序
2.2.2 下载网址
http://www.qmail.org
http://www.inter7.com/qmail

二、下载qmail

root@ubuntu-sdp:/opt# wget http://cr.yp.to/software/qmail-1.03.tar.gz
--2010-02-10 09:13:06--  http://cr.yp.to/software/qmail-1.03.tar.gz
Resolving cr.yp.to... 131.193.36.21
Connecting to cr.yp.to|131.193.36.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 220668 (215K) [application/x-gzip]
Saving to: `qmail-1.03.tar.gz'

100%[===================================================================================>] 220,668      115K/s   in 1.9s   

2010-02-10 09:13:09 (115 KB/s) - `qmail-1.03.tar.gz' saved [220668/220668]

root@ubuntu-sdp:/opt# tar -xf qmail-1.03.tar.gz

三、查看glibc版本号

root@ubuntu-sdp:/opt# cd qmail-1.03
root@ubuntu-sdp:/opt/qmail-1.03# dpkg -l|grep libc6
ii  libc6                               2.10.1-0ubuntu16                  GNU C Library: Shared libraries
ii  libc6-dev                           2.10.1-0ubuntu16                  GNU C Library: Development Libraries and Hea
ii  libc6-i686                          2.10.1-0ubuntu16                  GNU C Library: Shared libraries [i686 optimi

大于2.3.1因此必须下载补丁

root@ubuntu-sdp:/opt/qmail-1.03# cd ..
root@ubuntu-sdp:/opt# wget http://djbware.csi.hu/patches/qmail-1.03.errno.patch
--2010-02-10 09:18:51--  http://djbware.csi.hu/patches/qmail-1.03.errno.patch
Resolving djbware.csi.hu... 141.225.8.55
Connecting to djbware.csi.hu|141.225.8.55|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1303 (1.3K) [text/plain]
Saving to: `qmail-1.03.errno.patch'

100%[===================================================================================>] 1,303       --.-K/s   in 0.005s 

2010-02-10 09:18:52 (261 KB/s) - `qmail-1.03.errno.patch' saved [1303/1303]

安装补丁
root@ubuntu-sdp:/opt# patch -p0 < qmail-1.03.errno.patch
patching file qmail-1.03/cdb_seek.c
patching file qmail-1.03/dns.c
patching file qmail-1.03/error.3
patching file qmail-1.03/error.h
root@ubuntu-sdp:/opt#


四、下载0.0.0.0补丁

root@ubuntu-sdp:/opt# wget http://suspectclass.com/~sgifford/qmail/qmail-0.0.0.0.patch
--2010-02-10 09:35:39--  http://suspectclass.com/~sgifford/qmail/qmail-0.0.0.0.patch
Resolving suspectclass.com... 208.20.225.101
Connecting to suspectclass.com|208.20.225.101|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.suspectclass.com/~sgifford/qmail/qmail-0.0.0.0.patch [following]
--2010-02-10 09:35:40--  http://www.suspectclass.com/~sgifford/qmail/qmail-0.0.0.0.patch
Resolving www.suspectclass.com... 208.20.225.101
Connecting to www.suspectclass.com|208.20.225.101|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: /sgifford/qmail/qmail-0.0.0.0.patch [following]
--2010-02-10 09:35:42--  http://www.suspectclass.com/sgifford/qmail/qmail-0.0.0.0.patch
Connecting to www.suspectclass.com|208.20.225.101|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 450 [text/plain]
Saving to: `qmail-0.0.0.0.patch'

100%[===================================================================================>] 450         --.-K/s   in 0.002s 

2010-02-10 09:35:43 (283 KB/s) - `qmail-0.0.0.0.patch' saved [450/450]

安装补丁

root@ubuntu-sdp:/opt# patch -p0 <qmail-0.0.0.0.patch
patching file qmail-1.03/ipme.c
root@ubuntu-sdp:/opt#

五、SMTP认证补丁

root@ubuntu-sdp:/opt# wget http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
--2010-02-10 09:39:20--  http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31.tar.gz
Resolving members.elysium.pl... 212.106.4.50
Connecting to members.elysium.pl|212.106.4.50|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8798 (8.6K) [application/x-gzip]
Saving to: `qmail-smtpd-auth-0.31.tar.gz'

100%[===================================================================================>] 8,798       12.9K/s   in 0.7s   

2010-02-10 09:39:22 (12.9 KB/s) - `qmail-smtpd-auth-0.31.tar.gz' saved [8798/8798]

deepfuture@ubuntu-sdp:/opt$ sudo tar -xf qmail-smtpd-auth-0.31.tar.gz
[sudo] password for deepfuture:
deepfuture@ubuntu-sdp:/opt$ cd qmail-smtpd-auth-0.31
deepfuture@ubuntu-sdp:/opt/qmail-smtpd-auth-0.31$ ls
auth.patch  base64.c  base64.h  CHANGES  README.auth

deepfuture@ubuntu-sdp:/opt/qmail-smtpd-auth-0.31$ sudo cp base64.h base64.c auth.patch ../qmail-1.03/

deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo patch <auth.patch
patching file Makefile
patching file TARGETS
patching file qmail-smtpd.8
patching file qmail-smtpd.c

六、qmail-queue队列补丁

deepfuture@ubuntu-sdp:/opt/qmail-1.03$ cd ..

deepfuture@ubuntu-sdp:/opt$ sudo wget http://www.qmail.org/qmailqueue-patch
--2010-02-10 10:39:23--  http://www.qmail.org/qmailqueue-patch
Resolving www.qmail.org... 192.203.178.37
Connecting to www.qmail.org|192.203.178.37|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2510 (2.5K) [message/rfc822]
Saving to: `qmailqueue-patch'

100%[===================================================================================>] 2,510       --.-K/s   in 0s     

2010-02-10 10:39:26 (89.8 MB/s) - `qmailqueue-patch' saved [2510/2510]

deepfuture@ubuntu-sdp:/opt$ cd qmail-1.03

deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo patch -p1 <../qmailqueue-patch
patching file Makefile
Hunk #1 succeeded at 1487 (offset 4 lines).
patching file qmail.c

七、建立qmail安装目录

deepfuture@ubuntu-sdp:/opt$ sudo mkdir /var/qmail

八、进入源代码目录,增加用户,进行安装并配置域名

deepfuture@ubuntu-sdp:/var$ cd /opt/qmail-1.03
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ ls
addresses.5     coe.3           fd_move.3        maildir.c        qmail-inject.8   remoteinfo.c     subfdouts.c
alloc.3         coe.c           fd_move.c        maildir.h        qmail-inject.c   remoteinfo.h     subgetopt.3
alloc.c         coe.h           fifo.c           maildirmake.1    qmail-limits.9   REMOVE.binmail   subgetopt.c
alloc.h         commands.c      fifo.h           maildirmake.c    qmail-local.8    REMOVE.sendmail  subgetopt.h
alloc_re.c      commands.h      fifo_make.3      maildirwatch.1   qmail-local.c    scan_8long.c     substdi.c
auth.patch      condredirect.1  FILES            maildirwatch.c   qmail-log.5      scan.h           substdio.c
auto_break.h    condredirect.c  find-systype.sh  mailsubj.1       qmail-lspawn.8   scan_ulong.c     substdio_copy.c
auto-gid.c      conf-break      fmt.h            mailsubj.sh      qmail-lspawn.c   SECURITY         substdio.h
auto-int8.c     conf-cc         fmtqfn.c         make-compile.sh  qmail-newmrh.9   seek_cur.c       substdo.c
auto-int.c      conf-groups     fmtqfn.h         Makefile         qmail-newmrh.c   seek_end.c       SYSDEPS
auto_patrn.h    config-fast.sh  fmt_str.c        Makefile.orig    qmail-newu.9     seek.h           TARGETS
auto_qmail.h    config.sh       fmt_strn.c       make-load.sh     qmail-newu.c     seek_set.c       tcp-env.1
auto_spawn.h    conf-ld         fmt_uint0.c      make-makelib.sh  qmail-pop3d.8    seek_trunc.c     tcp-env.c
auto_split.h    conf-patrn      fmt_uint.c       mbox.5           qmail-pop3d.c    select.h1        tcp-environ.5
auto-str.c      conf-qmail      fmt_ulong.c      myctime.c        qmail-popup.8    select.h2        tcpto.c
auto-uid.c      conf-spawn      forgeries.7      myctime.h        qmail-popup.c    SENDMAIL         tcpto_clean.c
auto_uids.h     conf-split      fork.h1          ndelay.c         qmail-pw2u.9     sendmail.c       tcpto.h
auto_usera.h    conf-users      fork.h2          ndelay.h         qmail-pw2u.c     sgetopt.3        TEST.deliver
base64.c        constmap.c      forward.1        ndelay_off.c     qmail-qmqpc.8    sgetopt.c        TEST.receive
base64.h        constmap.h      forward.c        newfield.c       qmail-qmqpc.c    sgetopt.h        THANKS
binm1+df.sh     control.c       gen_allocdefs.h  newfield.h       qmail-qmqpd.8    sig_alarm.c      THOUGHTS
binm1.sh        control.h       gen_alloc.h      now.3            qmail-qmqpd.c    sig_block.c      timeoutconn.c
binm2+df.sh     date822fmt.c    getln2.3         now.c            qmail-qmtpd.8    sig_bug.c        timeoutconn.h
binm2.sh        date822fmt.h    getln2.c         now.h            qmail-qmtpd.c    sig_catch.c      timeoutread.c
binm3+df.sh     datemail.sh     getln.3          open_append.c    qmail-qread.8    sig_child.c      timeoutread.h
binm3.sh        datetime.3      getln.c          open_excl.c      qmail-qread.c    sig.h            timeoutwrite.c
BIN.Makefile    datetime.c      getln.h          open.h           qmail-qstat.8    sig_hup.c        timeoutwrite.h
BIN.README      datetime.h      gfrom.c          open_read.c      qmail-qstat.sh   sig_misc.c       TODO
BLURB           datetime_un.c   gfrom.h          open_trunc.c     qmail-queue.8    sig_pause.c      token822.c
BLURB2          direntry.3      headerbody.c     open_write.c     qmail-queue.c    sig_pipe.c       token822.h
BLURB3          direntry.h1     headerbody.h     PIC.local2alias  qmail-remote.8   sig_term.c       trigger.c
BLURB4          direntry.h2     hfield.c         PIC.local2ext    qmail-remote.c   slurpclose.c     trigger.h
bouncesaying.1  dns.c           hfield.h         PIC.local2local  qmail-rspawn.8   slurpclose.h     triggerpull.c
bouncesaying.c  dnscname.c      hier.c           PIC.local2rem    qmail-rspawn.c   spawn.c          triggerpull.h
byte_chr.c      dnsdoe.c        home+df.sh       PIC.local2virt   qmail-send.9     splogger.8       trycpp.c
byte_copy.c     dnsdoe.h        home.sh          PIC.nullclient   qmail-send.c     splogger.c       trydrent.c
byte_cr.c       dnsfq.c         hostname.c       PIC.relaybad     qmail-showctl.8  stralloc.3       tryflock.c
byte_diff.c     dns.h           idedit.c         PIC.relaygood    qmail-showctl.c  stralloc_arts.c  trylsock.c
byte.h          dnsip.c         INSTALL          PIC.rem2local    qmail-smtpd.8    stralloc_catb.c  trymkffo.c
byte_rchr.c     dnsmxip.c       INSTALL.alias    pinq.sh          qmail-smtpd.c    stralloc_cat.c   trynpbg1.c
byte_zero.c     dnsptr.c        install-big.c    predate.c        qmail-start.9    stralloc_cats.c  tryrsolv.c
case.3          dot-qmail.9     install.c        preline.1        qmail-start.c    stralloc_copy.c  trysalen.c
case_diffb.c    elq.sh          INSTALL.ctl      preline.c        qmail-tcpok.8    stralloc_eady.c  trysgact.c
case_diffs.c    env.3           INSTALL.ids      prioq.c          qmail-tcpok.c    stralloc.h       trysgprm.c
case.h          env.c           INSTALL.maildir  prioq.h          qmail-tcpto.8    stralloc_opyb.c  tryshsgr.c
case_lowerb.c   envelopes.5     INSTALL.mbox     proc+df.sh       qmail-tcpto.c    stralloc_opys.c  trysysel.c
case_lowers.c   env.h           INSTALL.vsm      proc.sh          qmail-upq.sh     stralloc_pend.c  trysyslog.c
case_starts.c   envread.c       instcheck.c      prot.c           qmail-users.9    str_chr.c        tryulong32.c
cdb.3           error.3         INTERNALS        prot.h           qreceipt.1       str_cpy.c        tryvfork.c
cdb.h           error.c         ipalloc.c        qail.sh          qreceipt.c       str_diff.c       trywaitp.c
cdb_hash.c      error.h         ipalloc.h        qbiff.1          qsmhook.c        str_diffn.c      uint32.h1
cdbmake_add.c   error_str.3     ip.c             qbiff.c          qsutil.c         strerr_die.c     uint32.h2
cdbmake.h       error_str.c     ip.h             qlx.h            qsutil.h         strerr.h         UPGRADE
cdbmake_hash.c  error_temp.3    ipme.c           qmail.7          quote.c          strerr_sys.c     VERSION
cdbmake_pack.c  error_temp.c    ipme.h           qmail.c          quote.h          str.h            wait.3
cdbmss.c        except.1        ipmeprint.c      qmail-clean.8    rcpthosts.c      str_len.c        wait.h
cdbmss.h        except.c        lock_ex.c        qmail-clean.c    rcpthosts.h      str_rchr.c       wait_nohang.c
cdb_seek.c      exit.h          lock_exnb.c      qmail-command.8  README           str_start.c      wait_pid.c
cdb_seek.c.rej  extra.h         lock.h           qmail-control.9  readsubdir.c     subfderr.c       warn-auto.sh
cdb_unpack.c    FAQ             lock_un.c        qmail-getpw.9    readsubdir.h     subfd.h          warn-shsgr
CHANGES         fd_copy.3       maildir2mbox.1   qmail-getpw.c    readwrite.h      subfdin.c
chkshsgr.c      fd_copy.c       maildir2mbox.c   qmail.h          received.c       subfdins.c
chkspawn.c      fd.h            maildir.5        qmail-header.5   received.h       subfdout.c
打开install.ids,查看创建用户和组的命令

deepfuture@ubuntu-sdp:/opt/qmail-1.03$ ls -l|grep *.ids
-rw-r--r-- 1 root daemon  2912 1998-06-15 18:53 INSTALL.ids
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo nano INSTALL.ids

可以看到 linux系统的如下:

 Here's how to set up the qmail groups and the qmail users.

On some systems there are commands that make this easy. Solaris and
Linux:

   # groupadd nofiles
   # useradd -g nofiles -d /var/qmail/alias alias
   # useradd -g nofiles -d /var/qmail qmaild
   # useradd -g nofiles -d /var/qmail qmaill
   # useradd -g nofiles -d /var/qmail qmailp
   # groupadd qmail
   # useradd -g qmail -d /var/qmail qmailq
   # useradd -g qmail -d /var/qmail qmailr
   # useradd -g qmail -d /var/qmail qmails

输入以上命令

 deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo groupadd nofiles
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g nofiles -d /var/qmail/alias alias
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g nofiles -d /var/qmail qmaild
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g nofiles -d /var/qmail qmaill
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g nofiles -d /var/qmail qmailp
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo groupadd qmail
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g qmail -d /var/qmail qmailq
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g qmail -d /var/qmail qmailr
deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo useradd -g qmail -d /var/qmail qmails

 

编译并安装(请确保第三步成功完成,否则编译会出错)

deepfuture@ubuntu-sdp:/opt/qmail-1.03$make setup check

......

......

......

......

nroff -man maildirwatch.1 > maildirwatch.0
nroff -man qmail.7 > qmail.0
cat qmail-limits.9 \
        | sed s}QMAILHOME}"`head -1 conf-qmail`"}g \
        | sed s}BREAK}"`head -1 conf-break`"}g \
        | sed s}SPAWN}"`head -1 conf-spawn`"}g \
        > qmail-limits.7
nroff -man qmail-limits.7 > qmail-limits.0
nroff -man qmail-log.5 > qmail-log.0
cat qmail-control.9 \
        | sed s}QMAILHOME}"`head -1 conf-qmail`"}g \
        | sed s}BREAK}"`head -1 conf-break`"}g \
        | sed s}SPAWN}"`head -1 conf-spawn`"}g \
        > qmail-control.5
nroff -man qmail-control.5 > qmail-control.0
nroff -man qmail-header.5 > qmail-header.0
cat qmail-users.9 \
        | sed s}QMAILHOME}"`head -1 conf-qmail`"}g \
        | sed s}BREAK}"`head -1 conf-break`"}g \
        | sed s}SPAWN}"`head -1 conf-spawn`"}g \
        > qmail-users.5
nroff -man qmail-users.5 > qmail-users.0
cat dot-qmail.9 \
        | sed s}QMAILHOME}"`head -1 conf-qmail`"}g \
        | sed s}BREAK}"`head -1 conf-break`"}g \
        | sed s}SPAWN}"`head -1 conf-spawn`"}g \
        > dot-qmail.5
nroff -man dot-qmail.5 > dot-qmail.0
nroff -man qmail-command.8 > qmail-command.0
nroff -man tcp-environ.5 > tcp-environ.0
nroff -man maildir.5 > maildir.0
nroff -man mbox.5 > mbox.0
nroff -man addresses.5 > addresses.0
nroff -man envelopes.5 > envelopes.0
nroff -man forgeries.7 > forgeries.0
./install
./instcheck

配置服务器域名,笔者的服务器域名是deepfuture.imwork.net

 deepfuture@ubuntu-sdp:/opt/qmail-1.03$ sudo ./config-fast deepfuture.imwork.net
Your fully qualified host name is deepfuture.imwork.net.
Putting deepfuture.imwork.net into control/me...
Putting imwork.net into control/defaultdomain...
Putting imwork.net into control/plusdomain...
Putting deepfuture.imwork.net into control/locals...
Putting deepfuture.imwork.net into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to deepfuture.imwork.net.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
deepfuture@ubuntu-sdp:/opt/qmail-1.03$

九、安装认证程序和下载认证errno补丁

注意当前目录必须在/usr下的一个子目录,笔者建立一个tmp目录。因为认识程序的安装路径是../bin

deepfuture@ubuntu-sdp:/opt$ cd /usr
deepfuture@ubuntu-sdp:/usr$ ls
bin  games  include  lib  local  sbin  share  src

deepfuture@ubuntu-sdp:/usr$ sudo mkdir tmp
deepfuture@ubuntu-sdp:/usr$ cd tmp

deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
--2010-02-10 11:30:02--  http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
Resolving cr.yp.to... 131.193.36.21
Connecting to cr.yp.to|131.193.36.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15631 (15K) [application/x-gzip]
Saving to: `checkpassword-0.90.tar.gz'

100%[===================================================================================>] 15,631      27.4K/s   in 0.6s   

 

 deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://djbware.csi.hu/patches/checkpassword-0.90.errno.patch
--2010-02-10 11:36:43--  http://djbware.csi.hu/patches/checkpassword-0.90.errno.patch
Resolving djbware.csi.hu... 141.225.8.55
Connecting to djbware.csi.hu|141.225.8.55|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 346 [text/plain]
Saving to: `checkpassword-0.90.errno.patch'

100%[===================================================================================>] 346         --.-K/s   in 0s     

2010-02-10 11:36:44 (14.1 MB/s) - `checkpassword-0.90.errno.patch' saved [346/346] 

deepfuture@ubuntu-sdp:/usr/tmp$ sudo tar xvfz checkpassword-0.90.tar.gz
checkpassword-0.90
checkpassword-0.90/README
checkpassword-0.90/TODO
checkpassword-0.90/CHANGES
checkpassword-0.90/VERSION
checkpassword-0.90/FILES
checkpassword-0.90/SYSDEPS
checkpassword-0.90/TARGETS
checkpassword-0.90/Makefile
checkpassword-0.90/alloc.c
checkpassword-0.90/alloc.h
checkpassword-0.90/alloc_re.c
checkpassword-0.90/auto-str.c
checkpassword-0.90/auto_home.h
checkpassword-0.90/buffer.c
checkpassword-0.90/buffer.h
checkpassword-0.90/buffer_2.c
checkpassword-0.90/buffer_copy.c
checkpassword-0.90/buffer_get.c
checkpassword-0.90/buffer_put.c
checkpassword-0.90/byte.h
checkpassword-0.90/byte_copy.c
checkpassword-0.90/byte_cr.c
checkpassword-0.90/byte_diff.c
checkpassword-0.90/checkpassword.c
checkpassword-0.90/chkshsgr.c
checkpassword-0.90/choose.sh
checkpassword-0.90/conf-cc
checkpassword-0.90/conf-home
checkpassword-0.90/conf-ld
checkpassword-0.90/env.c
checkpassword-0.90/env.h
checkpassword-0.90/error.c
checkpassword-0.90/error.h
checkpassword-0.90/error_str.c
checkpassword-0.90/exit.h
checkpassword-0.90/find-systype.sh
checkpassword-0.90/gen_alloc.h
checkpassword-0.90/gen_allocdefs.h
checkpassword-0.90/hasshsgr.h1
checkpassword-0.90/hasshsgr.h2
checkpassword-0.90/hier.c
checkpassword-0.90/install.c
checkpassword-0.90/instcheck.c
checkpassword-0.90/open.h
checkpassword-0.90/open_read.c
checkpassword-0.90/open_trunc.c
checkpassword-0.90/pathexec.h
checkpassword-0.90/pathexec_env.c
checkpassword-0.90/pathexec_run.c
checkpassword-0.90/print-cc.sh
checkpassword-0.90/prot.c
checkpassword-0.90/prot.h
checkpassword-0.90/readwrite.h
checkpassword-0.90/str.h
checkpassword-0.90/str_chr.c
checkpassword-0.90/str_len.c
checkpassword-0.90/str_start.c
checkpassword-0.90/stralloc.h
checkpassword-0.90/stralloc_cat.c
checkpassword-0.90/stralloc_catb.c
checkpassword-0.90/stralloc_cats.c
checkpassword-0.90/stralloc_eady.c
checkpassword-0.90/stralloc_opyb.c
checkpassword-0.90/stralloc_opys.c
checkpassword-0.90/stralloc_pend.c
checkpassword-0.90/strerr.h
checkpassword-0.90/strerr_die.c
checkpassword-0.90/strerr_sys.c
checkpassword-0.90/trycpp.c
checkpassword-0.90/trycrypt.c
checkpassword-0.90/tryshadow.c
checkpassword-0.90/tryshsgr.c
checkpassword-0.90/tryslib.c
checkpassword-0.90/tryspnam.c
checkpassword-0.90/tryuserpw.c
checkpassword-0.90/warn-auto.sh
checkpassword-0.90/warn-shsgr
checkpassword-0.90/x86cpuid.c

安装补丁

 deepfuture@ubuntu-sdp:/usr/tmp$ cd checkpassword-0.90
deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ ls
alloc.c        byte_cr.c        error.c          instcheck.c     readwrite.h      strerr_sys.c  tryspnam.c
alloc.h        byte_diff.c      error.h          Makefile        stralloc_catb.c  str.h         tryuserpw.c
alloc_re.c     byte.h           error_str.c      open.h          stralloc_cat.c   str_len.c     VERSION
auto_home.h    CHANGES          exit.h           open_read.c     stralloc_cats.c  str_start.c   warn-auto.sh
auto-str.c     checkpassword.c  FILES            open_trunc.c    stralloc_eady.c  SYSDEPS       warn-shsgr
buffer_2.c     chkshsgr.c       find-systype.sh  pathexec_env.c  stralloc.h       TARGETS       x86cpuid.c
buffer.c       choose.sh        gen_allocdefs.h  pathexec.h      stralloc_opyb.c  TODO
buffer_copy.c  conf-cc          gen_alloc.h      pathexec_run.c  stralloc_opys.c  trycpp.c
buffer_get.c   conf-home        hasshsgr.h1      print-cc.sh     stralloc_pend.c  trycrypt.c
buffer.h       conf-ld          hasshsgr.h2      prot.c          str_chr.c        tryshadow.c
buffer_put.c   env.c            hier.c           prot.h          strerr_die.c     tryshsgr.c
byte_copy.c    env.h            install.c        README          strerr.h         tryslib.c
deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ sudo patch -p1 < ../checkpassword-0.90.errno.patch


patching file error.h

编译

 

deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ sudo make
( cat warn-auto.sh; \
        echo 'main="$1"; shift'; \
        echo exec "`head -1 conf-ld`" \
        '-o "$main" "$main".o ${1+"$@"}' \
        ) > load
chmod 755 load
sh find-systype.sh > systype
sh print-cc.sh > compile
chmod 755 compile
( ( ./compile tryspnam.c && ./load tryspnam ) >/dev/null \
        2>&1 \
        && echo \#define HASGETSPNAM 1 || exit 0 ) > hasspnam.h
rm -f tryspnam.o tryspnam
( ( ./compile tryslib.c && \
        ./load tryslib -ls ) >/dev/null 2>&1 \
        && echo -ls || exit 0 ) > s.lib
rm -f tryslib.o tryslib
( ( ./compile tryuserpw.c \
          && ./load tryuserpw `cat s.lib` ) >/dev/null 2>&1 \
        && echo \#define HASGETUSERPW 1 || exit 0 ) > hasuserpw.h
rm -f tryuserpw.o tryuserpw
./compile checkpassword.c
checkpassword.c: In function ‘main’:
checkpassword.c:33: warning: incompatible implicit declaration of built-in function ‘_exit’
cat warn-auto.sh choose.sh \
        | sed s}HOME}"`head -1 conf-home`"}g \
        > choose
chmod 755 choose
./compile chkshsgr.c
./load chkshsgr
./chkshsgr || ( cat warn-shsgr; exit 1 )
./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
./compile prot.c
( cat warn-auto.sh; \
        echo 'main="$1"; shift'; \
        echo 'rm -f "$main"'; \
        echo 'ar cr "$main" ${1+"$@"}'; \
        case "`cat systype`" in \
        sunos-5.*) ;; \
        unix_sv*) ;; \
        irix64-*) ;; \
        irix-*) ;; \
        dgux-*) ;; \
        hp-ux-*) ;; \
        sco*) ;; \
        *) echo 'ranlib "$main"' ;; \
        esac \
        ) > makelib
chmod 755 makelib
./compile alloc.c
alloc.c:3: warning: conflicting types for built-in function ‘malloc’
./compile alloc_re.c
./compile buffer.c
./compile buffer_2.c
./compile buffer_copy.c
./compile buffer_get.c
./compile buffer_put.c
./compile env.c
./compile error.c
./compile error_str.c
./compile open_read.c
./compile open_trunc.c
./compile pathexec_env.c
./compile pathexec_run.c
./compile stralloc_cat.c
./compile stralloc_catb.c
./compile stralloc_cats.c
./compile stralloc_eady.c
./compile stralloc_opyb.c
./compile stralloc_opys.c
./compile stralloc_pend.c
./compile strerr_die.c
./compile strerr_sys.c
./makelib unix.a alloc.o alloc_re.o buffer.o buffer_2.o \
        buffer_copy.o buffer_get.o buffer_put.o env.o error.o \
        error_str.o open_read.o open_trunc.o pathexec_env.o \
        pathexec_run.o prot.o stralloc_cat.o stralloc_catb.o \
        stralloc_cats.o stralloc_eady.o stralloc_opyb.o \
        stralloc_opys.o stralloc_pend.o strerr_die.o strerr_sys.o
./compile byte_copy.c
./compile byte_cr.c
./compile byte_diff.c
./compile str_chr.c
./compile str_len.c
./compile str_start.c
./makelib byte.a byte_copy.o byte_cr.o byte_diff.o \
        str_chr.o str_len.o str_start.o
( ( ./compile tryshadow.c && \
        ./load tryshadow -lshadow ) >/dev/null 2>&1 \
        && echo -lshadow || exit 0 ) > shadow.lib
rm -f tryshadow.o tryshadow
( ( ./compile trycrypt.c && \
        ./load trycrypt -lcrypt ) >/dev/null 2>&1 \
        && echo -lcrypt || exit 0 ) > crypt.lib
rm -f trycrypt.o trycrypt
./load checkpassword prot.o unix.a byte.a  `cat \
        shadow.lib` `cat crypt.lib` `cat s.lib`
./compile install.c
./compile hier.c
./compile auto-str.c
auto-str.c:8: warning: conflicting types for built-in function ‘puts’
./load auto-str unix.a byte.a
./auto-str auto_home `head -1 conf-home` > auto_home.c
./compile auto_home.c
./load install hier.o auto_home.o unix.a byte.a
./compile instcheck.c
./load instcheck hier.o auto_home.o unix.a byte.a

安装

deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ sudo make setup check
./install
./instcheck
deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ sudo chmod 4755 /bin/checkpassword

deepfuture@ubuntu-sdp:/usr/tmp/checkpassword-0.90$ cd ..

安装QMAIL守护程序daemontools

deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
--2010-02-10 11:51:19--  http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Resolving cr.yp.to... 131.193.36.21
Connecting to cr.yp.to|131.193.36.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36975 (36K) [application/x-gzip]
Saving to: `daemontools-0.76.tar.gz'

100%[===================================================================================>] 36,975      42.0K/s   in 0.9s   

2010-02-10 11:51:20 (42.0 KB/s) - `daemontools-0.76.tar.gz' saved [36975/36975]deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
--2010-02-10 11:52:12--  http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
Resolving www.qmail.org... 192.203.178.37
Connecting to www.qmail.org|192.203.178.37|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 355 [text/plain]
Saving to: `daemontools-0.76.errno.patch'

100%[===================================================================================>] 355         --.-K/s   in 0s     

2010-02-10 11:52:13 (15.1 MB/s) - `daemontools-0.76.errno.patch' saved [355/355]

解压

deepfuture@ubuntu-sdp:/usr/tmp$ sudo tar xvfz daemontools-0.76.tar.gz
admin
admin/daemontools-0.76
admin/daemontools-0.76/package
admin/daemontools-0.76/package/README
admin/daemontools-0.76/package/files
admin/daemontools-0.76/package/sharing
admin/daemontools-0.76/package/commands
admin/daemontools-0.76/package/install
admin/daemontools-0.76/package/compile
admin/daemontools-0.76/package/upgrade
admin/daemontools-0.76/package/run
admin/daemontools-0.76/package/run.inittab
admin/daemontools-0.76/package/boot.inittab
admin/daemontools-0.76/package/run.rclocal
admin/daemontools-0.76/package/boot.rclocal
admin/daemontools-0.76/src
admin/daemontools-0.76/src/CHANGES
admin/daemontools-0.76/src/TODO
admin/daemontools-0.76/src/Makefile
admin/daemontools-0.76/src/svscanboot.sh
admin/daemontools-0.76/src/svscan.c
admin/daemontools-0.76/src/supervise.c
admin/daemontools-0.76/src/svc.c
admin/daemontools-0.76/src/svok.c
admin/daemontools-0.76/src/svstat.c
admin/daemontools-0.76/src/fghack.c
admin/daemontools-0.76/src/pgrphack.c
admin/daemontools-0.76/src/readproctitle.c
admin/daemontools-0.76/src/multilog.c
admin/daemontools-0.76/src/tai64n.c
admin/daemontools-0.76/src/tai64nlocal.c
admin/daemontools-0.76/src/softlimit.c
admin/daemontools-0.76/src/setuidgid.c
admin/daemontools-0.76/src/envuidgid.c
admin/daemontools-0.76/src/envdir.c
admin/daemontools-0.76/src/setlock.c
admin/daemontools-0.76/src/match.c
admin/daemontools-0.76/src/match.h
admin/daemontools-0.76/src/matchtest.c
admin/daemontools-0.76/src/timestamp.c
admin/daemontools-0.76/src/timestamp.h
admin/daemontools-0.76/src/deepsleep.c
admin/daemontools-0.76/src/deepsleep.h
admin/daemontools-0.76/src/conf-cc
admin/daemontools-0.76/src/conf-ld
admin/daemontools-0.76/src/print-cc.sh
admin/daemontools-0.76/src/print-ld.sh
admin/daemontools-0.76/src/print-ar.sh
admin/daemontools-0.76/src/choose.sh
admin/daemontools-0.76/src/warn-auto.sh
admin/daemontools-0.76/src/find-systype.sh
admin/daemontools-0.76/src/trycpp.c
admin/daemontools-0.76/src/x86cpuid.c
admin/daemontools-0.76/src/rts.tests
admin/daemontools-0.76/src/buffer.h
admin/daemontools-0.76/src/buffer.c
admin/daemontools-0.76/src/byte.h
admin/daemontools-0.76/src/str.h
admin/daemontools-0.76/src/str_len.c
admin/daemontools-0.76/src/byte_copy.c
admin/daemontools-0.76/src/byte_cr.c
admin/daemontools-0.76/src/error.h
admin/daemontools-0.76/src/error.c
admin/daemontools-0.76/src/buffer_put.c
admin/daemontools-0.76/src/buffer_read.c
admin/daemontools-0.76/src/buffer_write.c
admin/daemontools-0.76/src/buffer_1.c
admin/daemontools-0.76/src/direntry.h1
admin/daemontools-0.76/src/direntry.h2
admin/daemontools-0.76/src/trydrent.c
admin/daemontools-0.76/src/strerr.h
admin/daemontools-0.76/src/error_str.c
admin/daemontools-0.76/src/strerr_sys.c
admin/daemontools-0.76/src/buffer_2.c
admin/daemontools-0.76/src/strerr_die.c
admin/daemontools-0.76/src/wait.h
admin/daemontools-0.76/src/trywaitp.c
admin/daemontools-0.76/src/haswaitp.h1
admin/daemontools-0.76/src/haswaitp.h2
admin/daemontools-0.76/src/wait_pid.c
admin/daemontools-0.76/src/coe.h
admin/daemontools-0.76/src/coe.c
admin/daemontools-0.76/src/fd.h
admin/daemontools-0.76/src/fd_copy.c
admin/daemontools-0.76/src/fd_move.c
admin/daemontools-0.76/src/str_start.c
admin/daemontools-0.76/src/env.h
admin/daemontools-0.76/src/env.c
admin/daemontools-0.76/src/alloc.h
admin/daemontools-0.76/src/alloc.c
admin/daemontools-0.76/src/alloc_re.c
admin/daemontools-0.76/src/gen_alloc.h
admin/daemontools-0.76/src/gen_allocdefs.h
admin/daemontools-0.76/src/stralloc.h
admin/daemontools-0.76/src/stralloc_eady.c
admin/daemontools-0.76/src/stralloc_opyb.c
admin/daemontools-0.76/src/stralloc_catb.c
admin/daemontools-0.76/src/stralloc_cats.c
admin/daemontools-0.76/src/stralloc_pend.c
admin/daemontools-0.76/src/str_chr.c
admin/daemontools-0.76/src/pathexec.h
admin/daemontools-0.76/src/pathexec_run.c
admin/daemontools-0.76/src/stralloc_opys.c
admin/daemontools-0.76/src/stralloc_cat.c
admin/daemontools-0.76/src/byte_diff.c
admin/daemontools-0.76/src/pathexec_env.c
admin/daemontools-0.76/src/wait_nohang.c
admin/daemontools-0.76/src/sig.h
admin/daemontools-0.76/src/sig.c
admin/daemontools-0.76/src/sig_block.c
admin/daemontools-0.76/src/sig_catch.c
admin/daemontools-0.76/src/sig_pause.c
admin/daemontools-0.76/src/hassgact.h1
admin/daemontools-0.76/src/hassgact.h2
admin/daemontools-0.76/src/hassgprm.h1
admin/daemontools-0.76/src/hassgprm.h2
admin/daemontools-0.76/src/trysgact.c
admin/daemontools-0.76/src/trysgprm.c
admin/daemontools-0.76/src/select.h1
admin/daemontools-0.76/src/select.h2
admin/daemontools-0.76/src/trysysel.c
admin/daemontools-0.76/src/uint64.h1
admin/daemontools-0.76/src/uint64.h2
admin/daemontools-0.76/src/tryulong64.c
admin/daemontools-0.76/src/tai.h
admin/daemontools-0.76/src/taia.h
admin/daemontools-0.76/src/taia_now.c
admin/daemontools-0.76/src/taia_sub.c
admin/daemontools-0.76/src/taia_less.c
admin/daemontools-0.76/src/taia_frac.c
admin/daemontools-0.76/src/taia_approx.c
admin/daemontools-0.76/src/iopause.h1
admin/daemontools-0.76/src/iopause.h2
admin/daemontools-0.76/src/iopause.c
admin/daemontools-0.76/src/trypoll.c
admin/daemontools-0.76/src/fifo.h
admin/daemontools-0.76/src/fifo.c
admin/daemontools-0.76/src/hasmkffo.h1
admin/daemontools-0.76/src/hasmkffo.h2
admin/daemontools-0.76/src/trymkffo.c
admin/daemontools-0.76/src/open.h
admin/daemontools-0.76/src/open_read.c
admin/daemontools-0.76/src/open_write.c
admin/daemontools-0.76/src/open_append.c
admin/daemontools-0.76/src/lock.h
admin/daemontools-0.76/src/hasflock.h1
admin/daemontools-0.76/src/hasflock.h2
admin/daemontools-0.76/src/tryflock.c
admin/daemontools-0.76/src/lock_exnb.c
admin/daemontools-0.76/src/lock_ex.c
admin/daemontools-0.76/src/ndelay.h
admin/daemontools-0.76/src/ndelay_on.c
admin/daemontools-0.76/src/ndelay_off.c
admin/daemontools-0.76/src/tai_pack.c
admin/daemontools-0.76/src/taia_pack.c
admin/daemontools-0.76/src/taia_add.c
admin/daemontools-0.76/src/open_trunc.c
admin/daemontools-0.76/src/taia_uint.c
admin/daemontools-0.76/src/subgetopt.h
admin/daemontools-0.76/src/subgetopt.c
admin/daemontools-0.76/src/sgetopt.h
admin/daemontools-0.76/src/sgetopt.c
admin/daemontools-0.76/src/byte_chr.c
admin/daemontools-0.76/src/fmt.h
admin/daemontools-0.76/src/scan.h
admin/daemontools-0.76/src/fmt_ulong.c
admin/daemontools-0.76/src/fmt_uint.c
admin/daemontools-0.76/src/fmt_uint0.c
admin/daemontools-0.76/src/tai_unpack.c
admin/daemontools-0.76/src/tai_now.c
admin/daemontools-0.76/src/tai_sub.c
admin/daemontools-0.76/src/seek.h
admin/daemontools-0.76/src/seek_set.c
admin/daemontools-0.76/src/str_diff.c
admin/daemontools-0.76/src/byte_rchr.c
admin/daemontools-0.76/src/scan_ulong.c
admin/daemontools-0.76/src/buffer_get.c
admin/daemontools-0.76/src/buffer_0.c
admin/daemontools-0.76/src/prot.h
admin/daemontools-0.76/src/prot.c
admin/daemontools-0.76/src/hasshsgr.h1
admin/daemontools-0.76/src/hasshsgr.h2
admin/daemontools-0.76/src/chkshsgr.c
admin/daemontools-0.76/src/warn-shsgr
admin/daemontools-0.76/src/tryshsgr.c
admin/daemontools-0.76/src/readclose.h
admin/daemontools-0.76/src/readclose.c
admin/daemontools-0.76/src/openreadclose.h
admin/daemontools-0.76/src/openreadclose.c

打补丁deepfuture@ubuntu-sdp:/usr/tmp$ cd admin/daemontools-0.76
deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76$ sudo patch -p1 <../../daemontools-0.76.errno.patch
patching file src/error.h

编译

eepfuture@ubuntu-sdp:/$ cd /usr/tmp/admin
deepfuture@ubuntu-sdp:/usr/tmp/admin$ ls
daemontools-0.76
deepfuture@ubuntu-sdp:/usr/tmp/admin$ cd daemontools-0.76
deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76$ ls
package  src
deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76$ sudo package/compile

手动安装

 

deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76/command$ sudo mkdir /var/ademontool
deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76/command$ sudo mkdir /var/ademontool/command

deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76/command$ sudo mkdir /var/ademontool/service

deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76$sudo cp /usr/tmp/admin/daemontools-0.76/command/*  /var/daemontool/command
deepfuture@ubuntu-sdp:/usr/tmp/admin/daemontools-0.76/command$ sudo nano svscanboot

 

#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!

PATH=/var/daemontool/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin

exec </dev/null
exec >/dev/null
exec 2>/dev/null

/var/daemontool/command/svc -dx /var/daemontool/service/* /var/daemontool/service/*/log

env - PATH=$PATH svscan /var/daemontool/service 2>&1 | \
env - PATH=$PATH readproctitle service errors: .............................................................................$

 

十一、安装popmail,管理用户名和域的工具

deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://sourceforge.net/projects/vpopmail/files/vpopmail-stable/5.4.30/vpopmail-5.4.30.tar.gz/download

deepfuture@ubuntu-sdp:/usr/tmp$ sudo tar xvfz vpopmail-5.4.30.tar.gz
vpopmail-5.4.30/
vpopmail-5.4.30/seek.c
vpopmail-5.4.30/vcdb.c
vpopmail-5.4.30/vpgsql.c
vpopmail-5.4.30/voracle.pc
vpopmail-5.4.30/vmysql.h
vpopmail-5.4.30/vuserinfo.c
vpopmail-5.4.30/vdelivermail.c
vpopmail-5.4.30/vldap.h
vpopmail-5.4.30/oracle/
vpopmail-5.4.30/oracle/oracle.create
vpopmail-5.4.30/ltmain.sh
vpopmail-5.4.30/vdelivermail.h
vpopmail-5.4.30/vpopbull.c
vpopmail-5.4.30/md5.c
vpopmail-5.4.30/configure.in
vpopmail-5.4.30/dotqmail2valias.c
vpopmail-5.4.30/vusagec.c
vpopmail-5.4.30/stamp-h.in
vpopmail-5.4.30/maildirquota.h
vpopmail-5.4.30/vaddaliasdomain.c
vpopmail-5.4.30/ippp.c
vpopmail-5.4.30/vlimits.h
vpopmail-5.4.30/hmac_md5.h
vpopmail-5.4.30/conf.h
vpopmail-5.4.30/vmkpasswd.c
vpopmail-5.4.30/client.c
vpopmail-5.4.30/vmoddomlimits.c
vpopmail-5.4.30/quotawarn.msg
vpopmail-5.4.30/backfill.c
vpopmail-5.4.30/vdeloldusers.c
vpopmail-5.4.30/vdeldomain.c
vpopmail-5.4.30/global.h
vpopmail-5.4.30/vmysql.c
vpopmail-5.4.30/vutil.h
vpopmail-5.4.30/vqmaillocal.c
vpopmail-5.4.30/vadddomain.c
vpopmail-5.4.30/vkill.c
vpopmail-5.4.30/Makefile.in
vpopmail-5.4.30/client.h
vpopmail-5.4.30/config.guess
vpopmail-5.4.30/vauth.h
vpopmail-5.4.30/vutil.c
vpopmail-5.4.30/valias.c
vpopmail-5.4.30/vpasswd.c
vpopmail-5.4.30/maildirquota.c
vpopmail-5.4.30/storage.h
vpopmail-5.4.30/vpopmaild.msg
vpopmail-5.4.30/vconvert.c
vpopmail-5.4.30/authvchkpw.c
vpopmail-5.4.30/conf.c
vpopmail-5.4.30/vadduser.c
vpopmail-5.4.30/vlistlib.c
vpopmail-5.4.30/vlist.c
vpopmail-5.4.30/install-sh
vpopmail-5.4.30/voracle.h
vpopmail-5.4.30/compile
vpopmail-5.4.30/vlimits.c
vpopmail-5.4.30/vpopmaild.c
vpopmail-5.4.30/config.sub
vpopmail-5.4.30/vdeluser.c
vpopmail-5.4.30/config.h.in
vpopmail-5.4.30/vsybase.h
vpopmail-5.4.30/vipmap.c
vpopmail-5.4.30/vpgsql.h
vpopmail-5.4.30/cdb/
vpopmail-5.4.30/cdb/cdb.h
vpopmail-5.4.30/cdb/uint32.h2
vpopmail-5.4.30/cdb/cdb_unpack.c
vpopmail-5.4.30/cdb/cdb_hash.c
vpopmail-5.4.30/cdb/trycpp.c
vpopmail-5.4.30/cdb/VERSION
vpopmail-5.4.30/cdb/uint32.h1
vpopmail-5.4.30/cdb/tryulong32.c
vpopmail-5.4.30/cdb/makelib
vpopmail-5.4.30/cdb/warn-auto.sh
vpopmail-5.4.30/cdb/cdbmake_add.c
vpopmail-5.4.30/cdb/cdb_seek.c
vpopmail-5.4.30/cdb/cdbmake_hash.c
vpopmail-5.4.30/cdb/Makefile
vpopmail-5.4.30/cdb/find-systype.sh
vpopmail-5.4.30/cdb/README
vpopmail-5.4.30/cdb/cdbmake_pack.c
vpopmail-5.4.30/cdb/THANKS
vpopmail-5.4.30/cdb/cdbmake.h
vpopmail-5.4.30/vlimits.default
vpopmail-5.4.30/hmac_md5.c
vpopmail-5.4.30/vmoduser.c
vpopmail-5.4.30/vldap.c
vpopmail-5.4.30/vdominfo.c
vpopmail-5.4.30/file_lock.c
vpopmail-5.4.30/mkinstalldirs
vpopmail-5.4.30/vsetuserquota.c
vpopmail-5.4.30/file_lock.h
vpopmail-5.4.30/vcdb.h
vpopmail-5.4.30/vusagec.conf
vpopmail-5.4.30/Makefile.am
vpopmail-5.4.30/seek.h
vpopmail-5.4.30/ChangeLog
vpopmail-5.4.30/vsybase.c
vpopmail-5.4.30/aclocal.m4
vpopmail-5.4.30/vpopmail.c
vpopmail-5.4.30/vpopmail.h
vpopmail-5.4.30/vpalias.c
vpopmail-5.4.30/configure
vpopmail-5.4.30/vlog.h
vpopmail-5.4.30/ippp.h
vpopmail-5.4.30/md5.h
vpopmail-5.4.30/grab.sh
vpopmail-5.4.30/vchangepw.c
vpopmail-5.4.30/contrib/
vpopmail-5.4.30/contrib/qmail-smtpd-auth-0.5.6.tar.gz
vpopmail-5.4.30/contrib/cistron_radius.README
vpopmail-5.4.30/contrib/cdb_clearpass.sh
vpopmail-5.4.30/contrib/vreorg.c
vpopmail-5.4.30/contrib/checkpassword_debug.README
vpopmail-5.4.30/contrib/checkpassword_debug.c
vpopmail-5.4.30/contrib/vdirrestore
vpopmail-5.4.30/contrib/adduser.mysql
vpopmail-5.4.30/contrib/qmail-smtpd-auth.README
vpopmail-5.4.30/contrib/vlog-support-0.22.README
vpopmail-5.4.30/contrib/cistron_radius.tar.gz
vpopmail-5.4.30/contrib/vpassgen
vpopmail-5.4.30/contrib/popfetch-1.0.tar.gz
vpopmail-5.4.30/contrib/sendmail2vpopmail.pl
vpopmail-5.4.30/contrib/vcdir.README
vpopmail-5.4.30/contrib/sqwebmail_update
vpopmail-5.4.30/contrib/addusers.pl
vpopmail-5.4.30/contrib/vdirrestore.README
vpopmail-5.4.30/contrib/vcdir.c
vpopmail-5.4.30/contrib/vpassgen.README
vpopmail-5.4.30/contrib/qmail-maildir++.patch
vpopmail-5.4.30/contrib/vlog-support-0.22.tar.gz
vpopmail-5.4.30/missing
vpopmail-5.4.30/ldap/
vpopmail-5.4.30/ldap/nsswitch.conf
vpopmail-5.4.30/ldap/slapd.conf
vpopmail-5.4.30/ldap/vpopmail.ldif
vpopmail-5.4.30/ldap/pam_ldap.secret
vpopmail-5.4.30/ldap/pam_ldap.conf
vpopmail-5.4.30/ldap/valias.schema
vpopmail-5.4.30/ldap/qmailUser.schema
vpopmail-5.4.30/clearopensmtp.c
vpopmail-5.4.30/vchkpw.c
vpopmail-5.4.30/doc/
vpopmail-5.4.30/doc/README.quotas
vpopmail-5.4.30/doc/README.pgsql
vpopmail-5.4.30/doc/AUTHORS
vpopmail-5.4.30/doc/README.vlimits
vpopmail-5.4.30/doc/README.activedirectory
vpopmail-5.4.30/doc/README.onchange
vpopmail-5.4.30/doc/README.mysql
vpopmail-5.4.30/doc/README.vqmaillocal
vpopmail-5.4.30/doc/README.oracle
vpopmail-5.4.30/doc/README.spamassassin
vpopmail-5.4.30/doc/README.qmail-default
vpopmail-5.4.30/doc/README.ipaliasdomains
vpopmail-5.4.30/doc/README.vdelivermail
vpopmail-5.4.30/doc/TODO
vpopmail-5.4.30/doc/doc_html/
vpopmail-5.4.30/doc/doc_html/vpopmail5.abw
vpopmail-5.4.30/doc/doc_html/vpopmailapi.png
vpopmail-5.4.30/doc/doc_html/vpopmail.html
vpopmail-5.4.30/doc/UPGRADE
vpopmail-5.4.30/doc/FAQ
vpopmail-5.4.30/doc/COPYING
vpopmail-5.4.30/doc/README.authvchkpw
vpopmail-5.4.30/doc/README.vpopmaild
vpopmail-5.4.30/doc/README.roamingusers
vpopmail-5.4.30/doc/README
vpopmail-5.4.30/doc/man_html/
vpopmail-5.4.30/doc/man_html/clearopensmtp.html
vpopmail-5.4.30/doc/man_html/index.html
vpopmail-5.4.30/doc/man_html/vsetuserquota.html
vpopmail-5.4.30/doc/man_html/vdelivermail.html
vpopmail-5.4.30/doc/man_html/vpasswd.html
vpopmail-5.4.30/doc/man_html/vadduser.html
vpopmail-5.4.30/doc/man_html/vdeldomain.html
vpopmail-5.4.30/doc/man_html/vdeluser.html
vpopmail-5.4.30/doc/man_html/vconvert.html
vpopmail-5.4.30/doc/man_html/vaddaliasdomain.html
vpopmail-5.4.30/doc/man_html/vchkpw.html
vpopmail-5.4.30/doc/man_html/vadddomain.html
vpopmail-5.4.30/doc/man_html/vpopbull.html
vpopmail-5.4.30/doc/INSTALL
vpopmail-5.4.30/doc/README.maildrop
vpopmail-5.4.30/doc/README.filelocking
vpopmail-5.4.30/doc/README.sybase
vpopmail-5.4.30/doc/README.ldap
vpopmail-5.4.30/maildrop/
vpopmail-5.4.30/maildrop/maildroprc.v1
vpopmail-5.4.30/maildrop/maildroprc.v2
vpopmail-5.4.30/bigdir.c
vpopmail-5.4.30/vusaged/
vpopmail-5.4.30/vusaged/userstore.c
vpopmail-5.4.30/vusaged/cache.h
vpopmail-5.4.30/vusaged/queue.c
vpopmail-5.4.30/vusaged/user.h
vpopmail-5.4.30/vusaged/socket.h
vpopmail-5.4.30/vusaged/userstore.h
vpopmail-5.4.30/vusaged/query.c
vpopmail-5.4.30/vusaged/uthash.h
vpopmail-5.4.30/vusaged/shutdown.h
vpopmail-5.4.30/vusaged/path.h
vpopmail-5.4.30/vusaged/Makefile.in
vpopmail-5.4.30/vusaged/cache.c
vpopmail-5.4.30/vusaged/queue.h
vpopmail-5.4.30/vusaged/domain.h
vpopmail-5.4.30/vusaged/signal.h
vpopmail-5.4.30/vusaged/directory.h
vpopmail-5.4.30/vusaged/grow.c
vpopmail-5.4.30/vusaged/list.c
vpopmail-5.4.30/vusaged/signal.c
vpopmail-5.4.30/vusaged/query.h
vpopmail-5.4.30/vusaged/domain.c
vpopmail-5.4.30/vusaged/shutdown.c
vpopmail-5.4.30/vusaged/socket.c
vpopmail-5.4.30/vusaged/user.c
vpopmail-5.4.30/vusaged/configure.ac
vpopmail-5.4.30/vusaged/quota.h
vpopmail-5.4.30/vusaged/vusaged.c
vpopmail-5.4.30/vusaged/list.h
vpopmail-5.4.30/vusaged/grow.h
vpopmail-5.4.30/vusaged/etc/
vpopmail-5.4.30/vusaged/etc/vusaged.conf
vpopmail-5.4.30/vusaged/packet.h
vpopmail-5.4.30/vusaged/INSTALL
vpopmail-5.4.30/vusaged/directory.c
vpopmail-5.4.30/vusaged/packet.c
vpopmail-5.4.30/vusaged/ChangeLog
vpopmail-5.4.30/vusaged/configure
vpopmail-5.4.30/vusaged/contrib/
vpopmail-5.4.30/vusaged/contrib/rc.vusaged

deepfuture@ubuntu-sdp:/usr/tmp$ sudo groupadd vchkpw

deepfuture@ubuntu-sdp:/usr/tmp$ cd /

deepfuture@ubuntu-sdp:/$ sudo useradd -g vchkpw vpopmail -s /bin/false

deepfuture@ubuntu-sdp:/$ sudo usermod -d /var/vpopmail vpopmail

deepfuture@ubuntu-sdp:/$ sudo mkdir /var/vpopmail

deepfuture@ubuntu-sdp:/$ chown -R  vpopmail /var/vpopmail

安装mysql

deepfuture@ubuntu-sdp:/$cd /usr/tmp/vpopmail-5.4.30

deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ sudo apt-get install mysql-server mysql-client
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
mysql-server 已经是最新的版本了。
下列软件包是自动安装的并且现在不再被使用了:
  linux-headers-2.6.31-14-generic-pae linux-headers-2.6.31-14 libdns50
使用'apt-get autoremove'来删除它们
下列【新】软件包将被安装:
  mysql-client
共升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 32 个软件未被升级。
需要下载 63.7kB 的软件包。
解压缩后会消耗掉 102kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com karmic/main mysql-client 5.1.37-1ubuntu5 [63.7kB]
下载 63.7kB,耗时 1s (42.5kB/s)     
选中了曾被取消选择的软件包 mysql-client。
(正在读取数据库 ... 系统当前总共安装有 70303 个文件和目录。)
正在解压缩 mysql-client (从 .../mysql-client_5.1.37-1ubuntu5_all.deb) ...
正在设置 mysql-client (5.1.37-1ubuntu5) ..

deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$sudo apt-get install mysql-admin

安装mysql头文件

deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$sudo apt-get install libmysqlclient15-dev

配置

deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ sudo ./configure -enable-auth-module=mysql -enable-valias
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gawk... (cached) mawk
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for library containing strerror... none required
checking for crypt in -lcrypt... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for inttypes.h... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking endian.h usability... yes
checking endian.h presence... yes
checking for endian.h... yes
checking byteswap.h usability... yes
checking byteswap.h presence... yes
checking for byteswap.h... yes
...........

............

你可能感兴趣的:(C++,c,C#,ubuntu,配置管理)