東大FinkチームのUNIXパッケージインストーラ

3月 26th, 2005
[`evernote` not found]
Facebook にシェア

Mac OS XはUNIXをベースにしたOSで、UNIX用に開発された多彩なソフトウェアを利用できる。こうしたソフトウェア群を簡単にインストールするため、Finkというパッケージが用意されているのだが、このFinkでは日本語環境のことが考慮されていなかった。そのため、日本語を使おうとすると、ユーザーがあれやこれやと設定ファイルをいじくり回す必要があった。
私もMac OS XでUNIXソフトウェアを使うことに興味はあったものの、ちょっと手が出せずにいた。こうした状況を、東大Finkチームが変えつつある。2003年末に東大ではiMacを大量導入し、同時にUNIX環境の整備を開始した。本家Finkプロジェクトと連携を取りつつ、Mac OS XのUNIX環境で日本語が扱える手軽なパッケージを作成している。
3月25、26日に開催されたオープンソースカンファレンス2005では、東大Finkチームの作成したインストーラCDも配布された。これはUNIXの知識がない人間でも日本語の扱えるUNIX環境を構築できる優れものなのだ。セミナーでは、Finkを日本語に対応する苦労話などが詳細に語られていた。以下、そのメモ(私はこの分野に詳しいわけではないので、誤解している部分もあると思う)


ほとんどの苦労は、Unicode(ここではUTF-8)対応するためのものだったという。Mac OS XではファイルシステムでUTF-8を使用、メッセージをUTF-8で出すコマンドもある、多言語対応がMac OS Xのウリ(講演者自身から、UTF-8で何が多言語だ!というツッコミ)ということから、日本語対応はUTF-8ベースにすることに決まった。
シフトJISやEUC-JPで日本語を扱うソフトをUTF-8対応にするには、3つの方法がある。
・一番正当なやり方は、Unicode対応に改造するというもの。iconvというライブラリを呼び出してコード変換を行う。
・EUC-JP localeで動かす。
・(一番ひどいのが)ラッパーを作り、見かけ上UTF-8に対応させる。

困ったのが、Emacs。多言語化の大先輩だけに、多言語化の考え方がUnicodeとまったく異なっている。さらに、Unicodeはプラットフォームによって(他の文字コード体系からの)変換表が異なる。また、濁音などの扱いも違う。例えば、通常仮名の濁音は一文字として表すが、Unicodeではこれを清音+濁点で表すこともある。Mac OS Xではファイルシステムでこうした合成文字を使用している。このほか、文字によって全角で表示するか、半角で表示するか決まっていなかったり……。

そのため、EmacsでUTF-8文書を扱うと、いろいろな問題が出てくる。
・ファイルを読み込むと、文字化け(フォントがないため、表示できない)。
・「¥」などが文字化け。
・コピー&ペーストで文字化け。
・Mac OS X標準のTerminal.appで起動すると、Emacs側とTerminal.app側で文字幅の処理が違って、表示が崩れてしまう。

解決策としては、
・最新のCVS版をベースにして、日本語に特化。他の言語のことは無視しないとやってられなかったそうで。
・キー入力は、インライン入力パッチを使って、シフトJIS経由で行う。
・コピー&ペーストはUnicode経由で行う。
・Terminal.appではなく、X11&mltermを使う。

さらに、本家のFinkにコンタクトを取り、アジアにおけるバイナリ配布ミラーサイトの立ち上げソースとパッケージ記述ファイル (.info) のミラーを認めてもらったという(追記:日本でのバイナリ配布のミラーは、JAISTが行っている模様。下記asari氏のコメントを参照のこと)。Finkになかったパッケージに関しては、どんどん本家サイトに登録していったとのこと。

東大Finkチームのインストーラは確かに私でも簡単に使えた(アイコンをクリックするだけ)。UNIX用ソフトウェアの使い方がわかっていないから、まだ全然使えていないのだが……。このインストーラは、現在同チームのページで配布されている。
なお、今年1月にアスキーから『Mac OS X極上のシステムハックパーフェクトガイド』というUNIXソフトの活用ムックが発売されている。このムックでも東大Finkチームのパッケージをベースにしているのだが、26日に配布されたインストーラではムック発売時点で見つかった不具合も修正されているという。アップルのX11にある不具合も修正しているそうだ。

それにしても、こうした仕事はほとんどボランティアなのである。チームのメンバーは毎日終電帰りだったり、英語が苦手でも海外のプロジェクト担当者と渡り合ったりしたそうで、その若さ、熱意のエネルギーって本当にすごいものだ。

2 Responses to “東大FinkチームのUNIXパッケージインストーラ”

  1. asari Says:

    記事にしていただいてありがとうございます。
    自分の発言した部分について誤解を招いてしまったようで…
    訂正させてください。

    >本家のFinkにコンタクトを取り、アジアにおけるバイナリ配布
    >ミラーサイトの立ち上げを認めてもらったという。

    バイナリ配布のミラーは私たちでは行えませんでしたが、ソースとパッケージ記述ファイル (.info) のミラーを行えました。

    日本でのバイナリ配布のミラーは、JAISTが行っているようです。
    使うには、/sw/etc/fink.conf で
    Mirror-apt: ftp://ftp.jaist.ac.jp/pub/sourceforge/f/fi/fink/direct_download
    という設定をした上で fink configure を実行するといいみたいです。

    > Fink開発者の1割が東大Finkチームだそうだ
    一番大げさに聞こえる数字を挙げただけで、実は特に深い意味はないです(笑)
    Finkのコミュニティは、もっと大きいものだと思っていますよ:)

  2. Tats_y Says:

    ご連絡ありがとうございます。あまり詳しくない分野のことなので、いろいろ誤解しているところがあるかと思います。ほかにも内容の間違いなどありましたら、ご指摘をよろしくお願いいたします。
    これからもFinkチームの活躍に期待しています!

Leave a Reply

Comments links could be nofollow free.