Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □CentOS6でdrac(POP befor SMTP)

□CentOS6でdrac(POP befor SMTP)

かなしいかな、CentOS6にはdracがない。(いやもういいでしょ、POP befor SMTPなんて、というのはおいといて)
あっちこっちからぱくってこようと思ったけど、結局はCentOS6でのdb4のバージョンが古いために、ソースからゴリゴリしないとだめ。

 
cd /usr/src/package
wget ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z

cd /usr/src/
mkdir dracd
cd dracd/
tar xvzf ../package/drac.tar.Z

で、rpc.dracd.c を

----------
	:
	:
// 2013.01.22 T.Kabu
//long explimit = 30 * 60;      /* expiry limit (seconds) */
long explimit = 90 * 60;        /* expiry limit (seconds) */
	:
	:
	:
/* Parse command-line options */
main(argc, argv) int argc; char **argv; {
    int c;
    extern char *optarg;
    extern int optind;

    while ((c = getopt(argc, argv, "ie:")) != EOF) {
        switch (c) {
          case 'i':
            initdb = 1;
            break;
          case 'e':
            explimit = atoi(optarg) * 60;
            break;
          case '?':
            fprintf(stderr, "Usage: %s [-i] [-e expire] [dbfile]\n",
                    argv[0]);
            exit(2);
        }
    }
    // 2013.01.22 T.Kabu
    fprintf(stderr, "rpc.dracd initdb=%d explimit=%d\n", initdb, explimit);
    if ( optind < argc ) dbfile = argv[optind];
    dracmain();         /* the main function from rpcgen */
    exit(1);
}
----------

emacs ./Makefile

----------
###INSTALL = /usr/ucb/install
###EBIN = /usr/local/sbin
###MAN = /usr/local/man/man
INSTALL = install
EBIN = /usr/sbin
MAN = /usr/share/man/
	:
	:
###DEFS = -DTI_RPC -DFCNTL_LOCK -DSYSINFO
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C

# Compiler flags
###CC = cc
CC = gcc
RANLIB = :
###CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-4.1.25/build_unix
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-3.1.17/build_unix
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db-2.4.14/Unix
#CFLAGS = $(DEFS) -g -I/usr/local/src/db/db.1.85/PORT/sunos.5.2/include
CFLAGS = $(DEFS) -g -fPIC
###LDLIBS = -L/usr/local/src/db/db-4.1.25/build_unix -lnsl -ldb-4.1
#LDLIBS = -L/usr/local/src/db/db-3.1.17/build_unix -lnsl -ldb
#LDLIBS = -L/usr/local/src/db/db-2.4.14/Unix -lnsl -ldb
#LDLIBS = -L/usr/local/src/db/db.1.85/PORT/sunos.5.2 -lnsl -ldb
LDLIBS = -ldb
###TSTLIBS = -L. -ldrac -lnsl
TSTLIBS = -L. -ldrac
###RPCGENFLAGS =
#RPCGENFLAGS = -C
RPCGENFLAGS = -C -I
# Man sections
###MANLIB = 3
###MANADM = 1m
MANLIB = 3
MANADM = 8
----------

※CFLAGSに-fPICをつけないと、このあとのプラグイン生成で怒られる。:-P

のようにしたら

make
make install
make install-man
cp drac.h /usr/include/
cp libdrac.a /usr/lib64
ldconfig
mkdir /etc/mail

これだけではdrac_plugin.soがないので、作らないといけない

http://www.designet.co.jp/open_source/drac_plugin/

yum -y install dovecot-devel db4-devel

すると、/usr/include/dovecot などができる。

cd /usr/src/package
wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fdovecot2-drac%2F53176%2Fdovecot2-drac-0.1.tar.gz”
mv redir.php\?m\=jaist\&f\=%2Fdovecot2-drac%2F53176%2Fdovecot2-drac-0.1.tar.gz dovecot2-drac-0.1.tar.gz
cd /usr/src/
tar xvzf ./package/dovecot2-drac-0.1.tar.gz
cd dovecot2-drac/

make DOVDIR=/usr/include/dovecot

cp ./drac_plugin.so /usr/lib64/dovecot/

OKなら、VineLinuxのマシンからでも/etc/init.d/dracdその他をもらってきてしまおう(VineLinuxならこの辺そろっているから苦労ない)

scp vine-server:/etc/init.d/dracd /etc/init.d/
scp vine-server:/usr/sbin/rc.dracd /usr/sbin/

chkconfig –level 2345 rpcbind on
chkconfig –add dracd
chkconfig –level 2345 dracd on

として

/etc/init.d/rpcbind restart
/etc/init.d/dracd restart
/etc/init.d/dovecot restart

あとは実際にPOP3でアクセスして、

strings /etc/mail/dracd.db

してIPアドレスが出てくればOK。

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です