ディスクの中の住人たち (2001-02)

周りの Linux Box に入れたアプリケーション達の記録です. 初めはそれだけのつもりでしたが, 最近はいろいろ書いてます (^^;



2001/02/24

Tcl Plugin (tclplug20-src.tar.gz)

[Pazu] Tcl/Tk をブラウザ内で実行させるためのプラグ イン. Tcl/Tk 8.0p2 という古い Tcl/Tk をベースに作られている.

コンパイルは, 同梱されている Tcl, Tk を先に行う. Tcl のコンパイ ルのとき, tclPosixStr.c のコンパイルでコケたので, エラーメッセージ を眺めてコケた部分をコメントアウト (こんなことをしてもいいのか, 詳 細は一切不明 :-). Tk のほうは, 何の問題もなくコンパイル終了.

そして, 最後にプラグインをコンパイル. Netscape を起動させ, 「ヘ ルプ」→「Plug-in について」で, Tcl Plugin 2.0 を確認.

$ tar xzvf tclplug20-src.tar.gz
$ cd tclplugin2.0/

$ cd tcl8.0/generic               (tclPosixStr.c にパッチを当てる)
$ cat tclPosixStr.patch
--- tclPosixStr.c.orig  Thu Nov 27 08:00:02 1997
+++ tclPosixStr.c       Sat Feb 24 11:12:16 2001
@@ -336,9 +336,11 @@
 #ifdef ENXIO
        case ENXIO: return "ENXIO";
 #endif
+         /*
 #ifdef EOPNOTSUPP
        case EOPNOTSUPP: return "EOPNOTSUPP";
 #endif
+         */
 #ifdef EPERM
        case EPERM: return "EPERM";
 #endif
@@ -783,9 +785,11 @@
 #ifdef ENXIO
        case ENXIO: return "no such device or address";
 #endif
+         /*
 #ifdef EOPNOTSUPP
        case EOPNOTSUPP: return "operation not supported on socket";
 #endif
+         */
 #ifdef EPERM
        case EPERM: return "not owner";
 #endif
$ patch < tclPosixStr.patch

$ cd ../unix                      (tcl を make)
$ ./configure --enable-shared --enable-gcc
$ make

$ cd ../../tk8.0/unix/            (tk を make)
$ ./configure --enable-shared --enable-gcc
$ make

$ cd ../../plugin2.0/unix/        (plugin を make)
$ ./configure --with-tcl=../../tcl8.0/unix/ \
	--with-tk=../../tk8.0/unix/ \
	--with-mozilla=/usr/local/netscape/
$ make
# make install
Ruby から PostgreSQL を使うライブラリ (ruby-postgres-0.6.2.tar.gz)

[Pazu] Ruby を入れた, PostgreSQL を入れた, でも Ruby から PostgreSQL を操るライブラリを入れてなかったので, インス トール. 献血データ の登録はいまだに手で SQL 文をダイレクトに実行していますが, そ れ以外の簡単な問い合わせには, いくつかの Ruby スクリプトを使ってい ます.

$ tar xzvf ruby-postgres-0.6.2.tar.gz 
$ cd ruby-postgres-0.6.2
$ ruby extconf.rb \
	--with-pgsql-include-dir=/usr/local/pgsql/include \
	--with-pgsql-lib-dir=/usr/local/pgsql/lib
$ make
# make install
TclTk-ext で Img を Ruby から使えるようにした (tcltk-ext04.tar.gz)

[Pazu] 先日入れた ImgRuby から使えるようにす るために, TclTk-ext を使ってライブラリを作った. 結果的に, あっけなく成功. これで, Ruby/Tk からでも PNG や JPEG などを気楽に扱える. Ruby/GD あたりと組み合わせれば, PNG の画像処理 or 画像作成だっ て楽々できそうだ.

Win の場合は, どうすればいいんだろう…

$ mkdir tcltk-ext
$ cd tcltk-ext
$ tar xzvf ../tcltk-ext04.tar.gz
$ cat Img.def                       (Img.def は自分で作ろう)
$pre_load_lib = [
  nil
]
$ext_lib_info = [
  ['Img', 'libimg1.2.so', ['/usr/lib/Img1.2/']],
  nil
]
$ ruby mk_tkextlib.rb -p Img
# cp tcltkextlib.rb tcltkext.rb tkext.rb Img.rb Img.inf \
	/usr/local/lib/ruby/site_ruby/1.6/

2001/02/18

Ruby 1.6.2 ( ruby-1.6.2-20001218-i386-cygwin.tar.gz)

[Pazu-win] VMware 経由で走る Win98 に入れ た Cygwin 上 で Ruby を使えるように するために, インストール. ソースからコンパイルするのが筋かもしれな いけど, Win のことはほとんど何も知らない ので, バ イナリをもらってきて, / で展開 (tar xzvf ね)

.

このバイナリパッケージには Ruby 本体以外にも, irb や racc, RubyUnit などのツールがてんこ盛り. 実行ファイルにしても, ruby.exe 以外にも rubyw.exe や rubywin.exe もある.

私として, 一番気になっているのは Ruby/Tk が走るかどうか. 結果と しては OK でした (^^)v DLL は, Cygwin 上にインストールされているも のではなく, Win 本体に入れたライブラリを参照しているようです. Ruby 内から Tcl のバージョンを表示させたところ, Cygwin に入っている 8.0 ではなく, 自分で入れた 8.3 のバージョン番号が表示されましたし, 窓 の外観も Win 版 Tcl/Tk のものでしたし.

Win で Ruby/Tk をやりたい人は, 次の 3 つのものを入れるだけで OK でしょう.

mswin32 版で Ruby/Tk ができるかどうかは, まだ確認していませ んが.

2001/02/12

ALSA 0.5.10 ( alsa-driver-0.5.10b.tar.bz2, alsa-lib-0.5.10b.tar.bz2, alsa-utils-0.5.10.tar.bz2)

[Pazu] そろそろ, 飾りで置いてあるスピーカから音を 出したくなってきた. というわけで, フツー, カーネル付属の OSS/Free ぢゃなくて ALSA.

インストールは簡単で, driver, lib, utils を順番に入れてい けばよい. lib はデフォルトで /usr/lib に入るようなので, 嫌なら ./configure のときに設定しよう.

他にやることは…

あとは alsamixer で音量を調整. ALSA はデフォルトで, 音量ゼ ロ, かつミュートがかかっている ので, ミュートを外して音量を上げ て, 例えば aplay hoge.wav. ミュートを外すのを忘れて いて, 最初かなり焦ったけど, 結果的に音は出た (^^)v.

さて, 私のモニタにはスピーカが付いている. ミニジャックのケー ブルをそこに刺せば, 外付けのスピーカが不要になる. 今度, 電器屋 で買ってこよう.

2001/02/11

Cygwin

[Pazu-win] (pazu-win は, pazu で VMware を 使って走らせている Win98 の名前です) Win で UNIX 環境を作るための ソフト. ASCII から出た「Windows で GNU ソフトウェアを使おう!」の CD-ROM に入っているものを使用.

setup.exe を起動し, ほとんどデフォルトでインストール. Ash のインストールで何かメッセージが出てたけど, とりあえず無視. インストーラが 異常終了 してしまったけど, インス トールは最後まで行ったようです.

Tcl/Tk を入れたはずだけど, どこへ行ったかなぁ〜と探していたら, /usr/bin/cygwish80 でした. /usr/bin/cygitkwish30 ってのもあるけど, これは 何だ?

Tcl/Tk 8.3.2 (tcl8.3.2.tar.gz, tk8.3.2.tar.gz)

[Pazu] Tcl/Tk 環境の整備. Plamo Linux 2.1 には Tcl/Tk 8.0.? (jp) が入っているのですが, Tcl/Tk の 最新は 8.3.2 なので, 自分で入れることにした.

コンパイルは, README の通り. すんなり入ります. 元々入ってい た Tcl/Tk 8.0.? (jp) は /usr 以下に, 今度入れた Tcl/Tk 8.3.2 は /usr/local 以下に入れました.

Tcl Image formats (Img) Version 1.2.4 (img1.2.4.tar.gz)

[Pazu] Tcl/Tk はデフォルトで, GIF や XBM, PNM とい う画像形式しかサポートしていない. これを拡張し, JPEG や PNG, TIFF などを使えるようにするのが Img.

Img 1.2.4 には, 以下のライブラリが同梱されています.

これらのライブラリがインストールされていないか, あるいはイ ンストールされていてもバージョンが古いときは, Img と一緒に入れ ておきましょう. ちなみに Plamo Linux 2.1 の場合は, libz と libjpeg は同じバージョンが入っていますが, libpng は 2.1.0.3, libtiff は 3.4 が入っています. 私がテストした限りでは, libtiff.so.3.4 ではデモプログラムが Segmentation fault します (これに気づくのに相当時間を要してしまった :-p)

入れ方は ./configure, make, make install で OK ですが, 私の場合は libpng や libtiff も入 れたので, make pngmake tiff, そして make install-pngmake install-tiff も やってます.

デモプログラムを起動 (make test./demo.tcl) すると, メッセージが日本語で出てきてびっ くりします. で, LANG=en ./demo.tcl とすると, メッセー ジはきちんと英語になったりします. LANG=deLANG=fr もイける. スゲー

2001/02/10

言い訳

去年の 11 月から, 全然更新していなかった (--;) この間, Linux を全くいじっていなかったということはなくて, それどころか, New PC を自作し, そこに Plamo Linux 2.1 を入れ, 今年になってからモニタが液晶になったり, 更には VMware を入れて X から Win98 が使えるようになったりと, 割と 濃い Linux ライフ を送っていた.

が, 忙しくて, ここに書く時間がとれなかったのだ (_o_) 今日は, やっと少し時間的な余裕ができたので, こうやって書き始めてみる.

じゃ, 先に進もうか

GNU GRUB (grub-boot-0.5.95.image)

[Pazu] (pazu は, 上で述べた New PC の名前です) 汎用ブートローダ. Linux だと普通は LILO を使うと思うし, 実際, 私も LILO で起動している. GRUB を試したのは, 単に興味から.

GRUB の長所は, 多分, その自由度にある. ブートする HDD と ブートイメージの名前を指定すれば, システムをブートさせることができ る. また, 予め設定しておけば, 矢印キーを使って, 起動する OS を指定 することもできる.

GRUB はインストールしたというか, GRUB の起動ディスクを作っただ け :-) 今は Linux だけしかないのでブートローダに拘る必要性はないん だけど, 他の OS と共存させるようになったら, LILO ぢゃなくて GRUB をメインにしようかなぁとか思ったり.



[うさぎ印] おたより, お待ちしています

sato.mshr@gmail.com