Plamo4.03 についてのあれこれ(2005/09/10)



Linux My Tips ちょっとしたヒントとメモ
I enjoy Linux Linux 関連ページの目次にもどる。

plamo4.03についてのメモあれこれ

Plamo4.03についての詳細はこちらをどうぞ。
  • plamo4.03 をインストールしたマシン
  • mew4 にする
  • mew4 + bsfilter
  • bookview


  • plamo4.03をインストールしたマシン
    00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] System Controller (rev 12)
    00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] AGP Bridge
    00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
    00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C/VT8235 PIPC Bus Master IDE (rev 06)
    00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
    00:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 02)
    00:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 02)
    00:09.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43 (rev 41)
    00:0a.0 SCSI storage controller: LSI Logic / Symbios Logic 53c875 (rev 03)
    01:05.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 85)
    
    mew4
    plamo 4.03_01.iso(8/17版)をインストールして、
    mew4 にいれかえてみました。
    
    このページを眺めていたら、
    Mew4FAQ
    
    
    スパムフィルタ †
        * 取得、あるいはスキャン時に、メッセージに 'o' や 'D' マークを付ける
    ことが可能になりました。(mew-inbox-action-alist)
        * pick のような感じでコマンドを呼び出して、スパムに '*' マークを付け
    ることができます。
        * IMAP サーバ内でスパムを削除/リファイルし、必要なメッセージだけを
    スキャンできるようになりました。('mew-imap-spam-field')
        * 現在のメッセージをスパム、あるいは非スパム(ハム)として学習させる
    ことができます。("ls" と "lh")
    
    こういうことが書いてあったので、mew で簡単にできるスパム対策があれば、 使ってみたいと思い、mew4 に入れ換えてみることにしました。 (1)まずデフォルトでインストールされる mew3 を削除 plamo4.03 でインストールされる mew3 を削除して、 (removepkg -warn mew) removepkg mew (2)mew-4.2.53.tar.gz をインストールした。 ./configure make make info make install (3)plamo4.03 添付の .mew.el をそのまま使うと、 受信はできるのですが、次のようなエラーを表示して送信ができない。 NO SMTP AUTH available! This mail has been queued to +queue. mew-4.2.53$ にある mew.dot.emacs mew.dot.mew ---> これを .mew.el として ~/ にコピーして 最低限必要なことを書き換える (4)mew3 の .mew.el から追加した記述 ;;; POPを利用する場合.APOP の場合は設定する必要はない. (setq mew-pop-auth 'pass) ;;; スレッドを見易くする(t→t でスレッド表示) (setq mew-use-fancy-thread t) (setq mew-use-thread-separator t) あと必要と思われるものを適時追加 (5) これで mew4 は無事に動いています。 X-Mailer: Mew version 4.2.53 on Emacs 21.3 / Mule 5.0 (SAKAKI)
    bsfilter
    bsfilter
    bsfilter / bayesian spam filter / ベイジアン スパム フィルタ
    
    bsfilter with mew
    bsfilter with mew
    
    
    bsfilter のインストール
    
    必要なもの
    bsfilter-1.0.9.tgz
    ruby-1.8.2.tar.gz
    
    
    (1)bsfilter
    jeanne@chie:~/tools/bsfilter-1.0.9$ ls
    COPYING  bsfilter/  htdocs/  mda/  mua/
    $ cd ./bsfilter
    jeanne@chie:~/tools/bsfilter-1.0.9/bsfilter$ ls
    bsfilter*  bsfilter.exe*  bsfilter.exr  bsfilterw.exe*
    
    bsfilter をパスのあるディレクトリにコピー
    # cp bsfilter /usr/bin
    
    ここにあるemacs.el と mew.el のなかみを必要なファイルに書き加える。
     ./bsfilter-1.0.9/mua/mew4$ ls
    emacs.el  mew.el
    
        * mua/mew4/emacs.elを~/.emacs.elに追加する。
        * mua/mew4/mew.elを~/.mew.elに追加する。
    
     .mew.el
    ;bsfilter
    (setq mew-pop-proxy-server "localhost")
    (setq mew-pop-proxy-port  "10110")
    (setq mew-scan-fields (delete mew-spam: mew-scan-fields))
    (setq mew-scan-fields (delete "Body" mew-scan-fields))
    (setq mew-spam: "X-Spam-Flag:")
    (setq mew-scan-fields (append mew-scan-fields (list mew-spam: "Body")))
    (setq mew-inbox-action-alist
          '(("X-Spam-Flag:" mew-bsfilter)))
    
    ; put "D"
    (defun mew-spam-bsfilter (val)
      (let ((case-fold-search t))
        (if (string-match "yes" val) ?D)))
    
    ; put "o +sapm" at inc
    ;(defun mew-spam-bsfilter (val)
    ;  (let ((case-fold-search t))
    ;    (if (string-match "yes" val) "+trash")))
        ;(if (string-match "yes" val) "+spam")))
    
    (setq mew-inbox-action-alist
          '(("X-Spam-Flag:" mew-spam-bsfilter)))
    
    ;(setq mew-inbox-action-alist
    ;      '(("info@*:" mew-spam-bsfilter)))
    
    
    ; for "ls" (learn-spam)
    (setq mew-spam-prog "bsfilter")
    (setq mew-spam-prog-args '("-C" "-s" "-u"))
    
    ; for "lh" (learn-ham)
    (setq mew-ham-prog "bsfilter")
    (setq mew-ham-prog-args '("-c" "-S" "-u"))
    
    ; for "bm" (mark-spam)
    (define-key mew-summary-mode-map "bm" 'mew-summary-bsfilter-mark-region)
    
    (defun mew-summary-bsfilter-mark-region (&optional arg)
      "study/judge the region and put the '*' mark onto spams.
    need to re-learn if judgment of bsfilter is wrong"
      (interactive "P")
      (mew-pickable
       (let ((func 'mew-summary-pick-with-cmd)
    	 (mew-inherit-grep-cmd "bsfilter -a --list-spam"))
         (mew-summary-pick-body func t nil 'nopattern))))
    
    ; show X-Spam-Flag and X-Spam-Probability in message buffer
    (setq mew-field-spec
          (reverse (append (list (car (reverse mew-field-spec)))
    		       '(("^X-Spam-Probability:$" t)
    			 ("^X-Spam-Flag:$" t))
    		       (cdr (reverse mew-field-spec)))))
    
    
    (2)bsfilter の使い方
    
    mewがメッセージを取得する際、既にMTA, POP proxy等によりX-Spam-Flagヘッダが付いている場合には、spamに自動的に"D"マークが付く。
    
    summaryモードで以下が利用できる。
    
    lh
        learn-ham。現在のメッセージをcleanとして学習する。
    ls
        learn-spam。現在のメッセージをspamとして学習する。
    bm
        リージョン内のメイルを学習、判定。spamには"*"マークが付く。
    
    
    サマリーモードで、該当メールに ls と入力してやると、
    ミニバッファに Laening as spam.... というメッセージを出して、
    「学習」する。
    
    
    
    (3)bsfilter の起動
    $ bsfilter --pop --auto-update --insert-flag --insert-probability --pop-server mbox.kyoto-inet.or.jp --pop-port 110 --pop-proxy-port 10110 &
    
    確認
      395 pts/0    S      0:00 ruby /usr/bin/bsfilter --pop --auto-update --insert-flag --insert-probability --pop-server mbox.kyoto-inet.or.jp --pop-port 110 --pop-proxy-port 10110
    
     ホームディレクトリに、
    bsfilter というファイルを作成し、実行許可をつける。
    -rwxr--r--    1 jeanne   users         182  9月 16日  10:26 bsfilter*
    -------------
    /usr/bin/bsfilter --pop --auto-update  --insert-flag --insert-probability  --pop-server mbox.kyoto-inet.or.jp --pop-port 110 --pop-proxy-port 10110 --homedir /home/jeanne/.bsfilter
    -------------
    
     ~/.bash_login ファイルに次の記述を追加。
    /home/jeanne/bsfilter &
    これでローカルユーザ jeanne でログインした時に
    bsfilter が自動的に起動します。 
    
    
    bsfilter に、clean なメールと spam メールについて学習してもらう
    (コマンドからもいけますが、
    mew のサマリーモードで ls と入力すると学習する)
    
    クリーンメール
    $ bsfilter --add-clean ~/Mail/inbox/*
    $ bsfilter --add-clean ~/Mail/メールフォルダー/*
    
    spam メール
    $ bsfilter --add-spam ~/Mail/trash/*
    
    最後に
    $ bsfilter --update
    
    一旦学習が終わったらお試し
    $ bsfilter ~/Mail/inbox/1 (番号は必要なものを)
    
    こんな感じで該当のメールが spam かどうかをbsfilter が判断する
    jeanne@chie:~$ bsfilter ~/Mail/inbox/1
    combined probability /home/jeanne/Mail/inbox/1 1 0.000000
    jeanne@chie:~/Mail/inbox$ bsfilter ~/Mail/inbox/81
    combined probability /home/jeanne/Mail/inbox/81 1 0.500000
    
    
    (5)効果!!
    spam と判断されたものは、D マーク記号がつきます。
    いま横行している info@ の spam はランダムなドメイン名になっているようで、
    新しいものはなかなかひっかからないですね。
    ここでひっかからなかったメールは ls で spam 学習をさせておきます。
    
    
    mew で受け取り時に、spam は自動的に D 記号が付され、
    あとは x を入力すれば、一括で trash box に移動します。
    
    参考
    bsfilteの設定
    
    
    bookview
    /contrib/Text
    bookview-3.2-i386-P1.tgz 
    ndtpd-3.1.5-i386-P1.tgz
    eb-4.0-i386-P1.tgz
    
    辞書類は、
    /usr/share/eb/appendix/ 以下におく
    chujiten-2.3.tar.gz など
    
    ndtpd を手動で起動するには、
     # /usr/sbin/ndtpd
    
    設定にエラーがないかどうかを調べるためには、
    $ /usr/sbin/ndtpcheck
    
    kill や restartには、	
    /usr/sbin/ndtpcontrol
    
    きちんと起動するなら、
    起動時に ndtp が起動するように、
    /etc/inetd.conf に次の記述を加えます。
    ndtp  stream  tcp  nowait  root  /usr/sbin/ndtpd ndtpd --inetd
    
    ndtpd.conf を作る
    /usr/etc/ndtpd.conf.sample
    ndtpd.conf.sample を ndtpd.conf として変更する。
    /usr/etc/ndtpd.conf 
    ######################################################################
    # Configuration file for NDTPD and ebHTTPD.
    # (Copy this file to `ndtpd.conf', and edit it.)
    ######################################################################
    
    ### Port number `ndtpd' binds.
    ### (default: ndtp)
    # ndtp-port		ndtp
    
    ### Port number `ebhttpd' binds.
    ### (default: http)
    # http-port		http
    
    ### Owner of the server process.
    ### (default: none)
    #user			ndtpuser
    
    ### Group of the server process.
    ### (default: none)
    #group			ndtpgrp
    
    ### How many clients can be connected to the server at the same time.
    ### (default: 1)
    # max-clients		1
    
    ### Which hosts can or cannot connect to the server.
    ### (default: none)
    hosts			127.0.0.1
    hosts			::1
    hosts			!?
    hosts			chie.minerva.com
    
    ### Timeout seconds until the server disconnects an idle connection.
    ### (default: 900)
    # timeout		900
    
    ### Path to a working directory.
    ### Please create the directory and make it be writable for the server
    ### processes before executing the server.
    ### (default: /usr/var/ndtpd)
    # work-path		/usr/var/ndtpd
    
    ### How many hit entries the server tries to find at a search.
    ### (default: 50)
    # max-hits		50
    
    ### The maximum size of text the server may send as a response to
    ### a client.
    ### (default: 32768)
    # max-text-size		32768
    
    ### Syslog facility
    ### (default: daemon)
    syslog-facility		local0
    
    ###
    ### Book entry
    ###
    begin book
    
    name                chujiten 
             title               研究社 英和・和英中辞典 
             path                /application/dict
             appendix-path	/usr/share/eb/appendix/chujiten-2.3
             max-clients         2 
             hosts               127.0.0.1
             hosts               chie.minerva.com
          alias-eiwa          chujiten 
          alias-waei          chujiten 
         end 
    
    begin book
             name                genius
             title               ジーニアス英和辞典
             path                /application/dict/genius
             appendix-path	/usr/share/eb/appendix/genius-1.0
             max-clients         2 
             hosts               127.0.0.1
             hosts               chie.minerva.com
         end 
    
    begin book
             name                readers
             title               研究社 リーダーズ英和辞典
             path                /application/dict/readers
             appendix-path	/usr/share/eb/appendix/readers2-2.0
             max-clients         2 
             hosts               127.0.0.1
             hosts               chie.minerva.com
        end
    
    begin book
             name                 kojien
             title               広辞苑 第四版 電子ブック版
             path                /application/dict/koujien
             appendix-path	/usr/share/eb/appendix/kojien4-2.2
             max-clients         2 
             hosts               127.0.0.1
             hosts               chie.minerva.com
         end 
    
        ### Aliases.
        ### (default: none)
    #    alias-eiwa		chujiten
    #    alias-waei		chujiten
    #    alias-kojien	iwakoku
    #end
    
    ### Add a book group directive (lines between `begin book' and `end'),
    ### if you want to read another CD-ROM book.  A book group directive
    ### is required for each book.
    
    


    このファイルの先頭に戻る


    I enjoy Linux
    Linux 関連ページの目次にもどる。


    back to Home Page(English)

    ホームページに戻る(日本語)