Hatena::Groupfreebsd

peanutsjamjamのFreeBSD日記 このページをアンテナに追加 RSSフィード

2007-01-15

jman の locale jman の locale - peanutsjamjamのFreeBSD日記 を含むブックマーク はてなブックマーク - jman の locale - peanutsjamjamのFreeBSD日記 jman の locale - peanutsjamjamのFreeBSD日記 のブックマークコメント

日本語マニュアルを見るために jman コマンドインストールした。

具体的には /usr/ports/japanese/man ディレクトリに移動して、make install を行った。これを行った後に /var/db/pkg ディレクトリで確認すると、ja-man-1.1j_5/ というディレクトリが出来ていた。

この時点では、日本語マニュアルを表示するためのプログラムインストールしただけなので、jman ls などとやっても、日本語マニュアルは表示されない。( ports で japanese/man-doc をインストールするか、あるいは ja-man-doc という package をインストールする必要がある。)

しかし jman プログラムには jman 自身のマニュアルは当然付属しており、これには英語だけでなく日本語マニュアルも含まれている。これがインストールされているはずなので、jman jman と打つことで、jman コマンド日本語マニュアルは表示されるはずである。

実際にやってみると英語のほうのマニュアルが表示されてしまった。

いろいろ調べてみると、環境変数 LC_CTYPE を ja_JP.EUC と設定していたのが間違いだったようだ。正しくは、ja_JP.eucJP としなければならない。

LC_CTYPE を ja_JP.eucJP と正しく設定してから jman jman と打って、jman コマンドマニュアルを読んでみると、次のように書いてある。

ただし、日本語マニュアルページをオリジナルマニュアルページに優先して表示するためにはあらかじめ環境変数 LC_CTYPE か LANG を ja_JP.EUC に設定しておく必要があります。

あらら、記述間違いかも、と調査開始。(もしかすると、jman コマンドの挙動のほうが間違っているのかも知れないしね。)

[FreeBSD-users-jp 66080] から始まる 議論 を読み進めていくと、昔は ja_JP.EUC でよかったということのようだ。だとすると、単に jman コマンド付属してくるマニュアル更新忘れかな。この議論は長いので、何がどうなってるのかを見極めるにはまだかかりそう。

2007 年 1 月 17 日追記

FreeBSD QandA 2650 によると、「4.6-RELEASE の時点で、ja_JP.EUC から ja_JP.eucJP に変更されました。」だそうです。

Q. これまで locale 名は ja_JP.EUC だったと思うのですが、ja_JP.eucJP としている人をみかけました。変更になったのですか?

A. 4.6-RELEASE の時点で、ja_JP.EUC から ja_JP.eucJP に変更されました。

互換性を確保するため、

/usr/share/locale/ja_JP.EUC@ -> ja_JP.eucJP

/usr/share/locale/ja_JP.eucJP/

とシンボリックリンクが張られています。

手元の FreeBSD 6.0-RELEASE では、そのようなシンボリックリンクは張られていないようだ。

2007 年 1 月 19 日追記

PR されてました。

ports/104043: jman(1) in /usr/ports/japanese/man is obsolete.
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/104043
Description:

The jman(1) in /usr/ports/japanese/man (ja-man-1.1j_5 to me) is obsolete.

The locale ja_JP.EUC did not work for jman on 6.1-RELEASE.
Tha word `ja_JP.EUC' in jman(1) should be replaced with `ja_JP.eucJP',
it works correctly.
トラックバック - http://freebsd.g.hatena.ne.jp/peanutsjamjam/20070115

2006-05-10

本家サイトリンクの色 本家サイトのリンクの色 - peanutsjamjamのFreeBSD日記 を含むブックマーク はてなブックマーク - 本家サイトのリンクの色 - peanutsjamjamのFreeBSD日記 本家サイトのリンクの色 - peanutsjamjamのFreeBSD日記 のブックマークコメント

本家サイト www.FreeBSD.orgリンクの色が、ふつうのリンクも、visited なリンクも同じ色で使いにくいのが気になって、PR しようかと思い CSS を調べていたら、それ以前の問題を発見した。

text.css

本家サイトTop Page で使われている text.css というファイルには、こんな風に書いてあった。

