MewのSPAM Filterが動かんので、XEmacs使うのやめますた。 Emacs-21.3にしました。
2003/06/09:
MewのSPAM Filterがうまく動かんし、なんとなくアップデート。
VineSeedPlusのsrc.rpmを使って、21.4.13にした。
まず、VineSeedから、
を持ってきて、 VineSeedのrpmパッケージを見るとautoconfと共存できる模様なので、 こいつをインストール。次に、VineSeedPlusから、
を持ってきて、rpm --rebuildとリビルド。 したら、前のXEmacsを削除して、今回作ったrpmパッケージをインストール。
% sudo rpm -e xemacs21.4 xemacs-sumo-20020919 % sudo rpm -ivh ~/rpm/RPMS/i386/xemacs-21.4.13-0vl1.i386.rpm ~/rpm/RPMS/noarch/xemacs-sumo-20030414-0vl1.noarch.rpm
設定ファイル(~/.xemacs/init.el)は、何も変更せずにOKだった。 ちなみに、どれを読むかは、~/.emacsの中で切り分けられてる。
2003/05/01:
プロポーショナルフォントが使ってみたかったので、
ついに重い腰を上げてemacs20.7から移行。
Emacs21系にするかXEmacsにするかで、いろいろ試行錯誤したけど、
Cannaがすぐに動かないって点で、Emacs21はヤメて、XEmacsにした。
で、今やもうすっかり軟弱者なので、
% apt-cache search xemacs x-face-xemacs - X-Face Utilities for XEmacs & Emacs-21.1 xemacs-el - The source files of the standard elisp modules for XEmacs mew-el-xemacs - Messaging in the Emacs World rail - rail - Replace Agent-string Internal Library for emacsen skk-el-xemacs - SKK elisp sources xemacs-sumo-el - Emacs Lisp source files of sumo and mule-sumo xemacs21.4-el - The source files of the standard elisp modules for XEmacs xemacs21.4 - The XEmacs Editor(Gamma Version) color-mate - colorize emacsens' window mew-common - Common files/programs for Mew Emacs/XEmacs x-face - X-Face Utilities for XEmacs & Emacs-21.1 skk-xemacs - SKK for XEmacs without elisp sources xemacs-sumo - XEmacs "SUMO" packages (including mule-sumo) xemacs - The XEmacs editor
と、VinePlusから検索。xemacs21.4を入れることにした。 でも、そう決めるまでには長い道のりを経ていて、 実は、emacs21もxemacs(21.1)もインストールして、 あーだこーだとさんざん試してたりする。 結局、どうにも使いにくいので、結論として21.4になった、というわけ。
さて、入れるのはaptでサクッ、だけど、それからが大変だった。 Emacsは初期コストが大変過ぎる。ワケわからんすぎる。 機能もいいけど、設定の容易性ももうちょっとなんとかなってほしいなぁ。(T-T) でも、自分で書けないので、文句は言うまい。(もう言ってる)
いざ、XEmacsにすると、まずMewが動かない。ので、XEmacsでバイトコンパイルした rpmを作りなおして入れた。でも、urlをマウスの中ボタンでクリックしても ブラウザに行かない。。。さんざん彷徨った挙げ句、 [debian-users:30418] Re: Start a browser from Mew に解決策を発見。(のべ3時間はかけた…)
*scratch*バッファに移り、mew-message-mode-hookと入力してCtrl-jを押す
へぇぇ、C-jってhookにも効くのね。変数値が見れるだけかと思ってました。 初めて知りましたよ。とにかく直って良かった。これ、結構使う機能だから。:) で、次はフォントの変え方。メニューバーからいじっても iso-8859な文字しか大きさが変わらない。1バイト文字と2バイト文字の大きさが 連動しない。なんぢゃこりゃー。(-_-; ~/.xemacs/init.el内でset-face-fontしても全然効かない。 これも2時間くらい悩んだ挙げ句、なんとかオアシスに辿り着けた。 XEmacs のフォント、背景と文字の色の設定 に、M-x list-faces-displayなんてイカした技が 載ってました。これのお陰で、どのフォントが効いて、どれは無視されるかが分かりました。 kochiは指定できないようで、無視されてました。大人しくfixed-gothicにしました。(T-T)
そうそう、XEmacsにしたらホイールマウスも効くようになった。けっこう楽。:) (Emacs20.7でも設定すりゃできたのかもしれないけど!?)
でも、MewのSPAM Filterが効かなくなった。未だ直せず。
Emacs上でwell-formed XML文書が書けるモード。
James Clark unveils a new XML mode for GNU Emacs から辿って、download site からnxml-mode-20030915.tar.gzをget。
% cd ~ % tar xvfz nxml-mode-20030915.tar.gz % cd /usr/local/share/emacs/site-lisp ←Emacs向けね % sudo mv ~/nxml-mode-20030915 .
これでインストールはおしまい。次は設定。~/.emacs.elに以下を追加。
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; for nXML ;; (setq load-path (append '("/usr/local/share/emacs/site-lisp/nxml-mode-20030915") load-path)) (load "/usr/local/share/emacs/site-lisp/nxml-mode-20030915/rng-auto.el") (setq auto-mode-alist (cons '("\\.\\(xml\\|xsl\\|rng\\|xhtml\\)\\'" . nxml-mode) auto-mode-alist))
軽く試してみたところ、なかなかいい感じ。その内容は、 日記を参照してちょ。
やはり、/usr/lib/courier-imap にインストールされてるのは気持ちが悪いので、 /usr/local/courier-imap に入るようにconfigureしなおした。他の設定はおんなじ。
% ./configure --enable-unicode=iso-8859-1,utf-8,iso-2022-jp --with-redhat \ --enable-workarounds-for-imap-client-bugs \ --prefix=/usr/local/courier-imap2003/10/17:
Mewの作者さんも メール環境をIMAPに移行したそうなので、 今後はIMAP系の方が更新の比重が高くなりそうってのもあって、 そろそろ前々から気にしていたIMAPに移行するかな、まずは練習だ、と Courier-IMAPをインストール。
IMAPサーバの実装はいくつかあるみたいだけど、 ちょろちょろ見て回ったところ、これが更新も続いててよさげだったので、 これに決定して、courier-imap-2.1.2.tar.bz2 をダウンロード。
% cd ~/work/src % tar xvfz {somewhere}/courier-imap-2.1.2.tar.bz2 % cd courier-imap-2.1.2 % ./configure --enable-unicode=iso-8859-1,utf-8,iso-2022-jp --with-redhat --enable-unicode=iso-8859-1,utf-8,iso-2022-jp: 日本語が検索できるように --with-redhat: これつけないとRed Hat系Linuxでは、configureが止まるため % make % make check % sudo make install ←/usr/lib/courier-imapに全部入る % sudo make install-configure
インストールが終わったら、imapdを設定するんだけど (今回、POP3は変更する必要はないので、imapdの方だけ設定する)、 2.1.2では、make install-configure で作られる雛型で CRAM-MD5認証もサポートするようになってるから、変更するとこなかった。 それよりも、このimapdはデーモンとして自分で立ち上がるので、 /etc/inetd.confのimapのエントリを以下のようにコメントアウトして、 tcpdの配下から外してやる。
#imap stream tcp nowait root /usr/sbin/tcpd imapd
次に、CRAM-MD5認証をするための設定をする。 FreeBSD-AT RANDOMのCourier-IMAP を参考に(というか、ユーザ名を変えるだけ)、userdb.datファイルを作成。
% cd /usr/lib/courier-imap/sbin % sudo ./userdb hogehoge set home=/home/hogehoge mail=/home/hogehoge/Maildir uid=1000 gid=1000 ↑ユーザ名が hogehoge で、uid=1000, gid=1000の場合 % sudo ./userdbpw -hmac-md5 | ./userdb hogehoge set hmac-md5pw Password: ←hogehoge用のCRAM-MD5認証につかうパスワードを入力 Reenter password:
これで、/etc/userdb* のいくつかのファイルが作られる。 あとは、起動すりゃおっけーだ。 /usr/local/courier-imap/libexec/imapd.rc スクリプトで起動しる。
0.98alpha15が出たので上げてみる。
Packages for X-CD-Roast 0.98alpha15
から辿って、xcdroast-0.98alpha15-1.GTK1.src.rpm をもらってくる。
ここは、Red Hat 7.3, 8, 9, さらにFedoraのバイナリパッケージもあって、
さらには、GTK1,GTK2のどちらのsrc.rpmもあるので、素晴しい。
その他、X-CD-Roastがcdrtools 2.00.3以上を要求しているので、
VineSeedPlusのftpサイトから、
cdrtools-2.01-0.a15vl2.src.rpmももらってくる。で、リビルド。
% rpm --rebuild ~/ftp/cdrtools-2.01-0.a15vl2.src.rpm % sudo rpm -Uvh --force ~/rpm/RPMS/i386/cdrtools*2.01*.i386.rpm % rpm --rebuild ~/ftp/xcdroast-0.98alpha15-1.GTK1.src.rpm % sudo rpm -Uvh ~/rpm/RPMS/i386/xcdroast-0.98alpha15-1.i386.rpm
なんか、cdrtoolsは1.11aの方が、2.01より上だと認識されちゃったので、 --force付けて入れた。
某MLにSPAMが異様に流れるので、そこから配信されたやつはスコアを2.0上げるように ~/.spamassassin/user_prefsにテスト(ルールと呼ぶのとどっちが正しい?)を追加。
# add by yoshi start header HOGE_ML List-Id =~ "hoge.ml.example.com" describe HOGE_ML Mail from hoge ML score HOGE_ML 2.0 # add by yoshi end
しかーし、このテスト追加がSPAMの判定に反映されない。調べてみると、
% spamc < ~/Mail/inbox/634 % spamassassin < ~/Mail/inbox/634
の両者で、判定結果が違うことが判明。 なんと、spamdに判定させると、~/.spamassassin/user_prefsのテストセットが、 以下のように軒並解析エラーで弾かれてた。 (spamd -D とデバッグオプションを付けて起動すると、標準出力にデバッグ文が出力される)
debug: Failed to parse line in SpamAssassin configuration, skipping: header ISO2022JP_CHARSET Content-Type =~ /charset=['"]?iso-2022-jp['"]?/i
spamdデーモンとspamassassinコマンドで動きが違う。なによそれ。:(
その根本原因までは追えてないので、ひとまず、コマンドの方を使うことで回避。 ~/.procmailrcを以下のように修正した。
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail # You'd better make sure it exists
LOGFILE=$MAILDIR/procmail.log
VERBOSE=off
LOCKFILE=$MAILDIR/.procmail.lock
#:0fw
#* ! ^X-Spam.* # if it has not X-Spam header
#| /usr/bin/spamc
:0fw # filter and wait
| /usr/bin/spamassassin # pass to spamassassin
#| /usr/bin/spamc # pass to spamd
:0
* ^X-Spam-Flag: YES
spam/. # will go to $MAILDIR/spam
#:0 # if you want to forward mail, uncomment this
#! yoshi@example.com # forward all to this address
(すげー見つけにくいけど)ちゃんと書いてあった。Mail_SpamAssassin_ConfのPRIVILEGED SETTINGSに
These settings differ from the ones above, in that they are considered 'privileged'. Only users running spamassassin from their procmailrc's or forward files, or sysadmins editing a file in /etc/mail/spamassassin, can use them. spamd users cannot use them in their user_prefs files, for security and efficiency reasons, unless allow_user_rules is enabled (and then, they may only add rules from below).
て、spamdだとデフォルト無効よん、と。 てことで、~/.spamassassin/user_prefsを読んでくれるように、 以下の3行だけの/etc/mail/spamasssassin/local.cfを作って、spamdを再起動したら、 ちゃんと自分のテストセットが有効になった。:)
# add by yoshi start allow_user_rules 1 # add by yoshi end
ちなみに、 TLECのuser_prefsが 2004/03/18に更新されていたので、それをベースに~/.spamassassin/user_prefsを 更新。最終的に、TLECのuser_prefs + 以下の定義になってる。
# add by yoshi start blacklist_from *@yahoo.com *@excite.com *@geocities.com *@lycos.com *@aol.com blacklist_from come-com@vmail.plala.or.jp blacklist_from *@two5-5inchfloppies.net *@savings-book.net *@byte.it blacklist_from *@usatoday.com *@go.com *@level3.net *@worldemail.com blacklist_from *@dotdel.com *@internetseer.com *@earthlink.com *@gateway.com blacklist_from *@enetmall.us *@fairfax.com *@citiz.net *@kinki-kids.com blacklist_from *@371.net *@trimbelleriver.com *@compu.net *@att.net *@sprint.com blacklist_from *@lessthanyouthink.com *@123.com *@giftpromos.com *@263.net header HOGE_ML List-Id =~ "hoge.ml.example.com" describe HOGE_ML Mail from hoge ML score HOGE_ML 2.0 version_tag eternal required_hits 5.0 # add by yoshi end2004/01/09:
TLECのやつでも引っかからないのがあるんで、~/.spamassassin/user_prefsに 設定を追加。以下のドメイン/アドレスからのメールは全てspamとする。 最初、末尾に追加したら効かなかったので、先頭に記述。
# add by yoshi start blacklist_from *@yahoo.com *@excite.com *@geocities.com *@lycos.com *@aol.com blacklist_from *@two5-5inchfloppies.net *@savings-book.net *@byte.it blacklist_from *@usatoday.com *@go.com *@level3.net *@worldemail.com blacklist_from *@dotdel.com *@internetseer.com *@earthlink.com *@gateway.com blacklist_from *@enetmall.us *@fairfax.com *@citiz.net *@kinki-kids.com blacklist_from *@371.net *@trimbelleriver.com *@compu.net *@att.net *@sprint.com blacklist_from *@lessthanyouthink.com *@123.com *@giftpromos.com *@263.net blacklist_from come-com@vmail.plala.or.jp # add by yoshi end
これにヒットするとスコアが+100される。
それと、よそのSpamAssassinを通ってても、僕んとこのよりrequired_hitsが低くて、 spamフォルダに直行しないのが結構あるので、自分とこで毎回かけるようにする。 ~/.procmailrcを以下のように修正。
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:. MAILDIR=$HOME/Mail # You'd better make sure it exists LOGFILE=$MAILDIR/procmail.log VERBOSE=off LOCKFILE=$MAILDIR/.procmail.lock #:0fw #* ! ^X-Spam.* # if it has not X-Spam header #| /usr/bin/spamc :0fw # filter and wait | /usr/bin/spamc # pass to spamassassin :0 * ^X-Spam-Flag: YES spam/. # will go to $MAILDIR/spam #:0 # if you want to forward mail, uncomment this #! yoshi@example.com # forward all to this address2003/12/17:
一時期試みたことはあるけど、何故だかやめちゃってた(なんでか忘れた)
SpamAssassinを設定。
設定方法は、この辺りのサイトを
参考にすればできちゃう。
spamassassinは、やっぱりコマンドよりもデーモンの方が処理時間が短かったので spamcを呼ぶようにした。そのためにデーモンを起動しとく。
% sudo /etc/rc.d/init.d/spamassassin start % sudo chkconfig --level 3 spamassassin on
各ファイルの内容は以下。
~/.forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 # yoshi"
IFS=' 'の部分は、セパレータを示す環境変数IFSに半角空白を設定してる。 &&の部分は、左辺が正常終了したなら、右辺を実行するって意味。 execはbashの内部コマンドで、"/usr/bin/procmail -f-"を実行するって意味。 ||の部分は、左辺が異常終了したなら、右辺を実行するって意味。 procmailがちゃんと呼べなかったら、復帰値75で終了しろ、ってことですな。 (これらは、bashのmanに載ってる) 復帰値の75ってのは、 UNIXの部屋 検索結果 や/usr/include/sysexits.hに載ってて、"temp failure; user is invited to retry"な場合の復帰値。
~/.procmailrc
PATH=$HOME/soft/bin:/usr/bin:/bin:/usr/local/bin:. MAILDIR=$HOME/Mail # You'd better make sure it exists LOGFILE=$MAILDIR/procmail.log VERBOSE=off LOCKFILE=$MAILDIR/.procmail.lock :0fw * ! ^X-Spam.* | /usr/bin/spamc :0 * ^X-Spam-Flag: YES spam/. # will go to $MAILDIR/spam #:0 #! yoshi@example.com
~/.spamassassin/user_prefs
TLECのuser_prefsをそのまま拝借。
あと、自分のspamコレクション(笑)を使って、学習させとく。
% cd % sa-learn --spam --file ~/Mail/spam/*
6547通学習させたら、bogomips 3381.65のマシンで、44分もかかった。:D
当り前すぎて書いてなかったけど、記録がてら書いとく。
# # initialize file for tcsh on eternal. # Updated Time-stamp: <03/12/24 10:31:34 yoshi> # # add directories for local commands #set lpath = ( ) # set path list # for Linux, /usr/gamesはfortuneコマンドのため set path = ( . /usr/java/j2sdk1.4.1/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/bin/X11 /usr/games ~/tool ) # cd path #set lcd = ( ) # add parents of frequently used directories #set cdpath = (.. ~ ) # aliases for all shells source ~/.aliases # if not interactive shell, exit if ($?prompt == 0) exit # settings for interactive shells set history=50 # 履歴数 set savehist=50 # ログアウト時に保存する履歴数 #set ignoreeof # C-dによるログアウト禁止 set notify # ジョブ完了の通知 set prompt="! %m: %# " # 左プロンプト(ヒストリ番号, ホスト名, # or >) set rprompt="[ %{^[[33m%}%~%{^[[00m%} ]" # 右プロンプト(黄色でカレントディレクトリ表示) set time=30 # 指定秒以上かかったコマンドのtime表示 #set filec # ファイル名補完 set fignore = (.o) # ファイル名補完で無視する拡張子リスト #set noclobber # リダイレクトの制限 unset autologout # 自動ログアウトはしない umask 022 # ファイル作成マスク(755に) # for library path setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib # for LANG #setenv LANG ja # for Solaris setenv LANG ja_JP.eucJP # for Vine Linux setenv LC_ALL ja_JP.eucJP # for man page #setenv MANPATH /usr/man:/usr/local/man setenv PAGER less setenv JLESSCHARSET japanese # これと .Xdefaultsの Emacs*xnlLanguage: C と組み合わせてないと # Emacs-20.3でkinput2が立ち上がってしまう。 setenv XMODIFIERS '@im=' # for crontab(1) setenv EDITOR vi # for apt-get #setenv no_proxy fujitsu.co.jp setenv http_proxy http://proxy.ec.cs.fujitsu.co.jp:8080/ #setenv ftp_proxy #setenv gopher_proxy # for Java setenv CLASSPATH .:/usr/java/j2re1.4.0_01/:/usr/local/xalan/bin # for PGP setenv PGPPATH ~/.pgp # for CVS setenv CVSROOT /home/yoshi/cvs setenv CVSEDITOR emacs # for gtk日本語化 setenv GDK_CONV "" # for zphoto setenv ZPHOTO_TEMPLATE_DIR /home/yoshi/etc/templates/ja setenv ZPHOTO_FONT /usr/local/share/zphoto/fonts/EfontSerifB.fdb setenv LD_LIBRARY_PATH /usr/local/lib:/lib # for ls colors eval `dircolors ~/.dircolors` # commands for interactive shells (.loginでやるのが正解かも) stty erase '^h' stty intr '^c' stty kill '^u' stty eof '^d' stty pass8 # comment this if Solaris
4mm DDSなどテープデバイスを操作する際に必要なmtコマンド。
mt-stパッケージに入ってるんで、apt-getでインストール。
% sudo apt-get install mt-st
デバイス名は、/dev/st0とかで、no rewindな時は、/dev/nst0。 ちなみに、DDSテープの容量は、