SUN Solaris 8/9/10 各種設定

概要

Solaris 8/9/10 でマシンを新規にセットアップする手順をまとめる。ホスト名・DNS・NFS などのネットワーク設定、不要サービスの停止によるセキュリティ対策、カーネルパラメータの調整、ssh の設定、グラフィックドライバの導入、日本語 emacs と mew によるメール環境の構築を扱う。

Solaris 8 と Solaris 9 はサポートが終了している。Solaris 10 は Extended Support が 2027 年 1 月までで、その後は Sustaining Support のみとなる。新規に構築するなら Oracle Solaris 11(Premier Support は 2031 年 11 月まで)を選ぶ。Solaris 11 では、ネットワーク設定は ipadmdladm コマンドで行うため、本ページの ndd などの手順とは異なる。

目次

サイト内の関連情報

事前に調べておく事項

  1. Solaris マシンの IP アドレス

    (以下、XXX.YYY.ZZZ.bbb と書く)

  2. Solaris マシンのマシン名

    (以下、hogehoge と書く)

  3. Solaris マシンの DNS ドメイン名

    (以下、mydomain.hoge.com と書く)

  4. DNS サーバの IP アドレス

    (以下、XXX.YYY.ZZZ.160 と書く)

Solaris の設定

(必要な場合) NIS サーバへの登録

NIS サーバにマシン名と IP アドレスを登録する。登録するのは、「NIS サーバが LAN 内にある」かつ「マシンがプライベートでない固定の IP アドレスを持つ」場合に限る。

(必要な場合) DNS サーバへの登録

DNS サーバにマシン名と IP アドレスを登録する(順引き、逆引きの両方)。登録するのは、「プライベートでない固定の IP アドレスを持つ」場合に限る。

固定の IP アドレスを持たないが DNS サーバに登録したいときは、Dynamic DNS の利用を検討する。

(必要な場合) NFS クライアントとしての設定

NFS クライアントとして動かしたいときは、/etc/vfstab に記述する(Solaris のマウント設定ファイルは /etc/fstab ではなく /etc/vfstab である)。

記述例(NFS サーバ nfshost の /export/home を /mnt にマウントする場合)

nfshost:/export/home - /mnt nfs - yes rw,soft,intr

/etc/hosts の設定

/etc/hosts には、マシンの FQDN 名も書いておく。

変更前

127.0.0.1        localhost
XXX.YYY.ZZZ.bbb  hogehoge loghost

変更後

127.0.0.1        localhost
XXX.YYY.ZZZ.bbb  hogehoge hogehoge.mydomain.hoge.com loghost

/etc/resolv.conf の設定

DNS クライアントとしての設定である (上に書いた「DNS サーバへの登録」とは別の設定である)。 次のように設定する。

nameserver      XXX.YYY.ZZZ.160
domain          mydomain.hoge.com
search          mydomain.hoge.com

/etc/nsswitch.conf の設定

これも DNS クライアントとしての設定である。 /etc/nsswitch.conf の hosts の行は、次のようにする。 記載した順に左から検索するので、下記は「files(/etc/hosts)」→「DNS」→「NIS」の順で探すという設定である。

hosts:      files dns nis

時刻の設定

時刻は NTP で同期させる。/etc/inet/ntp.conf に NTP サーバを記述し、サービスを有効にする。

echo "server ntp.nict.jp iburst" >> /etc/inet/ntp.conf

Solaris 10 の場合
svcadm enable svc:/network/ntp:default

Solaris 9 あるいはそれ以前の場合
/etc/init.d/xntpd start

起動時に一度だけ時刻を合わせたい場合は、次のコマンドを実行する。

ntpdate ntp.nict.jp

/etc/notrouter の作成

ルータとして動作させない場合は、/etc/notrouter という名前のファイルを作成する(中身は空でよい)。 次のコマンドを実行する。

touch /etc/notrouter

Solaris 10 では、routeadm コマンドでも IP 転送を無効化できる。

routeadm -d ipv4-forwarding -u

