ディスク容量の再配置 (/usr パーティションをサイズ変更または移動する) 機能を使用してアップグレードを実行すると、一部の日本語パッケージがシステムから削除されます。パッケージデータベースではそれらの日本語パッケージがインストールされていると示されますが、実際にはファイルシステム上にインストールされていません。
英語版だけがインストールされているシステムでは、この問題は発生しません。
回避方法: 次に示す方法があります。
ネットワーク上でインストールサーバーまたはブートサーバーを使用してアップグレードする場合
アップグレードを行う前に、Solaris 7 - 8/99 ソフトウェアのインストールサーバーまたはブートサーバーに、パッチ 108175-01 を必ず適用してください。
このパッチは、 http://access1.sun.com/ からダウンロードできます。パッチを access1.sun.com から入手できない場合は、ご購入先にお問い合わせください。
パッチをインストールサーバーまたはブートサーバーに適用するには、次のコマンドを実行します。
# patchadd -C path_to_image/Tools/Boot 108175-01 |
Solaris 7 - 8/99 Software CD を使用してアップグレードする場合
アップグレード前に手作業でファイルシステムのサイズを調整する:
システムをバックアップします。
format コマンドを使用して、インストールプログラムで示された数値に従って、ファイルシステムのサイズを調整します。
新しいファイルシステム上にシステムを復元します。
アップグレードを開始します。上記の手順でアップグレード前にファイルシステムを調整することによって、アップグレードに必要な容量が確保されているので、ディスク容量の再配置を行わないアップグレードが実行されます。
足りないパッケージをアップグレード後にインストールする:
足りないパッケージを特定します。
/var/sadm/system/admin/upgrade_script の do_pkgadd 行に記述されていないパッケージで、 /var/sadm/pkg ディレクトリにある pkginfo ファイル中の SUNW_LOC 行に、日本語ロケール (ja、ja_JP.PCK、ja_JP.UTF-8) が記述されているパッケージです。
以下のようなシェルスクリプトを記述すると、足りないパッケージの特定を自動的に行うことができます。
#!/bin/sh PATH=/usr/bin export PATH TMP_VAR=/tmp/list.var.$$ TMP_UPG=/tmp/list.upg.$$ trap "rm -f $TMP_VAR $TMP_UPG" 1 2 3 15 grep SUNW_LOC=ja /var/sadm/pkg/*/pkginfo ¥ | sed -e 's/¥/var¥/sadm¥/pkg¥///' -e 's/¥/pkginfo:.*//' ¥ | sort > $TMP_VAR awk '/do_pkgadd[^(]/ { print $3 }' /var/sadm/system/admin/upgrade_script ¥ | sort > $TMP_UPG comm -23 $TMP_VAR $TMP_UPG rm -f $TMP_VAR $TMP_UPG |
# /usr/bin/sh findpkg.sh > pkg_to_add |
/tmp/admin として admin ファイルを作成して、以下の内容を記述します。
instance=overwrite mail= setuid=nocheck action=nocheck conflict=nocheck |
admin ファイルの作成方法についての詳細は、admin(4) を参照してください。
足りないパッケージをインストールします。インストールする各パッケージに対して次のコマンドを実行します。
# pkgadd -a /tmp/admin -d /cdrom/cdrom0/Solaris_2.7/Product package_name |
上記のスクリプトを記述する例で pkg_to_add ファイルを作成している場合は、次のコマンドを実行します。
# pkgadd -a /tmp/admin -d /cdrom/cdrom0/Solaris_2.7/Product `cat pkg_to_add` |
Solaris 7 - 8/99 ソフトウェアが CD-ROM 以外の場所にマウントされている場合は、-d オプションの引数として、Solaris_2.7/Product ディレクトリへの絶対パスを指定してください。