Solarisにソフトウエアをインストールする


Solarisに各種ソフトウエアをインストールしてみます。
対象はSolaris 8/9/10/11です。

Compilerについて

環境変数

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 Companion Software

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で指定すると非対話式になるので楽です。

sfw.admin:

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

64bitと32bitを自動的に切り替えて使う

ランタイムライブラリ

/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]

GNU tools


Apache 2.2.15

Apache 2.4.10

Berkeley DB 4.1.25/4.2.52/4.4.20/4.5.20

BIND 9.6.2-P1

BIND 9.8.8

BIND 9.9.6-P1

Cyrus SASL 2.1.23

Cyrus IMAPD 2.3.16

cURL 7.19.6

dkim-milter 0.6.1

GNU Emacs 22.3

libexif 0.6.17

expect 5.44.1

file 5.03

FreeRADIUS 1.1.7

FreeRADIUS 2.2.5

gd 2.0.34

GTK+ 2.12.9

Heimdal 1.2.1

ISC DHCP 3.0.5

ISC DHCP 4.2.1

ISC DHCP 4.3.1

jpeg 6b for Solaris 8

libpng 1.2.14

MIT Kerberos V5 1.8.1

MySQL 5.0.51a

Net SNMP 5.2.3

Net SNMP 5.7.3

nss_ldap

OpenLDAP 2.3.43

OpenLDAP 2.4.40

OpenSLP 1.2.1

OpenSSL 0.9.7m

OpenSSH 4.6p1 for Solaris 8

pam_ldap 1.8.4

pam_ldap 1.8.6

pam_mkhomedir in Linux-PAM-0.81

PCRE 7.6

PHP 5.3.2

pkg-config 0.23

rancid 2.3.1

rsync 2.6.9

Samba 3.3.12

Sendmail 8.14.3

sid-milter 0.2.24

Stunnel 4.21

syslog-ng 2.0.8

Cisco TACACS+ F5.0.0 with LDAP

taglib 1.5

Tcl/Tk 8.4.18

Tomcat 6.0.20/Tomcat Connectors JK 1.2.28

UW-IMAP 2007e

vsftpd 2.1.0

zlib 1.2.3