broadcast に対する応答を OFF に

NIS サーバのマシンでなければ、次のコマンドを実行する。

ndd -set /dev/ip ip_respond_to_echo_broadcast 0
ndd -set /dev/ip ip_forward_directed_broadcasts 0

ip_respond_to_echo_broadcast は、broadcast に対する応答を制御するパラメータである。 ip_forward_directed_broadcasts は、broadcast あての ping を転送するかどうかを制御するパラメータである。

ndd での設定は再起動で失われるため、恒久的に設定するには、上記 2 行を /etc/init.d 配下の起動スクリプト(例: /etc/init.d/nddconfig)に記述し、/etc/rc2.d からリンクする。Solaris 11 では、同じ設定を ipadm set-prop で行う。

/etc/system の設定

共有メモリを広げる設定を行う(Solaris 8/9 でのカーネルチューニング可能パラメータによる設定方法である)。

set shmsys:shminfo_shmmax=268435456
set shmsys:shminfo_shmmni=512
set shmsys:shminfo_shmseg=150
set semsys:seminfo_semmap=350
set semsys:seminfo_semmni=350
set semsys:seminfo_semmns=1000
set semsys:seminfo_semmnu=700
set semsys:seminfo_semume=100

Solaris 10 では、これらの shmsys, semsys パラメータは廃止されており、リソース制御 (resource control) で設定する。プロジェクト単位で、次のように設定する。

projadd -c "database" -K "project.max-shm-memory=(privileged,268435456,deny)" user.oracle
prctl -n project.max-shm-memory -i project user.oracle

ssh の設定

ssh の設定については、 SSH サーバ の Web ページを見る。

Solaris 10 の場合、設定変更後の sshd の再読み込みは、次のコマンドで行う。

svcadm refresh svc:/network/ssh:default

m64config

PGX64 (ATI Mach64 系) グラフィックスを搭載した SPARC マシンでの、画面解像度の設定である。

m64config -prconf

m64config -res 1280x1024@85 nocheck -depth 24

解像度の指定方法は Solaris のバージョンで異なる(「1280x1024x85」の形式の場合がある)ので、man m64config で確認する。

NVIDIA ドライバ

NVIDIA のグラフィックカードを搭載した x86/x64 マシンでの設定である(SPARC マシンは対象外である)。

NVIDIA 社の NVIDIA ドライバダウンロード の Web ページから、Solaris x64/x86 用のドライバをダウンロードできる。 Solaris 用ドライバの提供は終了しているため、最終版はアーカイブ(Legacy/Archive ドライバの一覧)から探す。

ダウンロード時の選択項目

製品タイプ: Quadro
オペレーティングシステム: Solaris x64/x86

インストール手順

sh NVIDIA-Solaris-x86-x1.0-????.run
reboot -- -r

動作確認

「ようこそ画面」の前、あるいは「ようこそ画面」でログインした直後に NVIDIA のロゴ画面が表示される。表示されれば、ドライバのインストールは成功している。

ドライバが動かない場合は、xorg.conf を次のように編集する(Java Desktop 起動時のエラーを回避できる場合がある)。

「ようこそ画面」でログインしたあと画面が黒いままという場合は、次の手順で対処する。

再起動

以上で設定作業は終了したので、再起動する。 ドライバをインストールした場合は、デバイスの再構成を行うため「reboot -- -r」を使う。 再起動時に、エラーメッセージが出ていないことを確認する。

sync
reboot -- -r

Solaris の設定の続き

(1) Solaris 10 の場合

パッチ

smpatch でパッチを適用する(Oracle のサポート契約とアカウント登録が必要である)。

smpatch update
最後に表示されるメッセージの指示に従う。
reboot

一般ユーザの追加

SMC を使ってユーザを追加する。 以後は root でログインせず、一般ユーザでログインする (スーパーユーザーになるときは su を使用する)。

