Last modified: Sun Oct 06 10:59:43 JST 2019

魔導(Meadow)士への道 IV

Meadow(メドウ)の達人(導師)を目指す意味合いで '魔導士への道' と命名しました. 'まどうし' と書いていますが無理矢理 'めどうし' と読んでください.

自宅と会社で快適に Meadow を使っていましたが, 2009 年末に会社の PC が クラッシュ. (Windows がクラッシュと言った方が良いかも.) あれこれリカバリを 試みたんですが全くダメ. 結局クリーンインストールしました.

もちろん Meadow も再設定. クラッシュ前は Mew の master-password 機能を 使って, 複数のメールアカウントのパスワードを一元管理をしていたんですが, 何故か同じ環境が作れません. 前回 master-password 環境を導入した際も, あちこちの Web 情報を元に, カット・アンド・トライを繰り返して やっと達成したのですが, 今回もまた同じ事を繰り返すことに... これに懲りて今回はメモを残すことにしました.

目次

  1. Meadow のインストール IV
  2. メールパスワードの一元管理(Mew の master-password 機能)
  3. 日本語入力(Canna + yc) III

過去の目次(魔導士への道 III)

  1. Meadow のインストール III
  2. メーラ(Mew + Gmail)
  3. 日本語入力(SKK)
  4. 日本語検索(Migemo) III

過去の目次(魔導士への道 II)

  1. Meadow のインストール II
  2. メーラ(Mew) II
    1. UCS 設定
  3. 日本語入力(Canna + yc) II
  4. 日本語検索(Migemo) II
  5. Windows との連携強化
    1. 下準備 gnuserv の導入
    2. ドラッグ & ドロップ用ショートカットの作成
    3. 送り先に Meadow を加える
    4. ファイルの関連付け
    5. 外部ブラウザを開く
    6. mailto で Meadow を開く
  6. SPAM メール対策(POPFile)
  7. 付録. 設定サンプル(.emacs, .mew.el)

過去の目次(魔導士への道 I)

  1. Meadow のインストール I
  2. メーラ(Mew) I
  3. 日本語入力(Canna + yc) I
    1. 脱 MS-IME 宣言
    2. Canna の導入
    3. YC の設定
  4. 日本語検索(Migemo) I
    1. Migemo(オリジナル Ruby 版)
    2. C/Migemo
  5. フォント設定
  6. その他(html-helper-mode 等)
  7. 参考リンク

1. Meadow のインストール

前回と同じく Netinstall を用いて インストールを行います. ここで単純且つ重要なポイントは Meadow 3.00 版を 入れることです. 今回何故か 2.10 版をインストールしてしまい大きく躓きました.

今回選択したパッケージは, ABC 順に apel, gnuserv, html-helper-mode, imagemagick, Meadow(本体), mew, migemo, misc, mule-ucs です. ちなみに インストールした Mew のバージョンは 5.1-1 でした. Mew 自体は現在 6.2 が リリースされていますが, master-password 機能は Mew 5.1 から実装されているので とりあえず良しとします.

2. メールパスワードの一元管理

さて本題の master-password 機能を使ったメールパスワードの一元管理方法です. ポイントは 2 つのプログラム GnuPG と fakecygpty です.

GnuPG は Cygwin のパッケージから選んでインストールします. 結構 見付けづらいのですが Utils カテゴリの中にあります. 適切にインストールされれば gpg.exe が $(Cygwin ディレクトリ)/bin 以下に置かれます. 念のため ここに Path が通っていることを確認しておきましょう. 動作確認をするならば 以下を実行してみましょう.

$ gpg --gen-key

fakecygpty はその名の通り, CYGwin 環境下で呼び出しプロセスに 仮想(FAKE)の端末(PTY)を与えるプログラムで, Meadow のソースに 含まれています. 実際のソースの取得は $(ソースツリー)/nt/fakecygpty.cに行き, 画面下の方のプレーンテキストでダウンロードをを選ぶのが簡単かな. このダウンロードした fakecygpty.c をコンパイルして, 出来た fakecygpty.exe を Path の通ったディレクトリに置けば OK です. (私は $(Meadow ディレクトリ)/bin 以下に置きました.)

$ gcc -o fakecygpty.exe fakecygpty.c
$ install fakecygpty.exe /cygdrive/c/meadow/bin/.

ここまで来たら, 後は .emacs と .mew.el に以下の記述を加えるだけ.

[.emacs]
(setq mw32-process-wrapper-alist
      '(("/\\(bash\\|tcsh\\|svn\\|ssh\\|gpg[esvk]?\\)\\.exe" .
         (nil . "fakecygpty.exe"))))
[.mew.el]
(setq mew-use-cached-passwd t)
(setq mew-use-master-passwd t)

初回の Mew の起動時に master password を何にするか聞かれます. (確認入力も あります.) このあと, それぞれのメールサーバへの初回接続時にメールパスワードを 聞かれます. (こちらはもちろんメールサーバ毎のパスワードです.) mew-config-alist に記述したサーバの切替え(記述ケースの切替え)コマンド 'C'(大文字の C) を使って, 全てのサーバにアクセスしておきましょう. 初回接続時に設定したパスワードが暗号化して登録され, 初回以降は Mew 立ち上げ時のマスターパスワード入力だけでアクセス可能になります. うーん楽チン.

