FreeBSD上で、画像を管理するソフトで、ちょっと気の利いたのないかな?と思って、Picasa2をインストールしてみました。
つまり、Windows版のPicasa2をwineで動かす、ってことです。
そういえば、近年になってWineの完成度が上がってるって話を最初に聞いたのは、Linux版のPicasaが公開されたときのことで、そのPicasaは実はwineで動いてる、とのことでした。
その当時からはだいぶ時間が経過しているせいか、手元のFreeBSD7では、portsでインストールしたwineで、なんの工夫もすることなく、当たり前のように、Picasa2をインストールできちゃいました。
へー、すごいじゃん ・・・ いや
よく見ると、というか、よく見なくてもすぐに気がつきますが、明らかに、文字化けしてますね。トウフ(□□□□□)が表示されてます。
☆
ネット検索してみると、Linux方面の情報っぽかったですが、~/.wine/system.reg にて、Tahomaというフォントを、日本語のフォントで置き換えてやればよい、という情報が何件か見つかります。
~/.wine/system.reg を書き換えてみました。
[Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes]
という行以降のところに
"Tahoma"="IPAPGothic"
と書く。
で、wineなPicasa2を起動。
・・・で、やっぱりトウフが表示されました。
LANG=Cで起動すると、Picasa2のメッセージが英語になるので、それならトウフにはなりません。
英語で使えばいいか~ っていう気にもなるんですが、FreeBSDだからダメなんだよ、とか思われると口惜しいので、一応、じたばた、あがいてみました。
☆
wineでどんなフォントが使われているかは、lsofで調べればよい、という、ものすごい力技な情報が見つかりました。lsofについては、末尾の「おまけ」も参照のこと。
やってみます。
% lsof | grep wine | grep ttf
wine-pthr 51497 nhh txt VREG 0,86 2828124 526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf
wine-pthr 51497 nhh txt VREG 0,86 85192 732676 /usr/local/share/wine/wine/fonts/tahoma.ttf
wine-pthr 51497 nhh txt VREG 0,86 2828124 526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf
wine-pthr 51497 nhh txt VREG 0,86 85192 732676 /usr/local/share/wine/wine/fonts/tahoma.ttf
wine-pthr 51497 nhh txt VREG 0,86 2828124 526930 /usr/local/lib/X11/fonts/TrueType/mona.ttf
(以下略)
どうしてモナフォントなんだよ、というのは置いておくとして、tahoma.ttfという、本当にTahomaなフォントがインストールされているようです。portsでwineをインストールすると、tahoma.ttfもインストールされるようです。
どうやら、本当にTahomaフォントが存在する場合は、~FontSubstitutesのところに、フォントの置き換えを指定しても、無視されているみたいです。
~/.wine/system.reg をもう一度見てみると、
[Software\\Microsoft\\Windows\\CurrentVersion\\Fonts]
のところに
"Tahoma (TrueType)"="Z:\\usr\\local\\lib\\..\\share\\wine\\wine\\fonts\\\\tahoma.ttf"
"Tahoma Bold (TrueType)"="Z:\\usr\\local\\lib\\..\\share\\wine\\wine\\fonts\\\\tahomabd.ttf"
とか書かれているので、この2行を削除して、wineなPicasa2を起動してみると・・・ダメです。やっぱりトウフが表示されます。
なぜダメかっていうと、wineを終了して、もう一度system.regを見てみると、削除したはずの行が復活しているじゃないですか。
親切にも、自動的にフォントを発見して、登録してくれるらしいです。
仕方ないので、
/usr/local/share/wine/wine/fonts/tahoma.ttf
を
/usr/local/share/wine/wine/fonts/DONTUSE/tahoma.ttf
とか、別のディレクトリに移動したら、また自動的に発見されてしまいました。サブディレクトリじゃダメみたいです。
サブディレクトリ以外のところへ退避させてみました。
# ls -l /usr/local/share/wine/wine/fonts-
total 158
-r--r--r-- 1 root wheel 85192 9 26 09:57 tahoma.ttf
-r--r--r-- 1 root wheel 75364 9 26 09:57 tahomabd.ttf
これで、やっとトウフが直りました。
~FontSubstitutesにて、Tahomaフォントを置き換えているため、日本語フォントのファイルをシンボリックリンクなどでtahoma.ttfという名前で用意しておく必要はないようです。
☆
■ 過去記事
■ おまけ lsofの代わりにfstatを使う
lsofは、portsの/usr/ports/sysutils/lsof/ にあるんですが、いちいちインストールするのもめんどくさい。
FreeBSDには標準でfstatというコマンドがインストールされていて、lsofの代わりにfstatが使えるみたいです。
- fstatの引数にファイルを指定すると、そのファイルを使っているプロセスが表示される ・・・ってことを今回初めて知りました。今まで、fstatだと、ファイルシステム単位でしかわからないのか、と思ってました。
- TrueTypeフォントは、mmapされているので、fstatには、「-m」オプションが必要らしいです。
こんな感じになりました。
% fstat -m /usr/local/share/wine/wine/fonts/*
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
nhh wine-pthread 57975 mmap /usr 732649 -r--r--r-- 7360 r /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57496 mmap /usr 732649 -r--r--r-- 7360 r /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57496 mmap /usr 732651 -r--r--r-- 6136 r /usr/local/share/wine/wine/fonts/marlett.ttf
nhh wine-pthread 57105 mmap /usr 732649 -r--r--r-- 7360 r /usr/local/share/wine/wine/fonts/jvgasys.fon
nhh wine-pthread 57096 mmap /usr 732649 -r--r--r-- 7360 r /usr/local/share/wine/wine/fonts/jvgasys.fon
% fstat -m /usr/local/lib/X11/fonts/TrueType/*.ttf
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W NAME
nhh wine-pthread 57496 mmap /usr 526930 -r--r--r-- 2828124 r /usr/local/lib/X11/fonts/TrueType/mona.ttf
nhh wine-pthread 57496 mmap /usr 566533 -rw-r--r-- 2890444 r /usr/local/lib/X11/fonts/TrueType/ipagp.ttf
nhh wine-pthread 57105 mmap /usr 526930 -r--r--r-- 2828124 r /usr/local/lib/X11/fonts/TrueType/mona.ttf
nhh wine-pthread 57096 mmap /usr 566768 -rw-r--r-- 2072060 r /usr/local/lib/X11/fonts/TrueType/M+1VM+IPAG-circle.ttf
(以下略)
0 件のコメント:
コメントを投稿