Messages in cipher reflected in the looking glass

http://blogs.sun.com/thaniwa/date/20070530 2007年 5月 30日 水曜日

(JA) Diskless Solaris (x86編) その5:StarSuite 8 のインストール

第5回目は StarSuite 8 のインストールを行います。
Solaris 10 をインストールすると通常 StarSuite 7 がインストールされます。 ただ、ディスクレスクライアントは locale=C でセットアップが必要なため、 StarSuite 7 ではなく、 StarOffice 7 (アジア圏以外はStarOffice が正式名称です) がインストールされてしまいます。 この StarOffice 7 ですが、日本語表示はできるのですが、 メニューの日本語化が行えません。
本来なら、StarOffice 7 を削除して、StarSuite 7 を入れるのでしょうが、 StarSuite 8 が既に出ているのでこちらをインストールすることにしました。
インストールには CD-ROM版を用います。

通常のPC環境の場合、CD-ROMにsetupコマンドがあるのでそれを用いることにより GUI インストールが行えますが、インストール先をカスタマイズする必要があるため、 pkgadd を用いてインストールします。
下記のようにマニュアルにも解説があります。
docs.sun.com の StarOffice 8 Collection - Japanese >> StarSuite 8 管理ガイド >> 1. StarSuite のインストール

まず、インストール対象となるパッケージのインストール先を調べます。
調べるには各パッケージの pkginfo を確認します。 下記は日本語環境に必要なパッケージのみ抽出しています。

# /cdrom/office8_id2043/office/packages
# grep BASEDIR */pkginfo
SUNWstarsuite-agfafonts/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-base/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-calc/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core01/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core02/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core03/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core04/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core05/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core06/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core07/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core08/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-core09/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-desktop-int-root/pkginfo:BASEDIR=/
SUNWstarsuite-desktop-integratn/pkginfo:BASEDIR=/
SUNWstarsuite-draw/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-fonts/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-gallery/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-gnome-integration/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-graphicfilter/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-impress/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-ja-fonts/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-ja-help/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-ja-res/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-ja/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-javafilter/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-lngutils/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-math/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-ooofonts/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-shared-mime-info/pkginfo:BASEDIR=/usr
SUNWstarsuite-writer/pkginfo:BASEDIR=/opt/starsuite8
SUNWstarsuite-xsltfilter/pkginfo:BASEDIR=/opt/starsuite8

さらに pkgmap ファイルを確認し、インストール先を調べます。 すると、下記のように、4つのグループに分類できます。 /usr にインストールされるパッケージが Type A, Type B の2つのグループにわかれているのは 必要とする admin ファイルが異なるためです。

/opt/starsuite8 にインストールされるパッケージ

SUNWstarsuite-agfafonts
SUNWstarsuite-base
SUNWstarsuite-calc
SUNWstarsuite-core01
SUNWstarsuite-core02
SUNWstarsuite-core03
SUNWstarsuite-core04
SUNWstarsuite-core05
SUNWstarsuite-core06
SUNWstarsuite-core07
SUNWstarsuite-core08
SUNWstarsuite-core09
SUNWstarsuite-draw
SUNWstarsuite-fonts
SUNWstarsuite-gallery
SUNWstarsuite-gnome-integration
SUNWstarsuite-graphicfilter
SUNWstarsuite-impress
SUNWstarsuite-ja-fonts
SUNWstarsuite-ja-help
SUNWstarsuite-ja-res
SUNWstarsuite-ja
SUNWstarsuite-javafilter
SUNWstarsuite-lngutils
SUNWstarsuite-math
SUNWstarsuite-ooofonts
SUNWstarsuite-writer
SUNWstarsuite-xsltfilter


/usr にインストールされるパッケージ(Type A)
SUNWstarsuite-shared-mime-info

/usr にインストールされるパッケージ(Type B)
SUNWstarsuite-desktop-integratn

/ (root) にインストールされるパッケージ
SUNWstarsuite-desktop-int-root

それぞれの環境に対応した admin ファイルを作成します。

/ (root) および /opt 用

# cat >/tmp/admin_default <<EOF
mail=
instance=unique
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default
EOF

/usr にインストールされるパッケージ(Type A)用

# cat >/tmp/admin_usr_a <<EOF
mail=
instance=unique
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=/usr_i386.all/usr
EOF

/usr にインストールされるパッケージ(Type B)用

# cat >/tmp/admin_usr_b <<EOF
mail=
instance=unique
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=/usr_i386.all
EOF

/opt, /usr 以下にパッケージをインストールします。

# pkgadd -a /tmp/admin_default -R /export/Solaris_10 -d . \
SUNWstarsuite-agfafonts SUNWstarsuite-base SUNWstarsuite-calc \
SUNWstarsuite-core01 SUNWstarsuite-core02 SUNWstarsuite-core03 \
SUNWstarsuite-core04 SUNWstarsuite-core05 SUNWstarsuite-core06 \
SUNWstarsuite-core07 SUNWstarsuite-core08 SUNWstarsuite-core09 \
SUNWstarsuite-draw SUNWstarsuite-fonts SUNWstarsuite-gallery \
SUNWstarsuite-gnome-integration SUNWstarsuite-graphicfilter \
SUNWstarsuite-impress SUNWstarsuite-ja-fonts SUNWstarsuite-ja-help \
SUNWstarsuite-ja-res SUNWstarsuite-ja SUNWstarsuite-javafilter \
SUNWstarsuite-lngutils SUNWstarsuite-math SUNWstarsuite-ooofonts \
SUNWstarsuite-writer SUNWstarsuite-xsltfilter

