1 名前:よーだ [2006/08/25(金) 08:34:04 ID:hyAu/OJ9] ディストリの壁をこえて SLAX を語ろう。
97 名前:login:Penguin mailto:sage [2006/09/30(土) 11:19:20 ID:e/ZaYWRC] >>96 20MBのSASI HDDとか載ってそうですね。
98 名前:login:Penguin mailto:sage [2006/09/30(土) 11:22:42 ID:0vRzkQaS] >>97 すまん、64KBではなく64MBです。 さすがに64KBのメモリではどうにもなりません。 メモリのサイズで、年取っているのがばれてしまった。
99 名前:login:Penguin mailto:sage [2006/09/30(土) 13:30:33 ID:sgPXKBuK] >>98 キニスンナ ところでどうしてSLAXは軽い動作を保てるのでしょうか?
100 名前:login:Penguin mailto:sage [2006/09/30(土) 15:35:30 ID:0vRzkQaS] >>99 ありがとう。 軽いのは、圧縮伸張の方式が大きく影響しているように思います。 knoppixのcloopは、すべてのファイルをひとつの圧縮ファイルにまとめちゃっているけど、 slaxのsquashfsは、パッケージ単位とかある程度のまとまりごとに圧縮しているので。 あとは、お腹いっぱいに積めているknoppixと、必要最低限のslaxというのも大きいかな。 slaxは、日本語版にしても250MBくらいなので、読み込まなければいけないファイルは ずいぶん少ないですね。
101 名前:login:Penguin [2006/09/30(土) 19:41:31 ID:Wph1O9KW] slax-ja-5.1.7b-2.moが日本語化モジュールなんでしょうけれども、各国(ro,tw等々)でのそれぞれの国語化って同じようなモジュール形式で実現してるんでしょうか。 また本家は「国際化」特にCJK対応について何か意見を持ってるんでしょうか。
102 名前:login:Penguin [2006/09/30(土) 21:54:37 ID:Wph1O9KW] この板では話おおきいかも知れませんが日本の将来のために「Linuxの日本語化」ってものすごく大きい意味を持つと思います>世耕さん>安倍さん
103 名前:login:Penguin mailto:sage [2006/09/30(土) 23:28:13 ID:0vRzkQaS] >>101 言語別にひとつのモジュールにまとめるという話は本家フォーラムでは見たことないです。 ただ、こういうのができたよと言語用のモジュールを提供するのは、Tomasは気軽に受け とってくれます。とってもフレンドリーな感じです。 マルチランゲージとして下のURLにあるのですが、これもバラバラという感じですよね。 www.slax.org/modules.php?category=multilang 一度、すべての日本語に関するファイルをひとつのモジュールにまとめようとしたことが あったのですが、そのときはuimがどうしても動いてくれなくて諦めました。 いま、Slax標準が196MBで、日本語版が253MBというサイズになっています。単純に 日本語モジュールとひとつにまとめると57MBということになるので、このサイズがSlaxに は大きすぎるのかなぁと思ってもいます。 僕としては、Slax本家の標準に最低限の日本語環境で使いやすいものを提供して、あと はユーザがそれに加えて自分の使いたいものを自由に入れてくれればいいかなぁと。 Slax自体がとってもカスタマイズしやすいものなので、そうするのが自由なソフトウェアと して相応しいじゃないかと思ったりしていますが、どうでしょうか。
104 名前:login:Penguin [2006/10/01(日) 11:20:51 ID:5HJpYhn/] >>103 ありがとうございます。 slaxのコンセプトは「軽い」ということと「カスタマイズが簡単」ということだと思いますので、「最低限の日 本語環境の提供」案に賛成です。ここで具体的に整理したいのですが、たとえばja5.1.7b2なら以下のようなモ> ジュールが、その最低限の日本語化部分の骨格になると理解していいですか。 ●基本部分 slax-ja-5.1.7b-2.mo glibc-i18n-2.3.6-noarch-3.mo ●フォント ipafont-ttf-noarch-1.mo ●KDEまわり kde-i18n-ja-3.5.3-noarch-1.mo koffice-l10n-ja-1.5.1-noarch-1.mo ●日本語入力まわり uim-1.2.0-i386-1.mo anthy-7900-i386-1.mo
105 名前:login:Penguin mailto:sage [2006/10/01(日) 14:49:03 ID:nsJeQoPa] >>102 経済産業省のやってるクノッピて、国家プロジェクトじゃないの? まぁ、あんまりというか全く宣伝してないけど。 小中高はWinじゃなくてlinux使わせようよ。
106 名前:login:Penguin mailto:sage [2006/10/01(日) 17:45:56 ID:xcC/CkYC] >>104 あと補足すると、 ●印刷 cndrvcups-common-1.20-i386-2.mo cndrvcups-lips4-1.20-i386-3.mo espgs-8.15.2-i486-1.mo gimp-print-4.2.7-i486-2.mo gnu-gs-fonts-6.0-noarch-1.mo ●エディタ vim-7.0.017-i486-1.mo ●その他 k3b-i18n-0.12.15-noarch-1.mo 残ったのは glibc-profile-2.3.6-i486-3.mo だけど、これって日本語化と関係あるんですか。
107 名前:login:Penguin mailto:sage [2006/10/01(日) 23:20:41 ID:xcC/CkYC] さっき ttp://squashfs.sourceforge.net/ からたどってsquashfs3.1-r2.tar.gzをおとしてbuildしてみました。 カーネルパッチはめんどーなので当てなかったのですが、./squashfs-tools/ 以下で make したら mksquashfs と unsquashfs という圧縮・解凍コマンド対ができました。 これを使うと他ディストロからでもSLAXの *.mo が作れたり、内容のリストとったりできそうです。 $ mksquashfs file1 file2 file3 hoge.mo $ unsquashfs -l hoge.mo
108 名前:login:Penguin mailto:sage [2006/10/02(月) 00:00:55 ID:ZBxzw4zV] >>106 glibc-profile-2.3.6-i486-3.moは、uimを動かす過程で、glibc-i18n-2.3.6-noarch-3.moと 一緒に入れました。本当に必要かわからなかったんだけど、両者を一緒に入れたときに uimが動いてくれたので、そのままになっています。 このglibc-profile-2.3.6-i486-3.moって、なんのためのライブラリなんでしょうね。
109 名前:login:Penguin mailto:sage [2006/10/02(月) 00:15:56 ID:D3+ZApa1] >>105 小中高はwinじゃなくてlinuxというのは、同感なんだけど、高校卒業して就職したとき 会社がwinだったりすると、linuxを導入した高校は使えないという評価になるんで、 なかなか難しかったりするようです。同じように大学がwinだったりすると、そこでlinux だけをやっている学生は遅れたりすることがあるんじゃないかなぁと危惧してみたり。 knoppixは、日本語版knoppixは産総研の須崎さんの研究テーマのひとつで、別の ところでも一部を支援はしているけど、国家プロジェクトというほどではないですよ。 国家プロジェクトというと国の都合で推進するわけで、そういうのとは別にやっている ほうが健全だと思ったりして。プロジェクトにべったりだと、国の都合で方針を変えな くちゃいけなかったり、いきなりやめられて途方にくれたりすることがままあります。
110 名前:login:Penguin [2006/10/02(月) 00:20:46 ID:D3+ZApa1] >>107 すごいですねぇ。 僕なんか、モジュールを作るのはslackwareでtgzファイルを作って、それをslax上で tgz2moコマンドで変換しています。もうひとつのmo2tgzコマンドを使う場合、よく バージョンの違いで怒られることがあるのですが、mksquashfsだとどうですか。 怒られないなら、こっちにしたいなぁ。
111 名前:login:Penguin mailto:sage [2006/10/02(月) 08:59:45 ID:+nsWYShe] >>110 よく見たらisoイメージの./tools以下にmksquashfsとunsquashfsがありました。 *2moのコマンド群は、おなじ./tools以下にあるliblinuxliveという、関数登録用のスクリプトを起動したのち、その中の create_module() { mksquashfs "$1" "$2" $3 >/dev/null if [ $? -ne 0 ]; then return 1; fi chmod oga-x "$2" # remove execute attrib } を使っていました。つまり間接的にmksquashfsを使っていることになります。いわばwrapperですね。
112 名前:login:Penguin mailto:sage [2006/10/02(月) 09:00:36 ID:+nsWYShe] >>110 つづき またmo2dirでは同じliblinuxliveの中の mount_module() { mount -t squashfs -o loop,ro "$1" "$2" err=$? if [ $err -eq 0 ]; then echo "$1 $2" >>/tmp/_mounts fi return $err } を使用していました。 unsquashfsというコマンドを使うのではなく、kernelにsquashfsパッチを当てているようです。 エラーを返すというのはこのmountの動作に関してでしょう。 unsquashfsで一部の*.moを解凍しようとすると次のようなエラーが出ます。これも類似の現象だと思います。 Major/Minor mismatch, filesystem on Avidemux_2_0_40.mo is (2:1) I only support Squashfs 3.0 filesystems! Later releases will support older Squashfs filesystems つまり、もう少ししたら3.0以前のsquashfsにも対応するから待っててね、ということのようです。
113 名前:login:Penguin mailto:sage [2006/10/02(月) 09:09:01 ID:+nsWYShe] >>108 The glibc-profile package includes the GNU libc libraries and support for profiling using the gprof program. Profiling is analyzing a program's functions to see how much CPU time they use and determining which functions are calling other functions during execution. To use gprof to profile a program, your program needs to use the GNU libc libraries included in glibc-profile (instead of the standard GNU libc libraries included in the glibc package). If you are going to use the gprof program to profile a program, you'll need to install the glibc-profile program. 以上、赤帽のサイトから。これ見るかぎりglibcのプロファイリング用のライブラリ群のようですな。あまり必要ではなさそうなのですが、どうしてuimの動作と関連するのでしょう..
114 名前:login:Penguin mailto:sage [2006/10/02(月) 12:34:19 ID:+nsWYShe] ためしに/modules以下のglibc-profile-2.3.6-i486-3.moを消して起動してみました。 (USBだとこういうのが簡単 ^^;) 今のところuim1.2.0も問題なく動いています(Konsole/KDEでも、jfbtermのuim-fepも)。 しばらくこのprofileモジュール外して使ってみます。もし不具合でたら報告します。
115 名前:login:Penguin mailto:sage [2006/10/02(月) 13:51:08 ID:+nsWYShe] fd使いのために。 .fd2rc で次のような関連付けをしてみると*moファイルの扱いがなじんできます。 arch ".mo" "mksquashfs %TA %C &>/dev/null" "unsquashfs %C"
116 名前:login:Penguin mailto:sage [2006/10/02(月) 14:40:46 ID:+nsWYShe] 追加 launch ".mo" "unsquashfs -l %C|$PAGER"
117 名前:login:Penguin [2006/10/02(月) 21:52:12 ID:DY7TgomC] >>116 エラー表示も重要 launch ".mo" "unsquashfs -l %C 2>&1 |$PAGER"
118 名前:login:Penguin mailto:sage [2006/10/02(月) 23:13:43 ID:D3+ZApa1] >>113 すいません、言葉が足りませんでした。 uimをmakeするときに、i18nとprofileを一緒に入れて動いたのが確認できたので、 それをそのまま使っています。glibc関連のライブラリは、その他のモジュールで 使う場合があるので、そのままにしておこうという感じです。
119 名前:login:Penguin mailto:sage [2006/10/04(水) 11:55:28 ID:JbpUhSjT] >>112 unsquashfsでエラーが出るということはSLAXがブートするときにも読めてないということだろうか? とくにエラー表示ないけどなあ。 SLAXのkernelはsquash 2.x と 3.xの両方が読めてるってことか。 すくなくとも本家のlibdvdcss_1_2_8_2.mo, alien_8_56.mo, XChat_2_6_1.mo, Syslinux_2_13.moはunsquashfs3.1では読めなかったぞ。(本家のモジュールには2.xと3.xのsquashfsが混在しているが、これでいいのか)
120 名前:login:Penguin mailto:sage [2006/10/04(水) 16:39:57 ID:JbpUhSjT] squashfs2.xとか3.xとかいうことより、 Ftp://ftp.slax.org/SLAX-6.x/testing/technology-preview/READMEによると using LZMA compression for squashfs. This is not backwards compatible with old Slax modules, but it's better so Slax will switch to it. ということなので、いずれ全てのモジュールは新しくならざるをえない。これってsquashfsが3.2ないし4.0になるってことか?
121 名前:login:Penguin mailto:sage [2006/10/05(木) 02:45:49 ID:vKxreEEd] >>119 ブートするときに読めてないということではないみたいです。 単にmo2dirで展開するときに、失敗するみたいですね。 それを作ったときのsquashfsのバージョンで展開しなくちゃいけないんだけど、 どのバージョンなのか分からないまま、try & errorは避けたいです。
122 名前:login:Penguin mailto:sage [2006/10/05(木) 02:59:09 ID:vKxreEEd] >>120 確かに圧縮形式が変わればモジュールのコンパチビィリティが失われるので、 これまでのモジュールは使えなくなりますね。そこのところを確かめようと、 squashfsのウェブページを見たのですが、それらしいのを見つけられませんでした。 根拠が薄いのですが、次期slaxからunionfsをaufsに変更するように、squashfsも another squashfsにするような気がします。 squashfsの作者がLZMAは好ましく思っていないというTomasのコメントがあるから そうかも。それよりスピードが遅いというスレッドも本家でたっているので、ひょっと したら見送られる可能性もあります。
123 名前:login:Penguin mailto:sage [2006/10/05(木) 09:15:43 ID:JRU68BeF] >>122 ftp://ftp.slax.org/SLAX-6.x/testing/technology-preview/devel/lzma-for-squashfs.tar.gz これ、LZMAパッチの当たったsquashfsのソースだろうか。 展開コマンドunsquashfs.cについてはそのまんまのようだけど、同じunsquashfsで通用するってことかな。 いずれにしてもunsquashfsがもちっとかしこくなって、 モジュールの圧縮形式[version]まで自動検出できるようになってほしい。 それと旧バージョンの圧縮モジュールを別のバージョンの圧縮モジュールに変換するようなコマンドも。
124 名前:login:Penguin [2006/10/05(木) 12:37:13 ID:JRU68BeF] バイナリダンプしてみると、squashfs3.xで圧縮したものは0x6fから8バイトにわたってナゾの0xffが続いている。これはunsquashfs3.1がきちんと読める。 unsquashfsがエラーを返す*.moファイルはみな、0x6fから0xffが続かないものばかりだ。まあこんなreverseするより、mksquashfsのソース読むのが正道なんだろけど。
125 名前:login:Penguin mailto:sage [2006/10/05(木) 13:39:22 ID:JRU68BeF] ソース読みマスタ。squashfs_fs.hの中のstruct squashfs_super_block。 0xc-0xd(第29-30バイト)がmajor version, 0xe-0xf(第31-32バイト)がminor versionのようだ。0xffが続くとかどうとかはあまりspecificではなかった。撤回。
126 名前:login:Penguin mailto:sage [2006/10/05(木) 15:32:09 ID:JRU68BeF] ということでどのバージョンのsquashfsで圧縮されているかのチェックはbashなら function checksqver { dd if=$1 bs=2 count=2 skip=14 2>/dev/null|ruby -ne 'p $_.unpack("M")'; } という感じになるかな。出力はきれいじゃないが、まあとりあえずの情報だけは得られる。テキトーにいぢってくれ。 usage: checksqver <filename>
127 名前:login:Penguin mailto:sage [2006/10/05(木) 15:53:57 ID:JRU68BeF] 123-126まで却下。unsquashfsがきちんと処理していた。やれやれ。
128 名前:login:Penguin [2006/10/05(木) 19:57:19 ID:PONBBqlJ] >>127 いやいや、どこにバージョン情報があるかよくわかりました。
129 名前:login:Penguin [2006/10/06(金) 10:23:10 ID:+QMgQO8T] linux自体昨日初めて聞いて触ったんだけど、これでFAX送ろうと思ったけど送れないよ。 どうやったらいいのかな。
130 名前:login:Penguin mailto:sage [2006/10/06(金) 11:54:13 ID:bFSkCVhU] たとえばwindow managerがKDEならば「KDE fax 送信」でググられてはいかがかと。
131 名前:login:Penguin mailto:sage [2006/10/06(金) 17:56:10 ID:bFSkCVhU] >>126 function checksqver{ test -f $1 && ruby -e "ARGF.seek(28); p ARGF.read(4).unpack('M')" $1; }
132 名前:login:Penguin mailto:sage [2006/10/06(金) 18:00:34 ID:bFSkCVhU] function checksqver { test -f $1 && ruby -e "ARGF.seek(28); p ARGF.read(4).unpack('M')" $1; } ^ 空白!!
133 名前:login:Penguin [2006/10/07(土) 13:23:32 ID:7RjSdMdC] >>132 function checksqver { test -f $1 && ruby -e "p IO.read(ARGV.shift,4,28).unpack('M')" $1; }
134 名前:login:Penguin [2006/10/09(月) 13:22:39 ID:7wkUnpBE] Slax_Module_Inspector_060611.mo を使えば3.xも2.xも処理できます。
135 名前:login:Penguin [2006/10/09(月) 13:37:42 ID:7wkUnpBE] つーか、これブート時に展開したときのログみたいなもんを利用するモジュールかも。
136 名前:login:Penguin [2006/10/09(月) 17:35:50 ID:7wkUnpBE] お。本家で5.1.8が出ましたね。
137 名前:login:Penguin mailto:sage [2006/10/09(月) 23:52:37 ID:sK79ZViL] これってデフォルトのWMはKDEだけ?
138 名前:login:Penguin mailto:sage [2006/10/10(火) 13:32:04 ID:WbtrmFIN] >>137 標準ではKDEとfluxboxだけだと思うけど、www.slax.orgにgnome, fvwm, xfceなどのモジュールがあるのでgetして /modules以下に置けば使用できると思います。 ttp://www.slax.org/modules.php?category=system
139 名前:login:Penguin mailto:sage [2006/10/10(火) 13:52:40 ID:hIAZPxPA] LiveCDの部屋に5.1.8がupされとるで
140 名前:login:Penguin mailto:sage [2006/10/10(火) 21:42:12 ID:nFDn8HEs] ●517jpにだけあるモジュール ochusha-0.5.8.2-3.i386.mo openprinting_mona-jp-0.1.3-0.i586.mo ●518jpにだけあるモジュール jd-1.7.0-060927.mo openprinting_M+mona-jp-0.1.3-0.i586.mo slax_5.1.8.mo ■この/modules/slax_5.1.8.moというモジュールは517jpでは/rootcopy以下におかれていたファイルをモジュール化したもののようだ。 これら設定ファイルのうち517jpにだけあって518jpには含まれないものは /root/.fonts.conf また、設定ファイルのうち518jpであらたに追加されたものは /etc/fonts/local.conf /etc/rc.d/rc.local /usr/bin/startfluxbox
141 名前:137 mailto:sage [2006/10/10(火) 23:27:52 ID:AFHQnwVm] >>138 thx!
142 名前:login:Penguin mailto:sage [2006/10/11(水) 09:12:54 ID:l7bVgBMg] はじめて使ったがjdもなかなかいいな。開発が続いている点でイチオシか。
143 名前:login:Penguin mailto:sage [2006/10/11(水) 16:57:15 ID:l7bVgBMg] >>140 517jpと518jpの/modules以下の*.moは、名前の同じものは日付がちがっても全く同じバイナリやね。 まんま動くということのようです。
144 名前:login:Penguin mailto:sage [2006/10/12(木) 11:11:49 ID:Koz2C7Fz] 本家slax518とslax518jpの相違点の詳細(その1) ▼相異点1 バイナリー・ファイルtmp/518/boot/initrd.gzとtmp/518jp/boot/initrd.gzは違います --> initrd.gzに含まれるliblinuxliveスクリプトのutf8対応の部分のみの変更 => 以下の「相異点3」参照 バイナリー・ファイルtmp/518/boot/isolinux.binとtmp/518jp/boot/isolinux.binは違います バイナリー・ファイルtmp/518/boot/isolinux.bootとtmp/518jp/boot/isolinux.bootは違います --> isoイメージを作成するときに生成されるファイルだからか.. ▼相異点2 518jpでは/modules以下に追加モジュールが置かれている。<= まあ当然 (つづく)
145 名前:login:Penguin mailto:sage [2006/10/12(木) 11:13:10 ID:Koz2C7Fz] 本家slax518とslax518jpの相違点の詳細(その2) ▼相異点3 diff -r tmp/518/tools/liblinuxlive tmp/518jp/tools/liblinuxlive 456c456,461 < if [ "$IOCHARSET" != "" ]; then OPT="$OPT,nls=$IOCHARSET"; fi --- > # if [ "$IOCHARSET" != "" ]; then OPT="$OPT,nls=$IOCHARSET"; fi > if [ "$IOCHARSET" != "" ]; then > OPT="$OPT,nls=$IOCHARSET" > else > OPT="$OPT,nls=utf8" > fi 460c465,472 < if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET"; fi --- > # if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET"; fi > if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then > OPT=",iocharset=$IOCHARSET" > else > if [ "$FS" = "vfat" ]; then > OPT=",iocharset=utf8,codepage=932" > fi > fi ●結論:本家slax518とslax518jpの相違は、追加モジュールの他にはliblinuxliveスクリプトの一部(上記)変更のみである。
146 名前:login:Penguin mailto:sage [2006/10/12(木) 15:08:36 ID:s42DJ75o] >>145 調査乙 fstabを作成するときなど、パーティションがvfat,ntfsのときにオプションに {iocharset|nls}=utf8, codepage=932 を付けるための修正だね。
147 名前:login:Penguin mailto:sage [2006/10/12(木) 15:54:54 ID:Koz2C7Fz] >>146 なるほど。 これって台湾や中国、韓国でもそれぞれ同様の変更が必要となりそうですね。 case of $LANG ; esac とか使って汎用スクリプトってかけないかな>Tomas
148 名前:login:Penguin mailto:sage [2006/10/12(木) 16:06:17 ID:Koz2C7Fz] case $LANG in ja_JP* ) codepage=932 ;; ko_KR* ) codepage=949 ;; zh_CN* ) codepage=936 ;; zh_TW* ) codepage=950 ;; esac
149 名前:login:Penguin mailto:sage [2006/10/12(木) 16:42:25 ID:s42DJ75o] そんじゃこうなおせばいい? if [ "$FS" = "vfat" ]; then OPT=",iocharset=utf8,codepage=932" fi ↓ if [ "$FS" = "vfat" ]; then case $LANG in ja_JP* ) $CODEPAGE="codepage=932" ;; ko_KR* ) $CODEPAGE="codepage=949" ;; zh_CN* ) $CODEPAGE="codepage=936" ;; zh_TW* ) $CODEPAGE="codepage950" ;; esac OPT=",iocharset=utf8,$CODEPAGE" fi
150 名前:login:Penguin mailto:sage [2006/10/12(木) 16:58:28 ID:Koz2C7Fz] codepageが必要なのはこの4つだけですよね。 多バイト文化圏って、もっとたくさんありそうにも思うけど(タイとか、中東とかはどうなんだろう?)、とりあえずCJK対応ってことで。いいと思います。
151 名前:login:Penguin mailto:sage [2006/10/12(木) 18:38:28 ID:2Z6vbIEE] >>150 たくさんのロケールを処理するなら本体にcase文を入れることが冗長になる。 メンテするごとにinitrdを作り直したりする必要ができてたいへんでもある。 ロケールを食わしたらコードページを返すような関数を書いて/usr/local/sbinあたりに置くのはどうか。 関数名をかりに 'langcp' とすると `langcp ja_JP.UTF-8` が 932 になるような関数。 その上で この OPT=",iocharset=utf8,codepage=932" の行を OPT=",iocharset=utf8,codepage=$(langcp $LANG)" とするのが簡潔かも知れない。
152 名前:login:Penguin mailto:sage [2006/10/12(木) 20:36:21 ID:2Z6vbIEE] 考えたら/usr/local/sbinに置いたとしても、その関数を更新すればinitrdを作りなおさなければならないという点では同じことかな。 liblinuxliveの中に langcp () { local codepage case $LANG in ja_JP* ) codepage=932 ;; ko_KR* ) codepage=949 ;; zh_CN* ) codepage=936 ;; zh_TW* ) codepage=950 ;; * ) return 1 ;; esac echo $codepage;return 0 } なんていう関数を書く方がふつうの感覚かも知れない。そのうえで OPT=",iocharset=utf8,codepage=$(langcp $LANG)"
153 名前:login:Penguin mailto:sage [2006/10/14(土) 10:07:53 ID:CkRKZPul] とりあえず slax-ja-5.1.8-1.iso をアップしてみました。 お試しいただけると幸いです。 hatochan.dyndns.org/slax-ja/index.php?slax-ja%2Fdownload
154 名前:login:Penguin mailto:sage [2006/10/15(日) 00:42:33 ID:E9l4MAs7] jpの修正版が上がっている。 Fluxboxで日本語がまともに使えるようになった。 スゲー殺風景なデスクトップだが軽いのが取り柄。 poorなマシンにお薦め。 ログイン後、"flux"で起動する。
155 名前:login:Penguin mailto:sage [2006/10/15(日) 14:18:53 ID:9sgz+4C+] liblinuxliveでtypo発見>はとちゃん --- liblinuxlive.518ja 2006-10-13 14:16:33.000000000 +0900 +++ liblinuxlive 2006-10-15 14:14:39.000000000 +0900 @@ -471,7 +471,7 @@ ja_JP* ) $CODEPAGE="codepage=932" ;; ko_KR* ) $CODEPAGE="codepage=949" ;; zh_CN* ) $CODEPAGE="codepage=936" ;; - zh_TW* ) $CODEPAGE="codepage950" ;; + zh_TW* ) $CODEPAGE="codepage=950" ;; esac OPT=",iocharset=utf8,$CODEPAGE" fi
156 名前:login:Penguin mailto:sage [2006/10/15(日) 16:04:50 ID:E9l4MAs7] >>155 "$CODEPAGE=932"の"$"は要らない。 →"CODEPAGE=932" 実行時にエラーになる。 それに liblinuxliveはinitrd.gzの中と、toolsの下と、/usr/libの下の3カ所にあるが、 元々内容がそれぞれ微妙に違うよ。 OPTIONを設定しているところの記述は同じみたい。 修正するなら3つのファイルをなおした方がいいんじゃない?
157 名前:login:Penguin mailto:sage [2006/10/15(日) 17:50:20 ID:9sgz+4C+] やっぱり152みたいな関数が便利かも。関数名はほかのsubfunctionの命名規則(みたいなものがあれば)にあわせて。で、本家にもってく。
158 名前:login:Penguin mailto:sage [2006/10/15(日) 21:14:16 ID:9sgz+4C+] 152のreturn文は、とりあえずいらないと思う。
159 名前:login:Penguin mailto:sage [2006/10/16(月) 09:05:57 ID:wzNUPK1o] >>150 * SBCS (Single Byte Character Set) Codepages 1250 (Central Europe) 1251 (Cyrillic) 1252 (Latin I) 1253 (Greek) 1254 (Turkish) 1255 (Hebrew) 1256 (Arabic) 1257 (Baltic) 1258 (Vietnam) 874 (Thai) * DBCS (Double Byte Character Set) Codepages 932 (Japanese Shift-JIS) 936 (Simplified Chinese GBK) 949 (Korean) 950 (Traditional Chinese Big5) cf) www.microsoft.com/globaldev/reference/WinCP.asp
160 名前:login:Penguin mailto:sage [2006/10/16(月) 09:32:08 ID:wzNUPK1o] >>157 grep "^.*()" liblinuxlive |sort でみるかぎりcreate_block_devices()なんていう命名が多いみたいだしlocale_codepage() ぐらいでいいんじゃないか、 意味まで含めればconvert_locale_codepage(), lookup_locale_codepage()だけど長すぎるかも。スクリプトはこんなもんでいいよ。return文は使う予定がないのなら省く。
161 名前:login:Penguin mailto:sage [2006/10/16(月) 19:25:59 ID:MqOhQHUe] 関数にしなくても(しない方が)いいんじゃないの。もともと149の部分は関数の中にあるわけだし、それに159にあるのが全部ならこの4つのDBCSに対応すればいいだけだから。
162 名前:login:Penguin mailto:sage [2006/10/16(月) 19:29:12 ID:MqOhQHUe] それよかSLAX1.5.8のfluxboxは日本語対応だね。uim-ximもちゃんと動く。もしかして究極のlight weight GUI
163 名前:login:Penguin mailto:sage [2006/10/16(月) 22:11:48 ID:vXniJ0jg] デラックス版出たでよ。 スゲー600MBを超えてる! 何が入ってるんだろ?
164 名前:login:Penguin [2006/10/17(火) 07:35:04 ID:B4EJO3Zv] >>155 ご指摘ありがとうございます。 initrdと02_core.moの/usr/lib配下にあるliblinuxliveの修正に手間取りましたが、 なんとか動くものができました。 ちょうど本家でも、smb-kioslaveの不具合があったので、それも修正したものを アップしましたので、ご利用ください。 hatochan.dyndns.org/slax-ja/index.php?slax-ja%2Fdownload
165 名前:login:Penguin mailto:sage [2006/10/17(火) 22:44:41 ID:V8nE5sp5] SLAX起動中にUSBメモリーを差すと自動認識して、ダイアログが出る。 ここではマウントしないでキャンセルしておく。 すると、/etc/fstabにマウントエントリーが動的に作成されている。 オプションにiocharset=utf8,codepage=932が書き込まれいれば、liblinuxliveのの修正が効いた証拠。 /mnt/sda1_removableとかいうマウントポイントも出来ている。 mount /mnt/sda1_removableとしてマウントすれば、USBの日本語ファイル・ディレクトリ名が表示される。 JP版で表示されることを確認した。
166 名前:login:Penguin mailto:sage [2006/10/18(水) 12:34:03 ID:8uK+bnRC] >>164 jaではうまく反映していないみたい。 echo "fs:$FS iocharset:$IOCHARSET lang:$LANG" > /root/liblinuxlive.log こんな感じでsnapshotしてみたらどうかな。たぶんLANGがCになっているような気がする。 それと、ここのif文もっとシンプルになるよ。 if [ "$FS" = "vfat" ]; then if [ "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else case $LANG in ja_JP* ) CODEPAGE="codepage=932" ;; ko_KR* ) CODEPAGE="codepage=949" ;; zh_CN* ) CODEPAGE="codepage=936" ;; zh_TW* ) CODEPAGE="codepage=950" ;; esac OPT=",iocharset=utf8,$CODEPAGE" fi fi でもLANGで判断するのがダメなら、jpみたいにキメうちで932にしなきゃ。 cjk汎用版は無理なのかなー。
167 名前:login:Penguin [2006/10/18(水) 12:50:40 ID:TWBXSwRL] >>166 検証しました。だめでした<確認してからアップしろよ自分! というわけで簡単なスクリプトで確認した結果、これでいいかな。 誤) OPT=",iocharset=utf8,$CODEPAGE" 正) OPT=",iocharset=utf8,"$CODEPAGE
168 名前:login:Penguin mailto:sage [2006/10/18(水) 12:58:36 ID:8uK+bnRC] >>167 いや、たぶんCODEPAGE自体が空白になってるんじゃないかと.. LANGがja_JP*に設定される前に実行されるんじゃないですかこのスクリプト
169 名前:login:Penguin [2006/10/18(水) 13:06:36 ID:TWBXSwRL] >>168 jaでは、iocharset=utf8,の後が空白なので、LANGは大丈夫だと思われます。 まずは試してみます。
170 名前:165 mailto:sage [2006/10/18(水) 13:18:51 ID:CabG0mom] SLAX稼働中にUSBを差し込んだとき、fstabにマウントエントリーの追加は、 /usr/lib/liblinuxlveを使っているから、うまくいかないときはこれをなおして 何度もデバッグできる。 いちいちisoを作り直す必要はない。
171 名前:login:Penguin mailto:sage [2006/10/18(水) 13:22:44 ID:CabG0mom] >>168 どうもそれっぽいね。 >>169 空白って$LANGが設定されてないんでしょ?
172 名前:login:Penguin mailto:sage [2006/10/18(水) 13:38:46 ID:8uK+bnRC] >>171 デフォルトではLANG=Cだったかな。 ほんと、どっかで言語(国)の情報を反映できないかな。 このままではSLAXはi18nできないことになる。
173 名前:login:Penguin mailto:sage [2006/10/18(水) 17:01:18 ID:8uK+bnRC] カーネルオプションで変数が渡せればcase文で処理できるのにな。 boot: slax なんたらかんたら lang=ja なんていうかんじで。
174 名前:login:Penguin mailto:sage [2006/10/18(水) 19:53:04 ID:HDTuRQEZ] ほかのディストロはどうやってるの?
175 名前:login:Penguin mailto:sage [2006/10/18(水) 20:01:13 ID:HDTuRQEZ] あそうか1CD-Linuxか。i18nするならやっぱりカーネルオプションしかないかなあ。 knoppixは各国語版でCD/DVD焼いてますね。
176 名前:login:Penguin mailto:sage [2006/10/18(水) 20:04:39 ID:tgdaR4C7] /proc/cmdlineから取れば良いんじゃね?
177 名前:login:Penguin [2006/10/19(木) 01:07:36 ID:MSXraNH4] >>176 liblinuxliveには、cmdline_parameter()とcmdline_value()が用意されていますので、 こちらを利用して、起動時のパラメータにlang=jaを指定して振りわければできると 思います。こんな感じでしょうか。 #if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET"; fi if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else if [ "$FS" = "vfat" ]; then CMDLINEVALUE=`cmdline_value lang` if [ "$CMDLINEVALUE" != "" ]; then case $CMDLINEVALUE in ja* ) CODEPAGE="codepage=932" ;; ko* ) CODEPAGE="codepage=949" ;; cn* ) CODEPAGE="codepage=936" ;; tw* ) CODEPAGE="codepage=950" ;; esac OPT=",iocharset=utf8,$CODEPAGE" else OPT=",iocharset=utf8" fi fi fi
178 名前:login:Penguin mailto:sage [2006/10/19(木) 01:24:31 ID:K4H0Yqvl] >>177 いいんじゃない。 cmdline_valueという関数は定義されてるんですね。
179 名前:login:Penguin [2006/10/19(木) 02:43:39 ID:yAGz+9wf] >>178 はい、liblinuxlive内にありました。 CMDLINEVALUE=`cmdline_value lang` if [ "$CMDLINEVALUE" != "" ]; then ↑これを1行でまとめられるような気がするんですが、どうするか分かりません。
180 名前:login:Penguin [2006/10/19(木) 02:47:04 ID:yAGz+9wf] jpでは、jfbtermとuim-fepで起動時からコンソールで日本語入力を可能にしている らしいのですが。slax-jaで起動時に autoexec=jfbterm;uim-fep とやっても、うまく いきません。 jpでは、どのようにこれを実現しているのでしょうか。
181 名前:login:Penguin mailto:sage [2006/10/19(木) 02:51:15 ID:K4H0Yqvl] >>180 jfbtermの中でuim-fepを実行する。 autoexec=jfbterm -e uim-fep
182 名前:login:Penguin mailto:sage [2006/10/19(木) 02:54:05 ID:K4H0Yqvl] >>179 こんな感じ? if [ "$(`cmdline_value lang`)" != "" ]; then
183 名前:login:Penguin [2006/10/19(木) 03:31:58 ID:yAGz+9wf] >>181 やってみました。 autoexec=jfbterm -e uim-fep だと -e uim-fepがjfbtermのパラメータだと認識されませんでした。 というわけで、以下のような簡単なスクリプトを作りました。 #!/bin/sh jfbterm -e uim-fep でも、プロンプトがbash-3.0となって、uim-fepは日本語オンになりませんでした。 もうちょっとぽいんですが…。
184 名前:login:Penguin [2006/10/19(木) 03:33:29 ID:yAGz+9wf] >>182 なるほど。 これだと後ろのcase文はどのようにすればいいでしょうか。
185 名前:login:Penguin mailto:sage [2006/10/19(木) 04:01:14 ID:K4H0Yqvl] >>183 それuim-fepの起動失敗してるんじゃない? スクリプトの実行属性が付いている? >>184 一緒。 #もう寝る。
186 名前:login:Penguin mailto:sage [2006/10/19(木) 04:55:59 ID:diLupZWd] >>184 元のままでいいんじゃね?
187 名前:login:Penguin mailto:sage [2006/10/19(木) 06:55:25 ID:K4H0Yqvl] liblinuxliveの中で$LANGをトレースしてみたらやはり設定されてなかった。 そこで、ブートオプションでlang=ja_jp.UTF-8などとしてして、それを /proc/cmdlineからとってくる方法もありますが、もうひとつ、別な方法として、 実はLANGの指定は/etc/profile.d/lang.shで、 export LANG=ja_JP.UTF-8 などと設定されている。これから取ってくるものを考えてみた。 LANGの値を次のように設定する。 LANG=`grep -e ^export /etc/profile.d/lang.sh|grep LANG=|cut -f 2 -d " "|cut -f 2 -d =` この行をliblinuxliveに次のように挿入する。 if [ "$FS" = "vfat" -a "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else if [ "$FS" = "vfat" ]; then LANG=`grep -e ^export /etc/profile.d/lang.sh|grep LANG=|cut -f 2 -d " "|cut -f 2 -d =` case $LANG in ja_JP* ) CODEPAGE="codepage=932" ;; ko_KR* ) CODEPAGE="codepage=949" ;; zh_CN* ) CODEPAGE="codepage=936" ;; zh_TW* ) CODEPAGE="codepage=950" ;; esac OPT=",iocharset=utf8,$CODEPAGE" fi fi はとちゃん版slaxで/usr/lib/liblinuxliveを修正して動作することを確認しました。
188 名前:login:Penguin mailto:sage [2006/10/19(木) 07:04:46 ID:K4H0Yqvl] なお、fstabのオプションの生成は/usr/lib/liblinuxliveだけが関係してくるようであり、 /usr/lib/liblinuxliveを修正するだけでOKとなった。 initrd.gzの中とtoolsの下のliblinuxliveはどこで使われるのか不明。 ま、一応修正しといた方がいいと思うけど。
189 名前:login:Penguin mailto:sage [2006/10/19(木) 08:54:38 ID:NByMOkR/] >>182 > if [ "$(`cmdline_value lang`)" != "" ]; then こんなときはよく if [ x$(cmdline_value lang) != x ]; then なんてします。 ""がxの1文字で済むので両辺で2文字倹約ですう。 xのかわりに_を使うときもあります。
190 名前:login:Penguin mailto:sage [2006/10/19(木) 09:08:20 ID:NByMOkR/] >>187 /etc/profile.d/lang.shはslax-ja-$(ver)-$(rev).moの中にありますね。これも良策ですが、カーネルオプションで明示的にlang=jaとやるほうが今後sysconfigのメニューで多国語選択可能になった場合、管理しやすいように思います。
191 名前:login:Penguin mailto:sage [2006/10/19(木) 09:16:01 ID:NByMOkR/] sysconfigじゃなくてsyslinux.cfgまたはisolinux.cfgでした。
192 名前:login:Penguin mailto:sage [2006/10/19(木) 11:03:20 ID:NByMOkR/] 166-191をまとめると if [ "$FS" = "vfat" ]; then if [ "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else case $(cmdline_value lang) in "" ) OPT=",iocharset=utf8" ;; ja* ) OPT=",iocharset=utf8,codepage=932" ;; ko* ) OPT=",iocharset=utf8,codepage=949" ;; cn* ) OPT=",iocharset=utf8,codepage=936" ;; tw* ) OPT=",iocharset=utf8,codepage=950" ;; esac fi fi こんなかんじになるけど、これでいいのかな。iocharsetがutf8でなくてもcodepageは言語に従って指定した方がいいんじゃないかな。
193 名前:login:Penguin mailto:sage [2006/10/19(木) 11:04:42 ID:NByMOkR/] (つづき) ということは、 if [ "$FS" = "vfat" ]; then if [ "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else OPT=",iocharset=utf8" fi case $(cmdline_value lang) in ja* ) OPT="${OPT},codepage=932" ;; ko* ) OPT="${OPT},codepage=949" ;; cn* ) OPT="${OPT},codepage=936" ;; tw* ) OPT="${OPT},codepage=950" ;; esac fi これでどうだろう。
194 名前:login:Penguin mailto:sage [2006/10/19(木) 11:08:13 ID:NByMOkR/] (つづきのつづき) if [ "$IOCHARSET" != "" ]; then OPT=",iocharset=$IOCHARSET" else OPT=",iocharset=utf8" fi は1行で OPT=",iocharset=${IOCHARSET:-utf8}" って書くこともできます(bash>2.x)。
195 名前:login:Penguin mailto:sage [2006/10/19(木) 11:30:14 ID:NByMOkR/] ということで決定版です。全部で9行 if [ "$FS" = "vfat" ]; then OPT=",iocharset=${IOCHARSET:-utf8}" case $(cmdline_value lang) in ja* ) OPT="${OPT},codepage=932" ;; ko* ) OPT="${OPT},codepage=949" ;; cn* ) OPT="${OPT},codepage=936" ;; tw* ) OPT="${OPT},codepage=950" ;; esac fi
196 名前:login:Penguin mailto:sage [2006/10/19(木) 11:44:22 ID:K4H0Yqvl] いい! そんじゃ、関数化するとこんなもん? get_codepage() { case $(`cmdline_value lang`) in ja* ) codepage=932" ;; ko* ) codepage=949" ;; cn* ) codepage=936" ;; tw* ) codepage=950" ;; esac echo $codepage } [ "$FS" = "vfat" ] && OPT=",iocharset=${IOCHARSET:-utf8},codepage=`get_codepage`"
197 名前:login:Penguin mailto:sage [2006/10/19(木) 12:55:04 ID:NByMOkR/] >>196 あ、でもlangが指定されなかった場合、つまり$(cmdline_value lang)が空だった場合、OPT=",iocharset=${IOCHARSET:-utf8}" のままでとどめたい。でないと OPT=",iocharset=utf8,codepage=" なんてことになってマウントエラーにならないかな。 それと$(~...~)のバッククオートは不要だと思う。$()が``と同じはたらきをするから。 あえて関数にするなら get_codepage() { case $(cmdline_value lang) in ja* ) echo ",codepage=932" ;; ko* ) echo ",codepage=949" ;; cn* ) echo ",codepage=936" ;; tw* ) echo ",codepage=950" ;; esac } [ "$FS" = "vfat" ] && OPT=",iocharset=${IOCHARSET:-utf8}$(get_codepage 2> /dev/null)" かな、私のクセでは最後の文を test _$FS = _vfat && .. なんて書きたい所だけど、これは他の部分の文体に合わせたほうがいい。