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 では、ネットワーク設定は ipadm、dladm コマンドで行うため、本ページの ndd などの手順とは異なる。
【目次】
【サイト内の関連情報】
事前に調べておく事項
- Solaris マシンの IP アドレス
(以下、XXX.YYY.ZZZ.bbb と書く)
- Solaris マシンのマシン名
(以下、hogehoge と書く)
- Solaris マシンの DNS ドメイン名
(以下、mydomain.hoge.com と書く)
- 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
- Solaris 9 あるいはそれ以前の場合
使わない「NIS」、「DNS」が他の行に入っていたら削除する(例えば、次のようにする)。
aliases: files
時刻の設定
時刻は 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 起動時のエラーを回避できる場合がある)。
- cp /usr/X11/xorg.conf.nvidia /usr/X11/xorg.conf を実行する
- xorg.conf の vidmode 関係の行を削除する
Option "DisableVidModeExtension" Option "DisableModInDev"
- xorg.conf のキーボードレイアウトの行が正しく設定されていることを確認する
Option "XkbModel" の行 Option "XkbLayout" の行
- 使用する解像度を設定する
設定例 Depth 8 を囲んでいる SubSection "Display" を削除 Depth 16 を囲んでいる SubSection "Display" を削除 Depth 24 を囲んでいる SubSection "Display" は、「Modes "1280x1024"」 のように設定
「ようこそ画面」でログインしたあと画面が黒いままという場合は、次の手順で対処する。
- 「ようこそ画面」の「オプション」メニューで「コマンド行ログイン」を選んでログインする。ログイン後、kdmconfig を実行し、Xsun ではなく Xorg を選ぶ。
- 「Xorg -configure」を実行する必要はなく、 cp /usr/X11/xorg.conf.nvidia /usr/X11/xorg.conf で動作する。
再起動
以上で設定作業は終了したので、再起動する。 ドライバをインストールした場合は、デバイスの再構成を行うため「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
- /etc/shells に、使用するシェルの行を追加する。
(設定例) /sbin/sh /bin/bash /usr/bin/tcsh /usr/local/bin/tcsh
- 古い Solaris は tcsh を含まないので、必要ならインストールする。参考: https://www.tcsh.org
設定ファイル
以下、ホームディレクトリの .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
日本語入力の選択肢としては、たまごのほかに DDSKK や Mozc (emacs-mozc) がある。これらは package.el や各 OS のパッケージで導入でき、Wnn サーバを必要としない。
.emacs の設定例 (Wnn)
Solaris の Wnn サーバ (jserver) と通信して、日本語入力できるようにするための設定である。
- "localhost" の部分は、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 を設定する。
- Mew の Web ページ: https://www.mew.org/