mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-14 23:46:10 +00:00
9022b1972e
PR: 5579
86 lines
3.8 KiB
Plaintext
86 lines
3.8 KiB
Plaintext
FreeBSDにおける,Tcl の ports/packages について
|
||
田口 毅 taguchi@tohoku.iij.ad.jp
|
||
|
||
本文章では,FreeBSD環境におけるTclの特徴的な部分をまとめる.
|
||
|
||
1. インストールされるファイルについて.
|
||
FreeBSD上では,数多くのプログラムが標準配布に組み込まれており,それに
|
||
加えて1200を越えるプログラムが,ports/packages の仕組みを用いて提供さ
|
||
れている.
|
||
|
||
その中には,Tcl/Tk自身や,それらの拡張,および,それらを用いたいくつも
|
||
のプログラムが含まれる.
|
||
|
||
ここで問題となるのは,流通している Tcl/Tk には,様々なバージョンが存在
|
||
する,という事実である.そして,前述のプログラム群が用いているTclやTk
|
||
のバージョンは1つではない,という,リリースエンジニアリング的にやっか
|
||
いな現実がある.
|
||
|
||
例えば,あるプログラムAはTcl7.6の日本語版を用い,プログラムBはオリジナ
|
||
ルの Tcl8.0を,そしてプログラムCは,オリジナルのTcl7.5を用いている,と
|
||
いうことが有り得るのだ.
|
||
|
||
そこで,FreeBSD では,さまざまな議論に基づき,ユーザが使用し得るすべて
|
||
の版のTcl/Tk が同時にインストールされうるようにしている(一部,完全では
|
||
ないかもしれないが,少なくともそれを目指している).
|
||
|
||
そのために,標準のTcl/Tkとは,一部のファイルのインストールされるディレ
|
||
クトリ階層が異なっている.
|
||
|
||
だが,安心してほしい.Tcl/Tkを用いるFreeBSD上のports/packagesは,その
|
||
変更されたインストール場所を前提に動作する.従って,ports/ packagesを
|
||
用いるユーザは,その変更を意識せずに済むだろう.
|
||
|
||
問題となるのは,未だports/packages化されていないアプリケーションをイン
|
||
ストールする場合だろう.そこで,以下に,何が標準と異なることになるかを
|
||
述べる.
|
||
|
||
相違があるファイルで重要なものは以下の2個であり,それぞれ以下の場所に
|
||
インストールされる.
|
||
|
||
ファイル名 インストール場所 デフォルトの場所
|
||
tclConfig.sh @prefix@/lib/tcl@TCL_VERSION@ @exec_prefix@/lib
|
||
tcl.h @prefix@/include/tcl@TCL_VERSION@ @prefix@/include
|
||
|
||
多くの場合,これらのファイルを正しく見つけられるように,インストールし
|
||
ようとするプログラムのconfigureスクリプトや,Makefileを書き換えれば,
|
||
正しくインストールできるだろう.そして,そうした作業を行った場合は,是
|
||
非ともports化し,FreeBSDにcontribしてほしい.また,ports化が難しい場合
|
||
は,是非ともpatchを作成して,FreeBSDのMLに投稿してほしい.そうすること
|
||
によって,多くの人々が救われるかもしれないからだ.
|
||
|
||
なお,Tclのソースに含まれるヘッダファイル群は,すべて,
|
||
@prefix@/include/tcl@TCL_VERSION@
|
||
以下の階層にインストールするようにしている.コンパイル時にTclのソース
|
||
のパスを指定する必要のある多くのプログラム群は,単にそれらヘッダファイ
|
||
ルを見る必要があるだけな場合が多いので,ここからヘッダファイルを
|
||
includeするようにすると,おしゃれだろう.
|
||
|
||
これは日本語版に限った話であるが,日本語版tcl8.0では,オンラインマニュ
|
||
アルページ(manファイル群)のインストールを行わないことにした.これは,
|
||
そのファイルが非日本語版のそれとまったく同じであり,かつ,同じ場所にイ
|
||
ンストールするしかないものだからである.従って,manファイルを参照しよ
|
||
うとする場合は,非日本語版のtcl8.0もインストールしてほしい.
|
||
|
||
もっとも,portsを使ってインストールする場合には,
|
||
# make install-man
|
||
と入力すれば,manファイルはインストールされてしまう.ただし,portsの枠
|
||
組みを越えた機能であるため,pkg_deleteコマンドでja-tcl-8.0 を削除しよ
|
||
うとしても,manファイル群は削除されないので,注意が必要である.
|
||
|
||
本質的(かつ,一番幸せ)な解決策は,すべてのmanファイルを日本語訳し,そ
|
||
れをjmanで読めるディレクトリにインストールすることであろう.manファイ
|
||
ルの訳を完成した人は,是非とも私に一報いただきたい.それに対応した形に
|
||
portsを作成し直したいと思う.
|
||
|
||
2. その他の相違点
|
||
Tcl/Tk は,Scriptics社によって保守されているが,インターネット上でも
|
||
comp.lang.tclを中心に保守が行われている.そして,そこでは,正式なバー
|
||
ジョンではまだ修正されていないバグのfixも行われている.
|
||
こうしたバグ報告は,
|
||
http://www.cs.uoregon.edu/research/tcl/patch/
|
||
にまとめられている.いずれ,本家にも反映されることが期待されるfixであ
|
||
るが,とりあえずja-tcl-8.0 では,これらのfixも独自に反映させることにし
|
||
た.従って,FreeBSDのports/packages版は,より安定して動作することが期
|
||
待できるかもしれない.
|