Mac でオタク
目次
能書き
こけつまろびつ MacOS X Tiger
Terminal Emulators
Virtual Machines
Mail 環境
Web 環境(2007-05-05 (Sat): 追補)
Emacs
能書き
「新しい Linux Machine を」とずっと思ってきたのに、昨年の 9 月にあっさり Mac Pro に篭絡されてしまった。しかしまだその時は、すっかり MacOS に転向しようとまでは思っていず、しかも「なあに Linux 類似の環境は、Mac でも『すぐに』作れるさ」と高を括っていた…… その頃漠然と思っていた「然る可き環境」とは- Musts:
- (X)Emacs(SKK, Wanderlust, emacs-w3m, ...)
- Terminal emulator (できれば、MLterm)
- Antialiasing Fonts (できれば、ヒラギノ明朝 + Luxi Mono)
- Applications/Utilities:
- Python
- skkinput
- Gnuplot
- EBview
- Servers/Email 環境
- Rsync を使った back-up server (要するに、sshd?)
- SpamBayes を使った spam filter 込みの E-mail 環境。
- IMAP4 server
- HTTP server (動作確認用。先々は Blog 用?)
- Dynamic DNS client
最初は、Linux 機のフロントエンド (X server?) のように使えればいいや、 くらいに考えていた。それが、MacOS に一本化しようと思立つまでの経緯…
Linux マシンとの並立時代:
それまで使っていた Linux (FC5) 機に、何の設定もしないで ssh で login できた。 Terminal.app は日本語対応だし、はなから anti-aliasing (AA) フォントなので見かけ上は以前と殆んど変らない「生活環境」が構築で きた。(元々、MLterm の上で XEmacs を使っていたから。)但し、日本語フォントは Osaka 決め打ち。さらに iTerm と、Luxi ttf を導入。iTerm は ASCII と Asian font を個別に設定できるので、Luxi Mono と ヒラギノ明朝 W6 を設定した。spacing に加えて、文字間隔も設定できるので、所謂「等幅」で、かつバランスの好い組合せが実現できた。X11 on MacOSX:
しかしやはり漢字が若干間延びして見えるので、0.9 倍幅の Luxi を .fonts.conf で、と欲張って MacOS X の X11 を試したが、これが思ったよりかなりショボかった。 苦労して MLterm-2.9.3 をコンパイルして、 アンチアリアスフォントを使えるようにしたのに、ls で一行一行書き変っていくのがわかる程遅い。何より、zsh がちゃんと動かん!(port の MLterm=2.9.2 でもこれは同じ。X11 がショボいに違いない!) それではと、代替 X Server として XFree86 を試したが、あまり改善は見られない。Xorg に至っては、起動さえできない。 その途中で Perl のパッケージが管理がおかしくなってしまい、削除する事も、 上書きする事もできなくなってしまった。このあたりで、port や X11 に嫌気が差してきた。Virtual Machines:
ちょうどその頃 Parallels Desktop や、VMware Fusion が出て、ちょっと試してみたら、これが結構いけそうという感触。 FC6 のインストールは何の問題も無かったし、Linux 機で動いていたサーバ類もすぐ移植できた。Parallels へは、上記の iTerm から ssh でログインできたので、Linux 機はデータを移してからおはらい箱にした。 しかし使い続けていると、使い勝手や安定性に不満が出てくる(後述)。 というか、二つ並べて使っていたせいで、 「あっちでできる事がどうしてこっちでできないの?」 という事が重なり、満足できなかったのかも。(VMware さんの作戦成功か?:-)XEmacs, Aquamacs, Carbon Emacs:
ならば、MacOS へ一本化しようか、となったが、しかし実はこちらにも問題が有って、 日本語の表示が何かと不安定。しかもこれが terminal 達だけのせいでなく、その上で走らせる XEmacs-21.4.19/20 にも原因があるらしい事が解った。それ以降 (X)Emacs を色々試してみた。しかし、まず XEmacs-21.5 シリーズは、その上で Wanderlust を動くようにできなかった。次に試した Aquamax Emacs は、私にはとても斬新だったけど、今一使い続ける事に踏み切れなかった。 (第一 Wanderlust をどうインストールすれば好いのかさえ解らんかった。) しかし、最後に試した Carbon Emacs (Package) が、まさにビンゴ!という感じで、 これを使ってみる事にした。残るは…
これで勢いがついて、Linux (on Emulator) から完全移行しようというオタク的衝動にはずみがつく。 で、その後紆余曲折を経てサーバ機能等も移す事ができた。あとは、EBview を移せたら、もう Linux を完全に卒業できる、という段階まで来た。こけつまろびつ MacOSX Tiger
MacOS X は、NEXTSTEP の、さらに遡っては BSD Unix の流れを汲むものらしい。 しかも、Apple さんは、その上で走る Xcode という開発環境を供給してくれるという。それならば、Linux 上の今の生活環境を移す作業はそんなに難しくないだろう…。 と思っていたが、これは大外れとまではいかないまでも、ちょっと甘い観測であった。 そもそも、BSD/MacOSX 環境に慣れるのが大変。ディレクトリ構成
まず、ディレクトリの構成が Linux とかなり違っている。 BSD/NEXTSTEP を良く知らないので、どこが BSD ゆずりで、どこが Tiger 独自の「違い」なのかわからいけど、ちょっと忌々しくもある。 (そもそも何で '/' 直下のディレクトリ名に大文字を使うんだ? スペースを入れてないだけ有難いと思え、とも言えるが:-p) 違う上に、概してディレクトリが無闇に深い。 後知恵ながら/Users
へ /home
という link
を張っておくだけで、
以下の四苦八苦のかなりの部分が軽減できたのではないかと思う。
加えて /opt/local
へ /usr/local
から link
しても面白いと思うが、こちらはあまり確信が持てない。
env
が /bin
ではなく /usr/bin/
にある。可搬性を考えたつもりで
#!/bin/env python ……などとしてあったスクリプト達はことごとくアウト。とりあえず、
/bin/env
に /usr/bin/env
から link
を張って胡麻化した。
Daemon の起動
また、daemon 達の起動方法がとても混み入っている。というか、Linux でのように、サービスを activate するというのは要するに daemon を起動する事なんだ、と考えればスッキリするはずのところを、 わざわざすごく面倒な事にしていると思える。B. Jepson, E. E. Rothman の MacOSX Tiger for Unix Geeks には随分助けてもらったけど、 このあたりは、何度読み直してもよくわからない。まあ私なりの解釈だと- 立ち上げ時に /sbin/launchd が /System/Library/LaunchDamons/
の下にある、.plist ファイルを参照して daemon 群を立ち上げる。.plist
ファイルの中に、binary および、Enabled/Disabled が記述されている。
- 途中で、daemon のどれかを start/stop するには、例えば
# launchctl {load|unload} -w /System/Library/LaunchDaemons/ssh.plist
などとする。 - Darwinport (Macport と言うべきか)で daemon を install すると、
対応する .plist ファイルが
/Library/LaunchDaemons/
に付け加えられる。boot 時の start up や、途中での start/stop は上と同じ。
すなわち、
# launchctl {load|unload} -w /Library/LaunchDaemons/org.macports.apache2.plist
- ややこしい事に、もう一つ /sbin/SystemStarter
というものが有って、こいつもシステム立ち上げ時に daemon
を立ち上げるが、こちらは (/System)/Library/StartupItems
の下の direcotry を参照する。そのディレクトリは例えば
Apache ┳ Apache ┗ StartupParameters.plist
となっている。下側の Apache はシェルスクリプトで、呼ばれると /etc/hostconf の WEBSERVER={-NO-|-YES-} を見て、-YES- なら、起動する。 - Crontab は、Linux と同様に動いてくれる。
次に解らなかったのが、アプリケーションへ渡す環境変数の扱い。 ダブルクリックで起動した場合、shell が設定する環境変数が渡される筈は無いのはまあそうだろうけど、 それが ~/.MacOSX/environment.plist で、しかも XML で書かないといけないとは…。 ダブルクリックで起動して、かつ環境変数を見る、 というアプリケーションは少ないだろうけど、Emacs.app がこれを見るので無視できない。
Network の構成・設定方法
がかなり違う。 まず、Firewall が、iptable ではない…。ipfw というのか?ともあれ、例えば IMAP4 や SMTP のポートを開くには System Preferences -> Sharing -> Firewall と辿り、New... button を叩いて、 Port Name: で Other を選び(私には、なかなかこれが解らなかった!), TCP Number(s): 以下を埋めていく。私は Description: を protocol 名にしておいた。あと、/etc/hosts を変更しただけでは参照されない。 これを明示的に参照させる方法が解らない…。reboot するしかない? 行を削除するについては、即反映されるようなので、全く参照されないのではなく DNS の chache か何かのせいかも知れない。
フォント
Tiger には英語版でも(というか、そもそも違う版が存在するのか?) ヒラギノが付いてくる。これはちょっと嬉しかった。 外部フォントを使う事に拘らなければ、何も設定する必要は無いが、 私は Luxi Mono に嵌っているので、Linux からコピーしてきて使っている。 luxiXXX.ttf を全部、~/Library/Fonts の下に置いてから、FontBook.app で、Edit ⇒ Add Fonts … で、それぞれのファイルを選んでやるだけ。
Terminal Emulators
CUI + zsh はどうしても手放せないので、自分の生活環境としては Terminal Emulator は必需品。Linux の世界で、xterm, kterm, MLterm 等と遍歴してきたけど、なんだか「有ってあたり前」と思うきらいが有った。 しかし、これこそ無くしてはじめて有難味が解る最たるものかも。Tiger 純正の Terminal.app、その後入れた iTerm.app (-0.9.5) とも、最初の印象は「まぁまぁ」なんですが、使い込むと結構ボロが出てくる。 何より、たまに文字化けするのが情け無い。 アプリケーションのデフォルトの文字コードと shell の LANG, LC_ALL のコードの色々な組合せを試したが、安定した組合せを見付けたかな、 と思っていると、ポロリと文字化けが表われる。euc-jp, iso-2022-jp, utf-8, shift-jis それぞれの短いファイルを作って、普段から表示を確認するのに使っているが、それで OK でも、lv や less, w3m, xemacs -nw で長い文章を読んでいると、稀に文字化けしてしまう。 また、表示が乱れ、またとんでもなく離れた場所の文字が挿入される事もある。 ターミナルとアプリケーションのどちらが悪いのか未詳だけど、XEmacs も Emacs も X や、Aqua の上だと問題無いので、やはりターミナルが疑われる。
Terminal は比較的安定しているが、何故か shell のプロンプトの左端の文字がゆらゆら揺れる。 (というか、カーソルのある行の左端の文字が揺れる、という事らしい。) これがカーソルのブリンクと同期している。
一方 iTerm.app は安定性に難が有って、 Exit する時によくハングする。Shell から exit で抜けると大丈夫だが Command-Q ではかなりの確率でハングする。一旦ハングすると、Force Quit でも、プロセスを消せない(window が残る)。最近、Force Quit を二度やると、まず間違いなく消せる事が解った:-p。
何とかしたいが、X11 の上のターミナルも、 まともの動くのは、xterm くらいのものなので、 日本語を表示するのはこちらでも無理、という事らしい。 幸い XEmacs も Emacs もターミナルの上でなければ、文字化けは無いので、 長い日本語の文章はこちらで読む事にして、 これらのターミナルを日本語モードで使うのは、已むを得ないときだけ(例えば、 Namazu を使う時とか)に制限する事にする。
Virutual Machines
Parallels Desktop を最初に触った時は、あまりの素晴しさに 「おお、これで勝ったも同然」 なんて思った。 実際、Linux を install してそれまでお世話になっていた環境を再現するのは「お茶の子」だった。 が、しかし、Tiger と共存するには問題が…。 Linux を Guest OS とした時は対応する Parallels Tools が無く、- X11 から、cursor を release するのに、Ctl-Alt を押す必要がある。
- X11 を起動した時に、Parallels の window を X11
の分解能に自動調整してくれない。
(手で window size を調整する事は可能。)
- Full screen モードにした時にも同様で、Display
の分解能一杯のサイズになってくれない。
一方、VMware Fusion はβ版ながら、このような問題は無い。 (というか、Fusion がこのような機能をきちんとこなすので、Parallels に対して不満がつのった、のが真相か。)しかし、こちらは Host(Tiger の事) と接続できないという大問題が有った。β2 ではこの問題は、"Experimental" な機能ながら解決された。が、しかし同時に、cursor の動きが極端に遅くなる、という問題が出てきた。 その後、4/5 にβ3 となったが、cursor の問題はそのまま。
どちらの不満も、贅沢と言えば贅沢なんだけど、どうしても気になって、 どちらかに決める事ができない。 で、両方並行してしばらく使ってみたが、どうもこれは少し不安定な気がする。 特に、EyeTV や Skype, X11 と相性が悪いらしく、時々ハングする。 このハングは性質(タチ)がわるくて、Force Quit も効かず、power button を押さざるを得なかった。それまでは、とても安定していたし、Fusion と Parallels をインストールした後も、これらを起動してなければ、 power button のお世話になる事は皆無なので、ちょっと印象が良くない。 (それにしても Mach kernel でも、こういう事は有るんですねぇ。) あと、Parallels の方だけだけど、clock を UTC と設定できない、自動調整もしてくれない、等という問題も出てきた。
Mail 環境
どこかにも書いたけど、これまで Linux server で実現していたメール環境は、mail message を- ISP の pop server から fetchmail で pop してくる。
- postfix と forward メカニズムを使って、procmail に送り込む。
- procmail のレシピ(~/.procmailrc)で spambayes
に送り込み、診断結果のヘッダを付ける。
- さらに procmail のレシピの中で、診断結果にによって、spam や unsure
を振り分け、MH ディレクトリに入れる。
- 流量の多いメイリングリストのメッセージも、この後のプロセスでそれぞれの
MH ディレクトリに。
- 最後に抜けてきた(spam でもなく、ML
からでもない、要するにすぐに読むべき)メッセージを、
maildir 形式のディレクトリ(例えば ~/Maildir)
に入れる。
- local からも remote からも dovecot 経由でこの maildir にアクセスする。
Postfix:
Tiger 附属のものをそのまま使う。- /etc/postfix/main.cf: myhostname と home_mailbox のみを設定。
すなわち
myhostname = xxxxxx.otacky.us home_mailbox = Maildir/
- /etc/postfix/aliases: root: の項だけ自分宛に変更。
- "# /usr/sbin/postfix start" で、master daemon をスタート。
- ポートの 25 番を開けて、外部とメールやりとりできる事を確認。私は mail
コマンドを使った。(受け取ったメールは ~/Maildir/cur
に溜って行く。)
- 上述したように、これを立ち上げ時に自動で起動するのはちょっと大変で、
http://www.david-reitter.com/software/osxpostfix.html#tigerから、
Postfix というディレクトリを取ってきて、
/System/Libray/StartupItems/ の下に置き、owner を root:wheel としておく。
一方、/etc/hostconf に MAILSERVER=-YES- の行を加える。
Fetchmail:
これも Tiger に附属。- ~/.fetchmailrc: を編集
# Configuration created Mon Apr 9 22:48:49 2007 by fetchmailconf 1.52 set postmaster "xxxx" set nobouncemail set no spambounce set properties "" poll pop-server.xxx.rr.com with proto POP3 user 'yyyy' there with password 'zzzz' is 'xxxx' here ##options keep
- $ fetchmail を実行してテスト。option keep を uncomment しておけば、万一の場合でもメールを失なう事がないので安心。 受信したメールは、~/Maildir に配信されるはず。
Spambayes:
spambayes-1.1a3 をソースからインストールする。- MacPython-2.5 の binary が /usr/local/bin/python
にある事を確認する(←どの Python を使うかで、sb_*.py
のインストール先が違う)。
- sourcforge からソースを取って来る。
- ソースを展開したディレクトリへ行き、
$ /usr/local/bin/python setup.py build # /usr/local/bin/python setup.py install
できた binary は /Library/Frameworks/Python.framework/Versions/2.5/bin/ へ行くので、このディレクトリから /usr/local/pbin へリンクを張っておく。 - $HOME へ行き、spam/ham
のサンプルを ~/Mail/spam と ~/Mail/ham に置いて、
/usr/local/pbin/sb_mboxtrain.py -f -d .hammiedb -s ~/Mail/spam -g ~/Mail/ham
として、.hammiedb を作る。(-f は、サンプルに付いているかも知れない "Trained" フラグを無視するためのもの。二度目以降は不要)
詳しくは「迷惑メールを撃退する」を参照。
Procmail:
これも Tiger 附属。設定は Linux と同じでよい。- ~/.forward:
"|exec /usr/bin/procmail"
- ~/.procmailrc:
MAILDIR=Mail/ML DEFAULT=$HOME/Maildir/ :0 fw:hamlock | /usr/local/pbin/sb_filter.py :0 * ^X-Spambayes-Classification: spam spam/. :0 * ^X-Spambayes-Classification: unsure unsure/. :0 * ^X-ML-Name: connect24h connect24h/. .... snip ....
IMAP server:
Dovecot をインストール、設定する。- # port install dovecot
- /opt/local/etc/dovecot/dovecot-example.conf を編集して、
dovecot.conf を作成。(Wanderlust との組み合わせでは SSL
を介してのアクセスはできなかった。)
fukuda@quadra:~% diff /opt/local/etc/dovecot/{dovecot.conf,dovecot-example.conf} 20c20 < protocols = imap imaps --- > #protocols = imap imaps 45c45 < disable_plaintext_auth = no --- > #disable_plaintext_auth = yes 85c85 < ssl_disable = yes --- > #ssl_disable = no 211c211 < mail_location = maildir:~/Maildir --- > #mail_location = 749c749 < mechanisms = login plain --- > mechanisms = plain
- /Library/LaunchDaemons/ に org.macports.Dovecot.plist
がインストールされ、次回システム起動時から daemondo で dovecot daemon
が起動される。
- TCP port 143 を開いて、外部からアクセスできるかテスト。(Parallels
Desktop の FC6 の上の Wanderlust on XEmacs を使った。
こういう時にとても便利だ。)
Web 環境
今のアパートのインターネット接続は登りが遅い (300 - 400 kbps) ので、 otacky.jp の公開は今後とも稲城の留守宅から、と決めて、 このサイト (otacky.us) は、ページ更新の際のチェックのため、という事にする。 要するに、- Apache (> 2.0.x) (CGI, Virtual Host, SSI)
- Namazu
- いくつかの Python スクリプト
- gnuplot
httpd (Apache-2.2.4)
なんと Tiger は、デフォルトで Web サーバ (Apache-1.3.33) が動くようになっているらしいが、 とりあえず、otacky.jp サーバ (-2.0.x) 向け HTML ファイルをチェックする事が目的なので、port の apache2 を使う事にする。- Apache-1.3.33 を止める。
(Sharing メニューから、Personal Web Sharing のチェックを外す。)
- video stream 配信のための daemon
が動いていたら、これを止める。(
/etc/hostconf
を編集して、QTSSWEBADMIN=-NO- QTSSRUNSERVER=-NO-
とする。勿論、これらをインストールしてなければ、この必要はない。) - apache2 をインストール。
(# poart install apache2)
-
/opt/local/apache2/conf/httpd.conf
を編集。
-
何より、最初の二つをきちんとやる事が大切。
実は私もきちんと止まってなくて、しばらく頭を捻った。
- MacPort でインストールすると
/Library/LaunchDaemons/org.macports.apache2.plist
ができ、システム起動時、自動で httpd daemon が立ち上るようになるので、上述のような心配をする必要はない。 -
httpd.conf
は、 2.0 のを殆ど修正なしに使えた。(勿論、directory の変更は必要。/home/ ⇒ /Users/ 等。)
Namazu
全文検索のための namazu をインストール。- nkf, p5-nkf, kakasi をインストールしておく。
# port install nkf p5-nkf kakasi
-
namazu だけは Macport に無いようなので、最新版 (-2.0.17)
を tar ball から make/make install した。
$ tar xzvf namazu-2.0.17.tar.gz $ cd namazu-2.0.17 $ cd File-MMagic $ perl Makefile.PL $ make $ sudo make install $ cd .. $ ./configure $ make $ sudo make install
- できた src/.libs/namazu.cgi を "~/public_cgi-bin/" に、template/ 以下を "~/public_html/namazu_template" にコピーする。NMZ.head.ja だけは、ページの体裁を整えるため元の版を使用する。
- .zsh_alias に次の関数を定義しておく。
namazu_web () { cd ~/public_html LANG=ja_JP.eucJP LC_ALL=ja_JP mknmz --output-dir=./namazu_index\ --template-dir=./namazu_template --html-split . }
以下の設定は、これらの directory 名を前提にしている。 - 設定ファイルは、
.namazurc
のみで、~/public_cgi-bin/
に置く。2010-10-11 (Mon):~/public_html/
から訂正。 ~/public_html/namazu_template
に置かれた template 達は、mknmz が一部改変して、~/public_html/namazu_index
に copy する。 (なので、一部改変した template は、namazu_template/ に置く必要がある。)- .namazurc の Replace で、
Replace /Users/fukuda/public_html ""
として、URL を local にしてやると、otacky.jp でも、そのまま使える。 -
ページから、namazu.cgi を呼ぶ時は、
/cgi-bin/namazu.cgi
としておき、 httpd.conf の<VirtualHost>
ディレクトリ定義の中で、ScriptAlias /cgi-bin/ "/Users/fukuda/public_cgi-bin/"
として、実際の在処を指すようにする。
Python/Gnuplot
CGI は全て Python で書いている他、 このページに使っているような "Navigation Bar" を挿入したり、プロ野球の試合の結果を取ってきたりするスクリプトも Python で書いている。 まず、MacOSX にもとから付いてくる Python は古すぎて、codec の指定の仕方が合わない。別途インストールした MacPython が、fukuda@quadra:~% ls -l /usr/local/bin/python lrwxr-xr-x 1 root wheel 68 4 21 22:45 /usr/local/bin/python@ -> \ ../../../Library/Frameworks/Python.framework/Versions/2.5/bin/pythonのようなリンクを張ってくれているので、むしろスクリプト側の変更は /usr/bin/env に関するものだけで OK。
Gnuplot は、MacPort で一発でインストールできるが、Linux ⇒ MacOS になり、同時に 4.0 ⇒ 4.2 となったせいか、なかなか元のスクリプトが動かない。 うーむ。
Emacs
20.3.b92 から始めて、もう 10 年近くも XEmacs を使ってきたが、なんだか時代はまた GNU Emacs に戻ってきたかのよう。 自由に font face が選択できるとか、multilingual への対応が進んでいる、画像まで表示できる、等々が XEmacs のウリだったのに、このところ Xft への対応や Unicode への対応がどうも滞っているような感じがしていた(勿論自分自身のスキルの問題もあるが)。 そうこうしているうちに、いつの間にか GNU Emacs がこれらの面でも追い付いてきて、 今や既に追い越しつつあるように見える。(かつて「私は XEmacs で生きてゆく」と書かれた山本(かず)さんも、とっくに Emacs 派、Mew は Emacs のみを正式サポートとしているみたいです。)
さて、Linux での環境を再現しようと、ターミナル上で (X)Emacs を使うべく四苦八苦する一方、X11 や Aqua の上の Emacs 達も試してみたが、いずれも「帯に短かし襷に長し」。 しかし、その間に出あった "Carbon Emacs (Package)" がそのじれったさを一挙に解決してくれた。
- Antialias font が、ASCII と Non-ASCII それぞれに指定できる。 しかも等幅 font でなくても可。
- Unicode の扱いがより完全になっている。
- Aqua (Carbon) との融合が綺麗。特に cut & paste が確実で嬉しい。
- Wanderlust, emacs-w3m 等の(自分には)必須パッケージが初めから付いてくる。
しかし、悲しい事に Carbon Emacs Package (CEP) を使い始めてから一月程で emacs-w3m が同パッケージから外されてしまった。 また一方、このような追加のモジュールを CEP でインストール・維持する事は意外に面倒である事が解ってきた。 ターゲットのディレクトリや emacs のバイナリの置き場所が Linux 等とは相当違っていて、かつかなり深いところに有るので、モジュールの configure が面倒。その上 Carbon Emacs パッケージをアップデートすると、これらのモジュールは消されてしまう…。
それならば、という事で、自分で build してみたが、やってみると「案ずるより…」だった。 むしろ散在する Web 情報が古かったり間違っていて悩まされる事の方が多かった。 最初から GNU のサイトと README に直接当るべきだったかも。
Emacs-22.0.x のインストール
-
~/CVS
というディレクトリを作って、そちらへ移動。 - CVS で Emacs-22.0 のソースを取ってくる
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs login cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
~/CVS/emacs
へ移動してコンパイル・インストール$ configure --enable-carbon-app $ make bootstrap $ make # make install
これで Emacs-22.0.98 があっさりできてしまった。素晴しい。(cd ./mac
とする、とどこかにあったけど、これをやるとコンパイルが途中で止まってしまう。)- binary は
/usr/local/bin
に、lisp codes は/usr/local/share/emacs
以下に、また Emacs.app は/Applications
に行く。 (これでモジュール群のコンパイル・インストールがとても見通しが良くなる。 以下のインストールはすべてこのビルドの構成が前提。) - .emacs を編集する。XEmacs の ~/.xemacs/init.el
と殆んど共通であるが、若干わかり難い相違もある。
- coding ごとのフォントの設定は、
create-fontset-from-fontset-spec
を用いる。(luxi mono は、何故か "Customise Emacs" menu では設定できない。)
(setq mac-allow-antialias t) (if window-system (progn (require 'fontset) (create-fontset-from-fontset-spec (concat "-*-fixed-medium-r-normal-*-18-*-*-*-*-*-fontset-hiramin18," "japanese-jisx0208: -apple-ヒラギノ明朝 pro w6\ -medium-r-normal--18-*-*-*-m-*-jisx0208.1983-sjis," ;;"ascii: -apple-luxi mono regular\ ;; 2007-05-05 変更 ;; -medium-r-normal--18-*-*-*-m-*-mac-centraleurroman" "ascii: -apple-luxi mono\ -medium-r-normal--18-*-*-*-m-*-iso10646-1" )) (set-default-font "fontset-hiramin18") (setq default-frame-alist \ (append '((font . "fontset-hiramin18"))))) )
'\' で改行しているところは見易くするためのもので、本来は一行。 また、使える font spec のリストは (insert (prin1-to-string (x-list-fonts "*"))) を実行して得られる。2007-05-05 (Sat): ascii 用のフォント設定を上記のように変更する事で、Luxi Mono の baseline の問題は解決できた。 - 行間隔、font-lock 等は "Customize Emacs" menu から調整する方が簡単で確実。(Options ⇒ Customize Emacs ⇒ Top-level Customization Groups で、Emacs のフレームがそのモードになる。 設定後 "Set for Current Session" ボタンを押すと、すぐにその設定が反映され、 "Save for Future Session" とすると、.emacs の最後尾に設定を反映した e-lisp code が付け加えられる。
-
python-mode
は無くなっているので、auto-mode-alist
等に明示的に指定してあるところは削除するか、python
に変更する。2007-04-28 (Sat):python-mode
が復活したので、この必要は無くなった。 - (ispell のための)aspell
は別途インストールしてやる必要がある。
# port ispell # port ispell-dic-en
(後の方(辞書)が無い時のエラーメッセージが、なんだか LOCALE の不具合を指摘しているみたいで misleading!)
- coding ごとのフォントの設定は、
create-fontset-from-fontset-spec
を用いる。(luxi mono は、何故か "Customise Emacs" menu では設定できない。)
追加パッケージ
ここで、追加パッケージをインストール。(Emacs がごく普通のディレクトリ構成になっているので、殆ど何も弄る必要がなく、 大抵make; make install;
で OK。
そうか、もともとこっちが「本家」なんだもんなと納得する。)
- apel/flim/semi:
- apel-10.7 (src):
"make; sudo make install"
- flim-1.14.8 (src):
"make; sudo make install"
- semi-1.14.6 (src):
"make; sudo make install"
- apel-10.7 (src):
- emacs-w3m:
天声人語と社説を読むためには、これを CVS から作る必要がある。(w3m を CVS から作っているのはオーバキルで、w3m-0.5.1 でも、問題無く動作する。)
- libgc.1.0.2 (src: gc6.8.tar.gz):
"configure; make; sudo make install"
(あらま, 今確認したら "make check" が fail となる…。w3m はちゃんと動いているようなんだけどなぁ。) - w3m-0.5.1+cvs-1.974 (CVS):
"configure; make; sudo make install"
- emacs-w3m-1.4.180 (CVS):
"autoconf configure.in > configure; chmod +x configure; configure; make; sudo make install"
- libgc.1.0.2 (src: gc6.8.tar.gz):
- Wanderlust:
Wanderlust-1.14.0 (src):"make; make info; sudo make install; sudo make install-info"
アイコン達は、./etc/icon
から/usr/local/share/emacs/site-lisp/etc
へ移したが、この行き先は.wl
で(setq wl-icon-directory "/usr/local/share/emacs/site-lisp/etc")
とか指定してやれば、どこでも良い(はず)。 (XEmacs-21.4 ならmake pacakge; make install-package
だけで済むから、ここだけは Emacs が負けているなぁ:-p) - SKK:
ddskk-13.0.90: (src: ddskk-20070304):"make; sudo make install"
何故か.../22.0.98/site-lisp
の下にインストールされる。 こんな必要が有るんだろうか?(そもそも、emacs のリリースに依存するsite-lisp
ってどういう意味が有るんだろ。) - lookup:
- eblook-1.6.1 (src):
- lookup-1.4.1 (src):
"configure; make; sudo make install"
"configure; make; sudo make install"
;; For Lookup (setq lookup-inline-image t) ;; (autoload 'lookup "lookup" nil t) (autoload 'lookup-region "lookup" nil t) (autoload 'lookup-pattern "lookup" nil t) (define-key ctl-x-map "l" 'lookup) ; C-x l (define-key ctl-x-map "y" 'lookup-region) ; C-x y (define-key ctl-x-map "\C-y" 'lookup-pattern) ; C-x C-y ;; test (setq lookup-search-agents '((ndeb "/Users/fukuda/Dicts/ldoce4") (ndeb "/Users/fukuda/Dicts/genius_ej" :appendix \ "/Users/fukuda/Dicts/genius_ej_app") (ndeb "/Users/fukuda/Dicts/kje5") (ndeb "/Users/fukuda/Dicts/kojien") ))
上記の :appendix の設定で、ジーニアス大英和の termination code の問題がちゃんと解決できた。 - lookup-1.4.1 (src):
- c-sig:
c-sig.3.8 (src): /usr/local/share/emacs/site-lisp で展開 ("sudo tar xzvf") するだけ。
感想・課題
22.0.97 から 22.1.50 までを通じての感想は「とにかく素晴しい!」の一語。Pros:
- 安定している。文字化けが無いし、まだ一度もハングしていない。 また、安心して cut & paste がやれる。(こんなところで触れるのも変だけど、 XEmacs on MLterm/Cygwin などではうまくいくかどうかは「時の運」だったので。)
- 華やか。美しいフォントと、統一感がある font-lock? のおかげで、なんだかとても華やかで楽しい。 また、region の表示がデフォルトで gold だなんて、とってもお洒落。
- Customize Emacs メニューがわかり易くなった。 しかもきちんと反映されるので、(.emacs で頑張るのではなく)こちらで凝ってみようと思える。
- あれ、と思うようなものがパッケージに入っていない。Apel とか python-mode、(html-helper-mode の一部の)hhmts 処理等。 emacs-w3m や Wanderlust は、まあ自分でインストールするのも已むなしですが、 このあたりを自分でケアするのはつらい。
- それもあって XEmacs の
xemacs-(mule-)sumo
package のように、本体とは一応離れているものを、 どかっとインストールしてしまう仕組が有っても好いかな、と思う。 しかもそれがデフォルトで、site-lisp に入って欲しい。 - (すごくマイナーな苦情ですが)Luxi Mono の baseline
が若干狂っている。SKK で変換する時、文字が上下にはねるし、
mode-line や mini-buffer の中でなんだか頭がつかえているような感じがする。
これは Tiger のせいのような気がするが……
2007-05-05 (Sat): Tiger のせいではなく、上述のごとくフォント設定に
"-apple-luxi mono regular-...-mac-centraleurroman"
ではなく、"-apple-luxi mono -...-iso10646-1"
を使うべきだった、という事のようです。
180/1,793,516 Taka Fukuda Last modified: 2012-08-14 (Tue) 18:06:16 JST