text.css, http://www.freebsd.org/layout/css/text.css

 a:link                          { color:#990000; text-decoration: underline; }
 a:visited                       { color:#990000; text-decoration: underline; }
 a:active                        { color:#990000; text-decoration: underline; }
 a:hover                         { color:#000000; text-decoration: underline; }

a:link と a:visited に同じ色が使われていてそれが気にくわなかったんだけど、それ以前に、a:hover が a:active より後ろに指定されているので、a:active が効いていない状態。

なぜ a:active を a:hover より後ろに書かなければならないのかについては以下のエントリに書いたので御覧下さい。

スタイルシートの a:hover と a:active の順序
d:id:peanutsjamjam:20060508:p1

なので、それを直してもらうように、昨日 PR した。

PRしたやつ

PR したやつ

PR:www/97043 [PATCH] Please change the order of a:hover and a:active in text.css
http://www.freebsd.org/cgi/query-pr.cgi?pr=97043

今日みたら commit してくれてました。

でもなぜかまだその CSS が見えてこない。時間かかるのかな。(追記:時間かかったけど、もう反映されてる)

日本サイトはどうなんだろう。同じ CSS ファイルを使うようになってるのかな。

トラックバック - http://freebsd.g.hatena.ne.jp/peanutsjamjam/20060510

2006-05-06

getopt_long getopt_long - peanutsjamjamのFreeBSD日記 を含むブックマーク はてなブックマーク - getopt_long - peanutsjamjamのFreeBSD日記 getopt_long - peanutsjamjamのFreeBSD日記 のブックマークコメント

getopt_long(3) の man page の EXAMPLES のところ、最後から 3 行目の閉じブラケット "}"。インデントがずれてるかも。

switch の終わりの "}" なのに、while の終わりみたいに見えちゃう。

トラックバック - http://freebsd.g.hatena.ne.jp/peanutsjamjam/20060506

2006-05-05

sysutils/pdumpfs の日本語 man page が EUC-JPインストールされるようになった。 sysutils/pdumpfs の日本語 man page が EUC-JP でインストールされるようになった。 - peanutsjamjamのFreeBSD日記 を含むブックマーク はてなブックマーク - sysutils/pdumpfs の日本語 man page が EUC-JP でインストールされるようになった。 - peanutsjamjamのFreeBSD日記 sysutils/pdumpfs の日本語 man page が EUC-JP でインストールされるようになった。 - peanutsjamjamのFreeBSD日記 のブックマークコメント

[ports-jp 20689] ports での日本語 man の扱い の続きです。

問題点

問題だったのは、だいたいこんなようなこと。

「sysutils/pdumpfs は日本語マニュアルページをインストールするけれど、漢字コードが JIS のままインストールしてしまうので jman コマンドで見ようとすると文字化けしてしまう(jman コマンドは、マニュアルページが EUC-JP で書かれている事を期待していて、JIS コードだと文字化けしちゃう)。インストールの際に nkf を使って、マニュアルページの漢字コードを EUC-JP に変換する事も出来るが、それをやると、pdumpfs が nkf依存する事になってしまう。pdumpfs という port が japanese カテゴリに入っているわけでもないのに、nkf なんかに依存して良いものだろうか。」

そこに、救世主が登場して(笑)、「sysutils/pdumpfs は Ruby依存している」ことと、「Ruby には、NKF モジュールや、kconv モジュールが入っている」事を告げる([ports-jp 20751])。依存する port を新たに増やすこと無く、JISEUC-JP の変換の可能性を示唆。

この福音ともいえる Okazaki 氏の投稿を受け、Tsurutani さんはパッチを書き直し(see: [ports-jp 20774])、それがそのまま正式採用となった。

links

ports-jp の一連のスレッド

Tsurutani さんが send した PR

Problem Report ports/95619 : japanese manpage of pdumpfs is wrong
PR: ports/95619

freebsd-ports-bugs の一連のスレッド

実際に試してみる

# cd /usr/ports/sysutils/pdumpfs
# make install
===>  Installing for pdumpfs-1.3_1
===>   pdumpfs-1.3_1 depends on file: /usr/local/bin/ruby18 - found
===>   Generating temporary packing list
===>  Checking if sysutils/pdumpfs already installed
install  -o root -g wheel -m 555 /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/pdumpfs /usr/local/sbin/
install  -o root -g wheel -m 444 /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/man/man8/pdumpfs.8 /usr/local/man/man8/
/usr/local/bin/ruby18 -ni -r nkf -e 'puts NKF.nkf("-e",$_)' /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/man/ja/man8/pdumpfs.8
install  -o root -g wheel -m 444 /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/man/ja/man8/pdumpfs.8 /usr/local/man/ja/man8/
/bin/mkdir -p /usr/local/share/doc/pdumpfs
/bin/cp -R /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/ChangeLog /usr/local/share/doc/pdumpfs/
/bin/cp -R /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/README /usr/local/share/doc/pdumpfs/
/bin/cp -R /usr/ports/sysutils/pdumpfs/work/pdumpfs-1.3/doc/* /usr/local/share/doc/pdumpfs/
===>   Compressing manual pages for pdumpfs-1.3_1
===>   Registering installation for pdumpfs-1.3_1

jman コマンドで、マニュアルページが正しく表示されるかどうか、試してみる。

% jman pdumpfs
名前
     pdumpfs - Plan9 もどきのバックアップシステム
(以下略)

ちゃんと読めました。(^_^)

積み残された課題

今回は、たまたま sysutils/pdumpfs が Ruby依存していたので、漢字コード変換機能のために他の port を依存リストに加えずに済んだけれど、まったく他の port に依存していない port とか、自分自身や、自分が依存している port に漢字コード変換機能が無い場合はどうするべきだったのか。

また、今回のように、問答無用日本語マニュアルページがインストールされることに対する是非。

これは、わたしたちのような日本人にとっては「インストールしてくれてありがたい」で済む話だけど、他の言語を使っている人の立場で考えたらどうだろうか。英語が読めるから日本語の man page は要らない、という人もいるだろうし。

ある port が、英語日本語フランス語ドイツ語ロシア語マニュアルページを持っていたとして、*1、全部インストールして欲しいなんて人は滅多にいないだろうと思う。

「私は英語日本語マニュアルページを読みたいから、port が man page を持っている場合それが英語日本語ならインストールしてね、他の言語マニュアルページはインストールしないでね」という設定をどこかで出来るようになっていればいいのかな。(もう既にあるかもw。調べてみなきゃね)

*1FreeBSD で用意されているドキュメント類の言語リストのようなものは、この URL で見ることができます。http://www.freebsd.org/cgi/cvsweb.cgi/doc/

トラックバック - http://freebsd.g.hatena.ne.jp/peanutsjamjam/20060505

2006-05-04

tsort tsort - peanutsjamjamのFreeBSD日記 を含むブックマーク はてなブックマーク - tsort - peanutsjamjamのFreeBSD日記 tsort - peanutsjamjamのFreeBSD日記 のブックマークコメント

とあるデーモン君の日常:

「ただいまぁ。あー疲れた。ラーメン食べよ。あ、音楽聞きながらラーメン作ろうかな。友達に借りた CD があるんだよね。あぁそうだ、今日返す予定だったけど返せなかったな。友達に「明日ちゃんと返すからね」ってメール書かなきゃな。ま、とりあえず CD プレイヤースイッチを……、うげ、すごい手が汚れてる。これじゃリモコンにもキーボードにも触れないな。まず手を洗うとするか。(洗面所に移動)。ん?水道が出ない。げ!。水道代払ってなかったので、とうとう止められた。ウキー!。」

やるべき事と、その前に済ませなければならない事を整理すると、次のようになります。

これをスペース区切りのファイルにして、todo.txt として保存。

music_on eat_ramen
wash_hands music_on
wash_hands write_mail
pay_bills wash_hands

このファイル todo.txt を、tsort(1) コマンドに与えると、

    % tsort todo.txt
    pay_bills
    wash_hands
    music_on
    write_mail
    eat_ramen

tsort(1) コマンドの実行結果によると、「まず水道代を払って、それから手を洗って、それから音楽スタートさせて、それから友達にメールを書いて、やっとその後にラーメンを食べなさい。」

だそうです。がんばれデーモン君!*1

*1:そもそも水道止められてたら、どうやってもラーメン食えなさそう。

トラックバック - http://freebsd.g.hatena.ne.jp/peanutsjamjam/20060504