Solarisに各種ソフトウエアをインストールしてみます。
対象はSolaris 8/9/10/11です。
configureスクリプトでSunのコンパイラを使用するときに適切な環境変数、 パスを設定するために以下のテンプレートスクリプト(setup-pre.sh)を用意 します。
#!/bin/sh
#
# default setting...
if [ "`isainfo -k`" = "amd64" ]; then
ISA="i386"
else
ISA="sparcv8plus"
fi
if [ $# -eq 1 ]; then
case "$1" in
"sparcv8plus"|"sparcv9"|"i386"|"amd64")
ISA=$1
;;
*)
echo "Usage $0 [sparcv8plus|sparcv9|i386|amd64]"
exit 1
;;
esac
fi
echo "Target Architecture: $ISA"
echo ""
if [ "$ISA" = "sparcv9" -o "$ISA" = "amd64" ]; then
LIBISA="/64"
else
LIBISA=
fi
CC="cc"
CXX="CC"
COPTFLAGS="-xO3"
CXXOPTFLAGS="$COPTFLAGS"
if [ `uname -r` = "5.11" ]; then
GCCBIN=gcc-4.8.2
GPPBIN=g++-4.8.2
elif [ `uname -r` = "5.10" -o `uname -r` = "5.9" ]; then
GCCBIN=gcc-4.4.7
GPPBIN=g++-4.4.7
fi
GCCCOPTFLAGS="-O2"
case "$ISA" in
"sparcv9"|"amd64")
if [ `uname -r` = "5.8" -o `uname -r` = "5.9" ]; then
CISAFLAGS="-xtarget=native64 -xarch=native64"
else
CISAFLAGS="-m64"
fi
GCCCISAFLAGS="$CISAFLAGS -fPIC"
if [ "$ISA" = "sparcv9" ]; then
CISAFLAGS="$CISAFLAGS -xcode=pic32"
elif [ "$ISA" = "amd64" ]; then
CISAFLAGS="$CISAFLAGS -KPIC"
fi
;;
"i386")
;;
"sparcv8plus")
;;
*)
;;
esac
CC="$CC $CISAFLAGS"; export CC
CXX="$CXX $CISAFLAGS"; export CXX
CFLAGS="$COPTFLAGS"; export CFLAGS
GCCCFLAGS="$GCCCOPTFLAGS $GCCCISAFLAGS"; export GCCCFLAGS
ASFLAGS="$CISAFLAGS"; export ASFLAGS
CXXFLAGS="$CFLAGS"; export CXXFLAGS
case `uname -r` in
"5.9"|"5.10")
CPPFLAGS="-I/usr/local/include"
if [ -d /usr/sfw ]; then
CPPFLAGS="$CPPFLAGS -I/usr/sfw/include"
fi
LDFLAGS="-L/usr/sfw/lib$LIBISA -R/usr/sfw/lib$LIBISA"
;;
"5.11")
CPPFLAGS=""
LDFLAGS=""
;;
esac
case `uname -r` in
"5.8"|"5.9")
sslpath=/usr/local
bdbpath=/usr/local
bdbver=44
zlibpath=/usr/local
ldappath=/usr/local
iconvpath=/usr
idnpath=/usr/local
;;
"5.10")
sslpath=/usr/sfw
OPENSSL_VERSION_CHECK_OPTION="--disable-openssl-version-check"
bdbpath=/usr
bdbver=42
zlibpath=/usr
ldappath=/usr/local
iconvpath=/usr
idnpath=/usr/local
;;
"5.11")
sslpath=/usr
bdbpath=/usr
bdbver=53
zlibpath=/usr
ldappath=/usr
iconvpath=/usr
idnpath=/usr/local
;;
*)
sslpath=/usr
bdbpath=/usr
bdbver=47
zlibpath=/usr
ldappath=/usr/local
iconvpath=/usr
idnpath=/usr/local
;;
esac
#
# OpenSSL
#
ssllib=$sslpath/lib$LIBISA
sslinc=$sslpath/include
#
# Berkeley DB
#
case "$ISA" in
"amd64")
# because of missing 64 bit library...
bdblib=/usr/local/lib$LIBISA
;;
*)
bdblib=$bdbpath/lib$LIBISA
;;
esac
bdbinc=$bdbpath/include
#
# OpenLDAP
#
ldaplib=$ldappath/lib$LIBISA
case `uname -r` in
"5.8"|"5.9"|"5.10")
ldapinc=$ldappath/include
;;
"5.11")
ldapinc=$ldappath/include/openldap
;;
esac
#
# SASL
#
if [ -d /usr/local/include/sasl ]; then
saslpath=/usr/local
sasllib=$saslpath/lib$LIBISA
saslinc=$saslpath/include/sasl
CPPFLAGS="-I$saslinc $CPPFLAGS"
LDFLAGS="-L$sasllib -R$sasllib $LDFLAGS"
fi
#
# Kerberos V5
#
krb_enable=1
if [ $krb_enable -gt 0 ]; then
if [ "X$local_krb5" = "X" ];then
gss_impl=seam
krb5path=/usr
krb5lib=$krb5path/lib$LIBISA
krb5inc=$krb5path/include/kerberosv5
else
if [ -d /usr/local/kerberos ]; then
gss_impl=mit
krb5path=/usr/local/kerberos
krb5lib=$krb5path/lib$LIBISA
krb5inc=$krb5path/include
elif [ -d /usr/local/heimdal ]; then
gss_impl=heimdal
krb5path=/usr/local/heimdal
krb5lib=$krb5path/lib$LIBISA
krb5inc=$krb5path/include
fi
LDFLAGS="-L$krb5lib -R$krb5lib $LDFLAGS"
fi
CPPFLAGS="-I$krb5inc $CPPFLAGS"
fi
#
# Solaris 8/9/10 have /usr/lib/gss
# Solaris 8/9 have /usr/lib/gss/gl
#
# elif [ -d /usr/lib/gss -a ! -d /usr/lib/gss/gl ]; then
# case "$ISA" in
# "sparcv9"|"amd64")
# LDFLAGS="/usr/lib/$ISA/gss/mech_krb5.so -R/usr/lib/$ISA/gss $LDFLAGS"
# ;;
# *)
# LDFLAGS="/usr/lib/gss/mech_krb5.so -R/usr/lib/gss $LDFLAGS"
# ;;
# esac
#
# MySQL
#
mysqlpath=/usr/local
mysqllib=$mysqlpath/lib$LIBISA/mysql
mysqlinc=$mysqlpath/include/mysql
export CPPFLAGS
export LDFLAGS
CONFDIRS="--prefix=/usr/local --bindir=/usr/local/bin/$ISA --sbindir=/usr/local/sbin/$ISA --libdir=/usr/local/lib$LIBISA"
Sunが主要なフリーソフトウエアをあらかじめコンパイルして提供していま
す。メディアキットを購入するとそのCD-ROMも添付されていますが、Webか
らダウンロードすることも可能です。
http://wwws.sun.com/software/solaris/freeware/からCDイメージをダウンロードします。
LessTifはMotifとぶつかるのでインストール時はインストールリストから抜
いた方がいいでしょう。
% bzip2 -d software_companion_intel.rr.bz2 # lofiadm -a software_companion_intel.rr # mount -F hsfs /dev/lofi/1 /mnt # cd /mnt # ./installer # cd / # umount /mnt # lofiadm -d /dev/lofi/1
コマンドラインでインストールするときは以下を記述したファイルを用意し ておき、それをpkgaddで指定すると非対話式になるので楽です。
mail= instance=unique partial=nocheck runlevel=nocheck idepend=nocheck rdepend=nocheck space=nocheck setuid=nocheck conflict=nocheck action=nocheck basedir=/opt
# pkgadd -d /cdrom/s9_software_companion/components/x86/Packages -n -a sfw.admin SFWgimp
/usr/local/libはldのライブラリ検索パスに入れてしまいます。
# cd /usr/local/lib # ln -s sparcv9 64 # crle -u -l /usr/local/lib # crle -64 -u -l /usr/local/lib/64
Solaris 9については次のようにリンクを作成しておきます。
# cd /usr/sfw/lib # ln -s sparcv9 64
アーキテクチャごとにバイナリを分けて実行時にアーキテクチャを決定 するようにします。
# ln /usr/lib/isaexec /usr/local/bin/[binary]