Last modified: Tue Apr 6 08:52:49 JST 2004

XEmacs の設定

2003/09/17:

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が効かなくなった。未だ直せず。


nXML の設定

2003/09/21:

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))

軽く試してみたところ、なかなかいい感じ。その内容は、 日記を参照してちょ


Courier-IMAP の設定

2003/11/05:

やはり、/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-imap
2003/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 スクリプトで起動しる。


X-CD-Roast の設定

2003/11/08:

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付けて入れた。


Spamassassin の設定

2004/03/30:

某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 end
2004/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 address
2003/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


tcsh の設定

2003/12/24:

当り前すぎて書いてなかったけど、記録がてら書いとく。

#
#	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

mtコマンド の設定

2003/12/27:

4mm DDSなどテープデバイスを操作する際に必要なmtコマンド。
mt-stパッケージに入ってるんで、apt-getでインストール。

% sudo apt-get install mt-st

デバイス名は、/dev/st0とかで、no rewindな時は、/dev/nst0。 ちなみに、DDSテープの容量は、


All Right Reserved, Copylight (C) Yoshinori ARAI. 1996-2004
あらいよしのり

目次へ back icon