CML

  1. 概要

  2. インストール

    手順 内容 備考
    1 以下のパッケージをインストールします。
    # apt-get install ed
    # apt-get install sharutils
    # apt-get install make
    (これをやらずに)CML をインストールしたら [ed] [uuencode] [make] がないというメッセージが出たので、その対策です。
    2 /usr/local/src ディレクトリに CML-4.1-Release.tar.gz をダウンロードして解凍すると CML-4.2-160825-snap-qmail ディレクトリができるので、これを CML と名前変更します。 CML-4.1-Release.tar.gz はもう不要なのですが、とりあえず、CML ディレクトリに入れておきます。
    # cd /usr/local/src
    # wget http://ftp.ecopo.ec.kagawa-u.ac.jp/pub/ml/CML-qmail/CML-4.2-160825-snap-qmail.tar.gz
    # tar -xzvf CML-4.2-160825-snap-qmail.tar.gz
    # mv CML-4.2-160825-snap-qmail CML
    # mv CML-4.2-160825-snap-qmail.tar.gz CML
    
    ドキュメントは /usr/local/src/CML/Doc にあります。 全て日本語なのでありがたいです。 このドキュメント通りにインストールすればよいです。
    3 Configure を実行します。
    # cd /usr/local/src/CML
    # ./Configure
    

    途中でインストールディレクトリを聞いてくるので、これには以下のように入力します。 これ以外の質問は全てリターンでよいです。
    Enter install directory. [/usr/local/etc/cml] /home/www-kun/cml
    
    www-kun は ML を管理するユーザで仮名です。 本名は内緒 です。
    4 make install します。
    # cd /usr/local/src/CML
    # make install
    
     
    5 /home/www-kun/cml ディレクトリ以下の 所有者:グループ を www-kun とします。
    # chown -R www-kun:www-kun /home/www-kun/cml
    
     
    6 www-kun ユーザになってから、addml コマンドで、メーリングリスト inettomo を作成します。
    $ /home/www-kun/cml/addml inettomo
    *** Make mailing list entry tool (addml version 4.2-160825-snap) ***
    *** End of make mailing list entry ***
    
    Add this entry to /etc/aliases, and exec 'newaliases' command.
    ==============================================================
    inettomo-request: 'E-mail address of inettomo ML admin.'
    inettomo: :include:/home/www-kun/cml/exe/inettomo
    inettomo-control: :include:/home/www-kun/cml/exe/inettomo-control
    inettomo-dist: :include:/home/www-kun/cml/inettomo/inettomo-list
    inettomo-digest-dist: :include:/home/www-kun/cml/inettomo/inettomo-digest
    
    www-kun ユーザで実行します。
    7 setadmin コマンドを実行して、メーリングリスト inettomo の管理を dareka@dokoka.com がメールで行えるようにします。
    $ /home/www-kun/cml/setadmin inettomo dareka@dokoka.com
    Adding new admin ... Done.
    ** Information **
       You can exchange inettomo-request entry in /etc/aliases.
        ->  inettomo-request: :include:/home/www-kun/cml/inettomo/inettomo-admins
    
    www-kun ユーザで実行します。

    dareka@dokoka.com は仮メールアドレスです。 この部分には正しいメールアドレスを入れてください。
    8 手順6と7で /etc/aliases の変更を促すメッセージが出ているので、以下の記述を追加します。
    inettomo-request: :include:/home/www-kun/cml/inettomo/inettomo-admins
    inettomo: :include:/home/www-kun/cml/exe/inettomo
    inettomo-control: :include:/home/www-kun/cml/exe/inettomo-control
    inettomo-dist: :include:/home/www-kun/cml/inettomo/inettomo-list
    inettomo-digest-dist: :include:/home/www-kun/cml/inettomo/inettomo-digest
    
    ここは root でないと作業できません。
    9 /etc/aliases の中で
    nobody: root
    
    となっている部分を以下のように変更します。
    nobody: /dev/null
    
    10 手順8と9の変更が完了したら、newaliases コマンドを実行してデータベースを更新します。
    # newaliases
    
    11 config.default をコピーして config.inettomo を作成します。
    $ cd /home/www-kun/cml
    $ cp config.default inettomo/config.inettomo
    
    www-kun ユーザで実行します。
    12 /home/www-kun/cml/inettomo/config.inettomo を変更します。 赤文字 が変更部分です。
    ARCHIVE=DONT
    KEEP=ALL
    ACCESSFREE=DO
    GENERICFROM=
    REPLYSW=1
    REPLYTO=
    SUBSTYLE=4
    OTHERNAME=
    FIGURE=5
    NOTMEMBER=4
    GENERIC=DONT
    ADMINONLY=DONT
    UNIXFROM=
    COUNT=DONT
    MLNAME=DONT
    XHEADERS=
    SENDER=
    PRECEDENCE=
    AUTOADD=DO
    DGSTAPPEND=DONT
    AUTOMSG=DONT
    DLVMSG=DONT
    DIGESTMAX=
    DIGESTLEN=
    CMDSUB=DONT
    CMLDMAXLINE=
    CMLDMAXBYTE=
    MAXORGWITH=
    LISTLIMIT=
    GETLIMIT=
    MESSAGES=
    ERRORLOG=DO
    CMASERRORTOADMIN=DONT
    ASLOGLEVEL=0
    GETADLOG=DONT
    STATIC=
    CONFIRM=DO
    USECHECK=DO
    USEMEMBER=DO
    MEMBMSG=1
    CKECKDISKSPACE=DONT
    DISKLIMIT=95
    
    www-kun ユーザで実行します。

    デフォールトのままでも動作しますが、好みに応じて変更します。
    13 Postfix の設定ファイル /etc/postfix/main.cf の最後に以下の記述を追加します。
    allow_mail_to_commands = alias, forward, include
    
    CML ドライバを実行するために必須の設定です。  
    14 webmin の [システム] - [起動およびシャットダウン] から [Create a new systemd service] を開き、以下の設定をしてから [作成] ボタンを押します。 自動的にスクリプト [CML-clear-Lock.service] が作成されます。
    Service name: CML-clear-Lock
    Service description: CML のロックファイルをクリアする
    Commands to run on startup: /home/www-kun/cml/rc.cml
    Commands to run on shutdown: (空白)
    Start at boot time?: はい
    
    CML が使うロックファイルを Debian 起動時にクリアします。

    あまりにも簡単にスクリプト作成できるのでビックリ ・・・ 人間、バカになってしまう。

  3. 以上で ML の新規作成は終わりですが、今回のようなサーバリプレースでは、過去のユーザ情報や設定情報をそのまま移行したいです。 この場合の手順は以下です。

    手順 内容 備考
    1 現在のサーバで動作している inettomo フォルダごと SFTP でパソコンに退避します。  
    2 /home/www-kun/cml/inettomo をフォルダごと消去します。
    $ rm -rf /home/www-kun/cml/inettomo
    
     
    3 手順1で退避した inettomo を /home/www-kun/cml/ ディレクトリにフォルダごと SFTP でコピーします。  
    4 インストールの手順11〜12を行って、config.inettomo を作成します。  
    5 念のため、/usr/local/etc/cml ディレクトリ以下の 所有者:グループ を www-kun とします。
    # chown -R www-kun:www-kun /home/www-kun/cml
    
    これをやらなくても、こうなっているはずですが、念のためです。

  4. ちょっとした警告