Solaris のシステム管理 (上級編)

ソフトウェアパッケージのシンボリックリンクに関する問題の解決

以前の Solaris リリースでは、ソフトウェアパッケージを作成するときに、シンボリックリンクのリンク先を pkgmap ファイルに指定できませんでした。そのため、pkgadd コマンドでパッケージを追加する場合、パッケージまたはパッチ関連のシンボリックリンクには、シンボリックリンクのリンク先ではなくシンボリックリンクのリンク元が使用されていました。したがって、パッケージやパッチパッケージのアップグレードの際にシンボリックリンクのリンク先を別のものに変更する必要があるという問題がありました。

現在のリリースでは、デフォルトの動作では、パッケージのシンボリックリンクのリンク先を変更する必要がある場合、シンボリックリンクのリンク元の代わりにリンク先が pkgadd コマンドによって調べられるようになりました。

しかし、このために、パッケージによってこの新しい pkgadd の動作に準拠する場合としない場合があります。

pkgadd シンボリックリンクの新旧動作に対応するために PKG_NONABI_SYMLINKS 環境変数が使用できます。この環境変数が真に設定されていると、pkgadd はシンボリックリンクのリンク元を使用します。

pkgadd コマンドを使ってパッケージを追加する前に管理者がこの変数を設定すれば、新しい動作に対応していないパッケージを以前の動作で処理できます。

pkgadd コマンドを使って既存のパッケージを追加する場合、pkgadd シンボリックリンクの新しい動作が原因でパッケージを追加できないことがあります。その場合には、次のエラーメッセージが表示されます。


unable to create symbolic link to <path>

この問題のためにパッケージをインストールできない場合は、次の手順に従います。

  1. Sun 提供のパッケージの場合は、ご購入先に新動作に対応していないパッケージ名をお知らせください。

  2. PKG_NONABI_SYMLINKS 環境変数を設定し、pkgadd コマンドを使ってパッケージを再び追加してください。


    # PKG_NONABI_SYMLINKS=true
    # export PKG_NONABI_SYMLINKS
    # pkgadd pkg-name