バイナリ互換性ガイド

パス名の解決処理

パス名の解決処理については、問題点が 2 つあります。第 1 は、Solaris 8 リリースと SunOS 4.x リリースとの間でコマンドやライブラリのファイルが存在する位置 (ディレクトリ) が異なるという点です。たとえば、SunOS 4.x リリースでは /usr/bin に入っていたコマンドが、Solaris 8 リリースでは /usr/ucb に入っている場合があります。ソース互換パッケージは、この相違点を解決するために、可能な限りシンボリックリンクをセットアップして、旧パス名を使用しているアプリケーションがファイルにアクセスできるようにします。

第 2 に Solaris 8 リリースの多くのコマンドと、SunOS 4.x の対応コマンドとの間に互換性がないという点があります。これに対処するために、ソース互換パッケージには、一組の SunOS 4.x 互換コマンドバイナリが組み込まれています。アプリケーションが、実行するコマンド名だけ (パス名なし) を指定した場合は、バイナリ互換パッケージのもとで PATH 環境変数が解釈され、正しいコマンドが見つけられます。したがって、アプリケーションを実行する前に、PATH 変数を正しく設定しておく必要があります。

たとえば、SunOS 4.x のデフォルトの動作を実行したい場合は、PATH の中で /usr/bin の前に /usr/ucb を指定します。このようにしておかないと、Solaris 8 のデフォルトの動作が引き起こされることになります。

フルパス名を指定したコマンドは、バイナリ互換パッケージ環境下でも、そのパス名の通りに解釈されます。パスが /usr/5bin で始まっている場合は、そのコマンドのデフォルトである Solaris 8 バージョンが実行されます。そうでない場合は、ソース互換パッケージバージョンが実行されます。相対パス名も通常と同じく解釈されます。

Solaris 2.5 から、5 つのコマンドが /usr/ucb から /usr/bin へ移動され、絶対パスを使用して書かれたシェルスクリプトを使用できるようになりました。これらのコマンドは、arch(1)hostid(1)hostname(1)mach(1) および pagesize(1) です。