# pkgadd -a /tmp/admin_usr_a -R /export/Solaris_10 -d . SUNWstarsuite-shared-mime-info

# pkgadd -a /tmp/admin_usr_b -R /export/Solaris_10 -d . SUNWstarsuite-desktop-integratn


続いて、/ (root) 領域にインストールします。必要に応じて clone 領域やクライアント全てに行ってください。 ここでは w1100z (/export/root/w1100z)にインストールします。

まず、SUNWstarsuite-desktop-int-root を /tmp にコピーします。

# cp -r SUNWstarsuite-desktop-int-root /tmp

/tmp/SUNWstarsuite-desktop-int-root/install/checkinstall を書き換えます。 というのも、checkinstall スクリプトは通常環境を想定しているため、 ディスクレス環境ではインストールできないためです。
変更内容は下記の通りです。全てのコマンドを無効にして、 OFFICE_PATHを強制的に設定します。

# Check if the core package has been installed
#COREPKG=`echo ${PKGINST} | sed 's/desktop-.*/core01/'`

#pkginfo ${PKG_INSTALL_ROOT:+'-R'} ${PKG_INSTALL_ROOT} -q ${COREPKG}
#if [ $? -ne 0 ]; then
#  echo "The ${COREPKG} package could not be found. Please install the"
#  echo "${COREPKG} package and try this installation again"
#  exit 3    # Suspend
#fi

#OFFICE_PATH=`pkginfo ${PKG_INSTALL_ROOT:+'-R'} ${PKG_INSTALL_ROOT} -r ${COREPKG}`

#cat >$1 <<!
#OFFICE_PATH=${OFFICE_PATH}
#!

OFFICE_PATH=/opt/starsuite8

exit 0

/tmp/SUNWstarsuite-desktop-int-root/pkgmap を書き換えます。 pkgadd 実行時にファイルの整合性をチェックしています。 今回 checkinstall を変更したため、チェックサムに引っかかってしまうので、 変更し、pkgadd をだまします。^-^;

: 1 33
1 i checkinstall 522 40668 1122390176
1 i copyright 466 43035 1122390173
1 i depend 51 4532 1122390177
1 d none etc 0755 root sys
1 e build etc/mailcap 0644 root bin 3097 27993 1122390173
1 e build etc/mime.types 0644 root bin 1710 33433 1115994216
1 s none etc/starsuite8=../opt/starsuite8
1 i pkginfo 465 37950 1122390176
1 i postinstall 252 20473 1122390177
1 i space 0 0 1122390177

変更したのは checkinstall の 522 と 40668 の部分です。 変更すべき数値は pkgadd を実行して調べます。

# pkgadd -d . SUNWstarsuite-desktop-int-root

Processing package instance <SUNWstarsuite-desktop-int-root> from 

Desktop integration for StarSuite 8 (root)(i386) 8.0.0,REV=106.2005.05.23
Copyright  2003 Sun Microsystems, Inc. All rights reserved. Use is subject 
to license terms. Third-party software, including font technology, is 
copyrighted and licensed from Sun suppliers. Sun, Sun Microsystems, the 
Sun logo, Java, Solaris and StarSuite are trademarks or registered 
trademarks of Sun Microsystems, Inc. in the U.S. and other countries. 
Federal Acquisitions: Commercial Software - Government Users Subject to 
Standard License Terms and Conditions.

This appears to be an attempt to install the same architecture and
version of a package which is already installed.  This installation
will attempt to overwrite this package.

## Executing checkinstall script.
Using </> as the package base directory.
## Processing package information.
## Processing system information.
   2 package pathnames are already properly installed.
pkgadd: ERROR: packaging file </root/SUNWstarsuite-desktop-int-root/install/checkinstall> is corrupt
    file size <482> expected <522> actual
    file cksum <37893> expected <40668> actual

Installation of <SUNWstarsuite-desktop-int-root> failed (internal
error).
No changes were made to the system.

インストールします。

# pkgadd -a /tmp/admin_default -R /export/root/w1100z -d . SUNWstarsuite-desktop-int-root

インストール後、下記を実行してシンボリックリンクを修正します。 インストーラを利用した場合、正しい場所にリンクされるのですが、 ディスクレスクライアント環境では間違った場所にリンクされてしまいます。

# cd /export/root/w1100z/etc
# rm starsuite8
# ln -sf ../opt/starsuite8 starsuite8

インストールが終了したら、最新版パッチを適用します。 PP5の場合は 120190-09 となります。

# patchadd -R /export/Solaris_10 120190-09
Validating patches...

Loading patches installed on the system...


注意:StarSuite 8 のパッチを当てていない場合

初期バージョンの StarSuite 8 をNFSサーバにインストールした場合、 そのまま実行すると

    The application cannot be started 
    The component manager is not available 

というエラーが出て、StarSuite 8 が起動できない場合があります。
これは、StarSuite 8 のバイナリが NFS v4 でマウントした ディレクトリにある場合に発生するバグです。
このバグは Product Update 5 などでは解消しています。 ですので、可能であればアップデートしてください。
アップデートできない場合などは 対象ディレクトリを NFS v3 でマウントすることで回避できます。
NFS v3でマウントするには /etc/vfstab のエントリのオプション部分に明示的に vers=3 と記述します。

x4200m2:/export/Solaris_10/opt -       /opt    nfs     -       yes     ro,vers=3


投稿されたコメント:

コメント
コメントは無効になっています。