3. 日本語入力(Canna + yc)

2010 年のゴールデンウィークに再び Meadow のインストールの機会が訪れました. 私は相変わらず日本語入力に「かんな(Canna)」と「YC」の組合せを用いており, この環境構築のためには, 以前 と同じく, Cygwin を入れて, Canna をコンパイルすると言う手順が必要です. Canna は何度もコンパイルしており, その実行環境をコピーするだけと言う 手も有りなのですが, コンパイルの時に用いた Cygwin のバージョンが随分 上がっていることを考えると, 再コンパイルした方が良さそうです.

この機会にと Canna のソースを チェックするとバージョンが 3.7p3 になっている. 更にデフォルトで Cygwin の コンパイルに対応している様子. では早速と思いつつふと見ると, Cygwin JE で コンパイル済の物が用意されている! 更に cygrunsrv と使えばサービス化も 可能なように拡張されている. これは利用させて頂くしかない.

全て用意されているなら何も考えずにあっさり. を期待していましたが, あちこちで問題が... 最終的に以下の手順で何とか動かしています.

3.1 Cygwin JE から Canna のダウンロード

黙って Cygwin の setup.exe を実行して Cywin JE に繋ぐと

Unable to get http://cygwin-je.sourceforge.jp/cygwin_je//setup.bz2.sig \
from <http://cygwin-je.sourceforge.jp/cygwin_je/>

と言って怒られます. つまり setup.bz2.sig がないからと言って接続拒否されます. ここは一番(DOS の)コマンドプロンプトから setup.exe を立ち上げましょう.

最近の Windows ユーザにはコマンドプロンプトと言っても馴染みが無いかも. 「スタート」-「アクセサリ」-「コマンドプロンプト」で立ち上げるか, 「スタート」メニューの「検索の開始」や「ファイル名を指定して実行」欄から 'cmd' と入力して立ち上げます.

DOS 画面が立ち上がったら setup.exe のあるディレクトリに移動し,

> setup -X

を入力します. 引数の '-X' が味噌です. これで setup.bz2.sig が無い問題は 無視してくれます. ちなみに setup.exe のオプションは他にもいろいろあります. '-h' オプションで確認できます.

Command Line Options:
 -D --download                          Download from internet
 -L --local-install                     Install from local directory
 -s --site                              Download site
 -O --only-site                         Ignore all sites except for -s
 -R --root                              Root installation directory
 -P --packages                          Specify packages to install
 -C --categories                        Specify entire categories to install
 -p --proxy                             HTTP/FTP proxy (host:port)
 -q --quiet-mode                        Unattended setup mode
 -M --package-manager                   Semi-attended chooser-only mode
 -h --help                              print help
 -l --local-package-dir                 Local package directory
 -r --no-replaceonreboot                Disable replacing in-use files on next
                                        reboot.
 -X --no-verify                         Don't verify setup.ini signatures
 -n --no-shortcuts                      Disable creation of desktop and start
                                        menu shortcuts
 -N --no-startmenu                      Disable creation of start menu shortcut
 -d --no-desktop                        Disable creation of desktop shortcut
 -K --pubkey                            Path to extra public key file (gpg
                                        format)
 -S --sexpr-pubkey                      Extra public key in s-expr format
 -u --untrusted-keys                    Use untrusted keys from last-extrakeys
 -U --keep-untrusted-keys               Use untrusted keys and retain all
 -A --disable-buggy-antivirus           Disable known or suspected buggy anti
                                        virus software packages during
                                        execution.

話が脱線しました. Cygwin Setup を立ち上げたら, Download Site の選択画面まで 進みます. 次に User URL の欄に Cygwin JE の位置 'http://cygwin-je.sourceforge.jp/cygwin_je/'

[Cygwin Setup]

を入力し, 'Add' ボタンを押します. (入力の際にハイフンとアンダースコアの違いに 注意してください.)リストに加わった 'http://cygwin-je.sourceforge.jp' を 選択し次へ進むと, 無事に接続でき, パッケージリストが表示されます. ここで Canna を選んでインストールすれば OK.

ちなみに Canna は System カテゴリに入っています. また Canna を選択すると libCanna も自動的に選択されます. (こちらも必要です.) このあたりの Packages の仕組みを知りたければ, 'http://cygwin-je.sourceforge.jp/cygwin_je/setup.ini' を覗いてみてください.

3.2 かんなサーバの立ち上げ

cannaserver はサービス化も可能とのことなので, 直接立ち上げる必要は 無いかも知れませんが, まずは動作確認のためにも, コマンドラインからの 起動を確かめましょう. 引数 '-net' を付けることがポイントです. これが無いと, UNIX ドメインでの接続はできますが TCP 接続は受け付けません. TCP 接続ができないと後述の YC からの接続ができませんでした. (下記の例で, 実行ファイルのディレクトリに PATH が通してあれば PATH の記述は 省略できます.)

