0

/usr/local/bin/tclsh を再リンクして新しいバージョンを希望する以外に、ソースから Tcl の新しいバージョンを (グローバルに) ビルドしてインストールするときに、特に考慮すべき点はありますか?

インタープリターの実行可能ファイル tclsh と wish が異なる名前でインストールされていることは知っていますが、インクルード ファイルとライブラリ ファイルはどうでしょうか。Eggdrop をビルドすると、最新バージョンとリンクしますか? マニュアルページはどうですか? 古いものは新しいもので上書きされていますか?

4

2 に答える 2

1

この場合の通常のアプローチは、ビルドが単一のディレクトリ (Windows のアプローチ) にインストールされるように構成することです (たとえば、/opt/tcltk/8.6. その後、他のバージョンとの衝突が保証され、アンインストールはrm -rfその 1 つのディレクトリで実行するだけです。ただし、このアプローチには欠点があります。

  • 新しい階層の下に、(いくつかの) インストールされたサードパーティの Tcl ライブラリをリンクする必要があります。これは、Tcl が独自の場所からライブラリを探すための一連のパスを派生させるためです。
  • /opt/tcltk/8.6/binには掲載されません$PATH

特定の OS では、別の (おそらくより賢明な) アプローチは、「バックポート」を行うことです。つまり、必要な Tcl/Tk バージョンのソース パッケージを取得し、インストールされている OS のバージョン用にビルドします。次に、結果のパッケージを通常の方法でインストールします。さまざまなバージョンの Tcl/Tk を同時にインストールできるシステム (たとえば、Debian とその派生物) では、これが最も賢明な解決策となる可能性があります。

後者の場合のマニュアルページに関しては、Debian では、最終的に別のパッケージにパッケージ化されるだけで、インストールは不要です。そのため、利用可能なドキュメント パッケージの 1 つを選択してインストールするだけです。

于 2013-01-22T17:27:00.870 に答える
0

複数のバージョンが存在するという点では、これは通常のことであり (ビルド時に--prefixオプションをに設定することによってこれを行いますconfigure)、かなり長い間そうされてきました。可能であれば、単一バージョンの複数のパッチレベルを持つことは避けたいと思うでしょうが、たとえば、8.4、8.5、および 8.6 を一緒にインストールすることはまったく問題ありません。tclshバージョン管理されていない名前を通常必要な名前にリンクすることについては正しいです(代わりにバージョン管理された実行可能ファイル名を使用しています)。

マンページをうまく共存させる唯一の方法は、それらを別々のディレクトリ ツリーにインストールし、適切なディレクトリ ツリーを指すように MANPATH 環境変数を更新することです (ただしman、マンページへのパスを直接取得する実行可能ファイルを持っている場合を除きます。そうでないものもあります—そしてそれはそれほど便利ではありません)。オンラインであることに耐えられるなら、http://www.tcl.tk/man/でホストされているドキュメントの公式 HTML ビルドを入手できます。これには、かなり前にさかのぼるすべての重要なバージョンが含まれています。

于 2013-01-22T17:28:54.373 に答える