/usr/sbin/smc
「このコンピュータ」
「システムの構成」
「ユーザー」
root のパスワードを入力
「ユーザーアカウント」
「アクション」
「ユーザを追加」
「ウィザードを使用...」
ウィザードが開くので、質問に答える

コマンドで追加する場合は、useradd と passwd を使う。

useradd -d /export/home/username -m -s /bin/bash username
passwd username

不要なサービスの停止

Solaris 10 では、サービス管理に SMF を使用する。 svcs コマンドで現在のサービスの一覧が得られる。 svcadm disable svc:/hogehoge/hogehoge でサービスを無効にでき、 svcadm restart svc:/hogehoge/hogehoge でサービスを再起動できる。

以下の手順で、telnet, ftp, finger, rlogin, rsh を停止する。これらは通信内容を暗号化しないため、代わりに ssh と sftp を使う。

svcadm disable svc:/network/telnet:default
svcadm disable svc:/network/ftp:default
svcadm disable svc:/network/finger:default
svcadm disable svc:/network/login:rlogin
svcadm disable svc:/network/shell:default

(2) Solaris 9 あるいはそれ以前の場合

不要なサービスを止める。目的は性能向上ではなくセキュリティ対策である。 IPFilter でセキュリティ対策 の Web ページも参考にする。 以下は、Solaris 9 あるいはそれ以前での手順である。

sendmail は止める

設定が済むまで sendmail は止めておく。 sendmail を使う場合は、後で最新版の sendmail をインストールし、設定を行う。

cd /etc/rc2.d
mv S88sendmail a_S88sendmail

autofs は止める

autofs を使わない場合は、止める。

/sbin/umountall -F autofs
/usr/bin/pkill -x -u 0 automountd
cd /etc/rc2.d
mv S74autofs a_S74autofs

不要なサービスは停止

以下は不要なサービスの例である。どのサービスが不要かは、用途に応じて判断する。

cd /etc/rc2.d
echo Web-Based Enterprise Management
    mv S90wbem a_S90wbem
echo Power Management
    mv S85power a_S85power
echo cssd
    mv S90loc.ja.cssd a_S90loc.ja.cssd

cd /etc/rc3.d
echo NFS server
    mv S15nfs.server a_S15nfs.server
echo DHCP
    mv S34dhcp a_S34dhcp
echo SNMP
    mv S76snmpdb a_S76snmpdb
echo Solstice Enterprise Manager
    mv S77dmi a_S77dmi
echo Samba
    mv S90samba a_S90samba

カスタマイズ

/etc/shells

設定ファイル

以下、ホームディレクトリの .cshrc, .bash_profile, .bashrc の設定例である。

~/.cshrc の作成

~/.cshrc の設定例を次に書く。ロケールは ja_JP.UTF-8 を使う(Solaris 8/9 の古い環境では ja_JP.eucJP を使う)。

setenv LANG        ja_JP.UTF-8
setenv LC_MESSAGES ja_JP.UTF-8
# setenv LANG        C
# setenv LC_MESSAGES C

set path = ( \
        /usr/bin /usr/sbin /sbin  \
        /usr/local/bin /usr/sfw/bin /usr/ccs/bin /usr/X11/bin /usr/openwin/bin /usr/dt/bin \
        /opt/SUNWspro/bin /usr/ucb /opt/sfw/bin \
)

alias ls 'ls -F'
alias h 'history'
unalias rm
unalias cp
unalias mv

set savehist
set history=200
set histdup = "erase"
set filec

LD_LIBRARY_PATH は、自分でビルドしたソフトウェアが共有ライブラリを見つけられない場合にのみ設定する。常時設定するとシステムのコマンドが意図しないライブラリを読み込むことがある。設定する場合の例を次に書く。

setenv LD_LIBRARY_PATH /usr/local/lib:/opt/sfw/lib

~/.bash_profile

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

~/.bashrc

PATH=/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/X11/bin:/usr/openwin/bin:/usr/dt/bin:/opt/SUNWspro/bin:/usr/ucb:/opt/sfw/bin
export PATH
umask 022

日本語 emacs