[DOS プロンプトの場合]
> C:\cygwin\usr\sbin\cannaserver -inet
> C:\cygwin\bin\cannastat -cs localhost
Connected to localhost
Canna Server (Ver. 3.7)
No clients

[Cygwin bash の場合]
$ /usr/sbin/cannaserver -inet
$ /usr/bin/cannastat -cs localhost
Connected to localhost
Canna Server (Ver. 3.7)
No clients

ここまで来たら一応 batch ファイルからの立ち上げができるように設定しておきます.

[canna.bat]
@echo off
C:\cygwin\usr\local\canna\bin\cannaserver.exe

ここまで来たら一応 batch ファイルからの立ち上げができるように設定しておきます. もし, 辞書に手を加えたい場合は, 以前の 記述の '辞書の入れ換え' 部分を参照ください. 今回, 辞書は '/var/lib/canna/dic/' に置かれています. アイコンが欲しい場合も以前のもの [Canna Icon] をお使いください.

3.3 YC の設定

ここまで来たら後は Meadow 側で YC の設定をします. YC の部屋から 最新版 version 5.0.0 をダウンロードして, 展開したファイルを yc.el とリネーム, lisp のパスが通ったところへ置きます. (私の場合 C:\meadow\site-lisp) ついでに byte-compile しておきましょう. 最後に .emacs に YC 関係の設定を記述. 今回は以下のようにしています. これで, この記述部分を読み込ませるか Meadow を再立ち上げすれば boiled 環境が使えるようになります.

;;------------------------------------
;; YC (Yet another Canna client) 設定
;;------------------------------------
(setq yc-server-host "localhost") ; かんなサーバホスト名
(setq yc-rK-trans-key "\C-j")
(setq yc-use-color t)
(setq yc-use-fence (not (eq window-system 'x)))
(load "yc") ; これでフェンスモードは使用可能
(global-yc-mode 1) ; 全バッファで ANK-漢字変換を有効にする
(global-set-key "\M-\ " 'yc-mode)
(setq yc-canna-lib-path "/var/lib/canna/") ; かんなの初期設定パス
(setq yc-canna-dic-path "/var/lib/canna/dic/") ; かんなの辞書パス
(setq yc-select-count 2)
(setq yc-stop-chars "(){}<>")

3.4 cannaserver のサービス化

最後に cannaserver のサービス化です. これにはここまでのファイルの他に cygrunsrv.exe が必要です. which や whereis コマンドで cygrunsrv を 探してください. /bin (= /usr/bin) に見つかれば OK. 無ければ setup.exe を使ってパッケージをインストールしてください. Admin カテゴリにあります.

cygrunsrv が用意できたら, まずコマンドプロンプトを立ち上げます. Cygwin bash 環境でも大丈夫だと思いますが, 私は DOS プロンプトで作業しました. ここで注意としては, サービスの登録には管理者権限が要求されます. そのため Windows Vista の場合は管理者権限でコマンドプロンプトを立ち上げる 必要がありました. 後は以下のコマンドを入力するだけです. (ほとんど Cygwin JE の Canna のリリースノートに書かれている通りです.)

> C:\cygwin\bin\cygrunsrv.exe -I cannaserver -d "CYGWIN cannaserver"
  -p C:\cygwin\usr\sbin\cannaserver.exe -a "-inet -k"
(実際には 1 行で入力ください.)

コマンドラインで開始/停止を行うには, 以下を実行します.

[開始]
> net start cannaserver
[停止]
> net stop cannaserver

サービスは Windows の管理ツールを使って確認可能です. (Vista の場合,「スタート」-「コントロールパネル」-「管理ツール」-「サービス」) ここからサービスの開始/停止も可能です. ここでスタートアップの種類が [自動] に なっていれば, 次回から WIndows 起動時に自動的に立ち上がります.

[Vista Service]

ちなみにこの管理ツールからサービスの取り消しはできないようです. 登録ミスなどで登録を取り消したい場合は sc.exe コマンドを利用します.

[登録名の確認]
> sc query cannaserver
[停止]
> sc delete cannaserver

これで設定完了と言いたいところですが, まだ問題が... 実際にシステムを 再起動してみるとうまく立ち上がりません. シャットダウンの際に UNIX ドメインソケット /tmp/.iroha_unix/IROHA が残ってしまうのが原因です. スクリプトを作って cannaserver 立ち上げ前に IROHA ファイルを消すのも 手ですが, ここまで来て何とも格好悪い方法です. 終了時に上述の net stop cannaserver が実行されれば全く問題なくスマートなのに. 悩んだ挙げ句シャットダウンスクリプトで対応することにしました.

以下, Vista の場合の方法です. 「スタート」-「検索の開始」ボックスに gpedit.msc を入力. これでローカルグループポリシーエディタが立ち上がります. その中で「コンピュータの構成」-「Windows の設定」-「スクリプト」- 「シャットダウン」と選択して行き, スクリプト net stop cannaserver を追加登録します.

[Vista Shutdown Script]

以上の設定で, (今のところは)問題なく動いています. もっと良いやり方があれば 是非お教えください. (きっとあるはずです)