GNU Emacs のインストール法を書く。

(英語キーボードを使用している場合のみ) /usr/X/lib/X11/ja/app-defaults/Htt の設定

Solaris で英語キーボードを使用している場合、ATOK の起動と終了は 「Ctrl + SPC」 に割り当てられている。 emacs では 「Ctrl + SPC」 は set-mark-command なので、衝突する。

/usr/X/lib/X11/ja/app-defaults/Htt を次のように変更すると、 「Shift + space」 で ATOK が起動する。 ATOK の終了は Ctrl + SPC のままである。キー割り当ては、使いやすいキーに変更してよい。

変更前

*conversionOnKeys:Henkan_Mode<Ctrl>space<Ctrl>at

変更後

*conversionOnKeys: Henkan_Mode <Shift>space

/usr/X/lib/X11/ja/app-defaults/Htt でのステータス表示の抑止

GNU Emacs のミニバッファに「ATOK」の文字が表示されるのを回避するために、 /usr/X/lib/X11/ja/app-defaults/Htt に次の 1 行を追加する。

Emacs*disableStatusArea: True

GNU Emacs のインストール

GNU Emacs の安定版は 30.2(2025 年 8 月リリース)である。最新版は https://ftp.gnu.org/gnu/emacs/ で確認する。 Emacs 23 以降は leim(各言語の入力メソッド)が本体に統合されているため、leim を別に入手する必要はない。 ビルドには、gcc と GNU make が必要である(Solaris 10 では /usr/sfw/bin にある)。

# sh あるいは bash を使って作業する
cd /tmp
/usr/local/bin/wget https://ftp.gnu.org/gnu/emacs/emacs-30.2.tar.xz
xz -dc emacs-30.2.tar.xz | tar -xvof -
cd /tmp/emacs-30.2
./configure --with-x --with-xim --with-x-toolkit=gtk3
gmake
gmake install

GTK が使えない環境では、「--with-x-toolkit=no」を指定してビルドする。

たまご (Egg V4)

たまご (tamago) は Emacs 用の多言語入力メソッドで、Wnn の jserver と通信して日本語入力を行う。 かつての m17n.org の CVS リポジトリは利用できないため、GitHub から入手する。

cd /tmp
git clone https://github.com/hrs-allbsd/tamago.git
cd tamago
./configure
gmake
gmake install

日本語入力の選択肢としては、たまごのほかに DDSKKMozc (emacs-mozc) がある。これらは package.el や各 OS のパッケージで導入でき、Wnn サーバを必要としない。

.emacs の設定例 (Wnn)

Solaris の Wnn サーバ (jserver) と通信して、日本語入力できるようにするための設定である。

(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(setq default-input-method "japanese-egg-wnn")
(setq wnn-jserver "localhost")
(setq jserver-list (list "localhost"))

「、を , に」、「。を . に」したいときは、次の設定を追加する。

(setq use-kuten-for-period nil)
(setq use-touten-for-comma nil)

sendmail

Solaris で sendmail インストール/バージョンアップ」の Web ページを参考に、sendmail のインストールと設定を行う。

mew

emacs でメールの読み書きができるように設定する。 Mew の安定版は 6.11 で、Emacs 26.1 以降が必要である(XEmacs は非対応である)。

.emacs の設定例

(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq read-mail-command 'mew)

.mew.el の設定例

(setq mew-name "First Last") ;; (user-full-name)
(setq mew-user "username") ;; (user-login-name)
(setq mew-mail-domain "domainA.com")
(setq mew-smtp-server "mailserver.domainA.com")
(setq mew-smtp-port "submission")
(setq mew-proto "%")  ;; IMAP を使う場合
(setq mew-imap-server "mailserver.domainA.com")
(setq mew-imap-user "username")
(setq mew-use-ssl t)
(setq mew-demo nil)
(setq mew-use-cached-passwd t)
(setq mew-file-max-size 100000000)

POP を使う場合は、mew-proto を "+" とし、mew-pop-server と mew-pop-user を設定する。