UNIXシステム基本設定

目次

OSインストール後の基本設定をまとめました。

ネットワーク設定
ユーザーの設定
gccとmake
mount
automount
マニュアルの参照方法
戻る

ネットワーク設定
まずはじめにOSにネットワークインターフェイスを認識させて、ネットワークアドレスの設定を行います。ここで紹介する設定はサーバ構築で必須になります。

<DNSの設定>
ISPまたは自社DNSサーバーどちらの環境でも、まず初めにネームサービスの設定をします。対象となるファイルは/etc/nsswitch.confです。/etc/nsswitch.dnsにサンプルがありますので/etc/nsswitch.confに上書きします。

# /etc/nsswitch.dns:
#
# An example file that could be copied over to /etc/nsswitch.conf; it uses
# DNS for hosts lookups, otherwise it does not use any other naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.

passwd: files
group: files
# You must also set up the /etc/resolv.conf file for DNS name
# server lookup. See resolv.conf(4).
hosts: files dns /*ホスト情報の収得場所。nis を使う場合は nis, nis+を使う場合は nisplus と追加する事*/
ipnodes: files
# Uncomment the following line and comment out the above to resolve
# both IPv4 and IPv6 addresses from the ipnodes databases. Note that
# IPv4 addresses are searched in all of the ipnodes databases before
# searching the hosts databases. Before turning this option on, consult
# the Network Administration Guide for more details on using IPv6.
#ipnodes: files dns

networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
bootparams: files
publickey: files
# At present there isn't a 'files' backend for netgroup; the system will
# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
services: files
sendmailvars: files
printers: user files

auth_attr: files
prof_attr: files

14行目に注意してください。自分のホスト情報をどのサービスから取得するのか設定してください。基本的にはhostsテーブルとDNSになると思いますがNISを使う場合などは注意してください。hostsテーブルつまり/etc/hostsとDNSのホスト情報を使う場合はfiles dnsのディフォルト設定でかまいません。なにも考えないで下のコマンドラインを実行して下さい。

# cp /etc/nsswitch.dns /etc/nsswitch.conf

DNSクライアントの設定をします。/etc/resolv.conf を作成して 以下を書き込んで下さい。

domain <自社のドメイン名 または 家庭内の非公式ドメインでも可>
nameserver 127.0.0.1
nameserver <DNSのIPアドレス>

<ルーターの設定>
/etc/defaultrouterを作成してください。その中にルーターのIPアドレスを記述します。

ここでの注意はパーミッションをrwx-r xーr xにする事です。(アイコンが変われば成功)

<ホスト名の設定>
ネットワークインターフェイスが認識されていれば/etcディレクトリ内に「hostname.***0」の
ファイルがあることを確認してください。無ければ作成します。***はインターフェイス名になります。よくあるのがiprb0ではないでしょうか。2枚のNICが認識されていれば「hostname.***1」のファイルがある事も確認して下さい。。またIPv6を使っている場合は、hostname6.***0のファイルも確認して下さい。下記に確認例を記します。

# cat /etc/hostname.iprb0
hogehoge

<hostsテーブル>
端末とホストが十数台以上であればhostsテーブル管理も必須になると思います。以下にhostsテーブルの記述形式を記します。

# cat /etc/hosts

127.0.0.1   localhost
192.168.0.0  hogehoge00 hogege
[ IPアドレス ] [ ホスト名 ] [ ホスト名のあだ名 ]

<ネットマスクの設定>
ネットワーク初期設定の最後です。/etc/netmasksにネットマスクを記述します。

( 例 )
# cat /etc/netmasks

192.168.0.0 225.225.225.0
[ ネットワークIPアドレス ] [ ネットマスク ]

<確認>
以上で ネットワークの設定は終了しました。最後に確認です。

# ifconfig -a

iprb0: flags=/*省略*/
inet [ 自分のローカルIP ]

( 自分の出力をここに例として 紹介するとMACアドレスやフラグが出ます )

ユーザーの設定

Solarisはスーパーユーザーのホームディレクトリ( $HOME )=ルートディレクトリ( / )になってます。構築に要する作業領域などを考えると/rootが望ましいので、まず/rootを作成した後、
/etc/passwdファイルの rootの行を
root:***:Super-User:/:/sbin/shから 
root:***:Super-User:/root:/sbin/sh に編集します。

# mkdir /root
# chmod 700 /root

編集後 rootで再ログインするとホームディレクトリが/rootになっていることを確認します。ルートディレクトリ( / )にあったrootユーザーの設定ファイルは/rootに移動させます。環境変数のpathとmanpathを通すため、ホームディレクトリに .cshrcでも作っておきます。sh( Bourneシェル )でパスを通す場合は/etc/profileです。

<.cshrcの記述例 >

umask 022
set path=(/bin /usr/bin /usr/ucb /etc /sbin /usr/sbin /usr/ccs/bin /usr/local/bin )
setenv MANPATH /usr/man:/usr/local/man:/usr/openwin/man:/usr/dt/man
if ( $?prompt ) then
set history=32
set prompt = "[`whoami`@`hostname`<\!>]# "
#set prompt = "[`whoami`@${cwd}]% " /*一般ユーザーの場合など*/
#alias cd 'cd \!*;set old=$cwd;set prompt="[`whoami`@${cwd}]%";ls' /*プロンプト拡張設定*/
endif

下から2行目の set history は 32コのコマンドを覚えさせておく事です。また後で 同じコマンドを使いたい場合、たとえば 2つ目に使ったコマンドを呼ぶ場合は

$ !2

直前のコマンドの呼び出しは

$ !!

です。

set prompt はプロンプトの表示方法です。

#

は、分かりにくいでしょうから

[ root@hogehoge <1>]#

このような形に変えてます。これ以上のシェルについての詳しい説明はメインページのシェルスクリプトを参考にしてください。

<.bashrcの記述例 >

umask 022
export PATH=$PATH":/bin /usr/bin /usr/ucb /etc /sbin /usr/sbin /usr/ccs/bin /usr/local/bin"
EDITOR=vi; export EDITOR
if [[ "$PS1" ]]; then
PS1="[\u@\H \W]# "
fi

Bashの場合は上記の様になります。

gccとmake

<gcc>
導入前に自分の環境をしっかりと理解しておく必要があります。Solaris8の場合 SoftwareCD 1of2 SoftwareCD 2of2 のみインストールした環境だとgcc、gmakeが入っていませんのでCompanion CDでインストールしてください。インストールが済むとgccは/opt/sfw/binに入ります。ですのでパスを通して下さい。大体、CompanionCDからバイナリでインストールした場合は/opt/sfwに格納されます。makeは別 に/usr/ccs/bin/ に入っているかとおもますが、GNUmakeは/opt/sfw/bin/にgmakeとして 入ります。

ccからgccに移行した場合は、gccを有効にします。/usr/openwin/lib/X11/config/site.defを次のように編集します。

#ifndef HasGcc2
#define HasGcc2 YES
#endif
( コメントアウトされていたら それを解除してください )

/usr/openwin/lib/X11/config/sun.cfの中を次の様に編集します。

/*
#define HasSunC YES
#define CCompilerMajorVersion 4
*/

<make>
もう一方でソースからのmake-3.78.1のインストールを紹介しておきます。 CompanionCDからバイナリでインストールした場合は飛ばしてください。

<インストール>
make-3.78.1をGETしてきます。FTPサーバーの検索より、すぐに見つかるはずです。その後解凍してインストールするだけです。( もしも見つからなかったら連絡ください )

# gunzip make-3.78.1.tar.gz
# tar xf make-3.78.1.tar
# cd make-3.78.1
# ./configure --program-prefix=g

creating ./config.status
creating build.sh
creating Makefile
creating glob/Makefile
creating config.h

最後にこの様なメッセージが出力されて MakeFileがつくられたらOKです。gccかccが必要なので当たり前ですがパスの通っているシェル上から行ってください。Linuxと違いtarのオプションにz は付けることができません。gzは gunzipコマンドで一度解凍するか、gunzip make-3.78.1.tar.gz | tar xf - の様に「 | 」で受け渡ししてください。

# make
# ./make install

オプション--program-prefix=gをつけて configureしたのは 前のmakeと区別する為に新たに導入するmake の名前を変える為です。

mkdir /usr/local
mkdir /usr/local/bin
./install-sh -c
make /usr/local/bin/gmake

この様なインストールログが出力された様に 今、新たにインストールしたmakeは gmakeとして使っていきます。今後GNUmakeを使う時とSUNmakeとを併用していけます。

<GNU Patch>
GNU規格のソースにパッチを当てるには GNU Patchが必要になってきます。patch-2.5.4.tar.gzを例をして使いますと、

# gunzip patch-2.5.4.tar.gz
# tar xf patch-2.5.4.tar

makeと同じように展開して 同じように

# ./configure --program-prefix=g
# make
# make install

として 完了です。GNUmakeをgmakeとしたように GNUpatchを gpatchとしました。これで GNU規格のソースにはgcc gmake gpatchとして 今までのSUNmake や SUNccなどと 区別して利用していきます。もし patchのソースファイルが見つからなかったら連絡ください。makeと同様、用意します。

<SPARCのGNUバイナリ>
SPARC版を利用している場合やCompanionCDを使ってGUIインストールができない環境の場合、pkgadd -d コマンドで一発ではいります。

GNUtar
# cd /tmp
# gunzip -d tar-1.13-sol8-sparc-local.gz
# pkgadd -d tar-1.13-sol8-sparc-local

gcc
# cd /tmp
# gunzip -d gcc-2.95.2-sol8-sparc-local.gz
# pkgadd -d gcc-2.95.2-sol8-sparc-local

GNUmake
何度もくどい様ですがSolaris標準の/usr/ccs/bin/make、GNU make用ではありません。

# cd /tmp
# gunzip -d make-3.78.1-sol8-sparc-local .gz
# pkgadd -d make-3.78.1-sol8-sparc-local

ソースの二次配付は行いませんので以下のサイト及びFTPなどを利用して下さい。
http://www.sunfreeware.com/
ftp://ftp.sunfreeware.com/pub/freeware/
http://sunsite.sut.ac.jp/pub/sun-info/solaris-binaries/

尚、64bitサポートのgccについては、メインページのインストールログに解説していますので、そちらも御覧下さい。

mount

boot時にマウントされるディスクはvfstabに記述されています。
現在マウントされているデバイスを表示するにはmountコマンドを実行してください。次の例はUltra2のSCSIディスクのマウント状況です。

/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800000 on Tue Sep 3 19:31:57 2002
/usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800006 on Tue Sep 3 19:31:58 2002
/proc on /proc read/write/setuid/dev=38c0000 on Tue Sep 3 19:31:56 2002
/etc/mnttab on mnttab read/write/setuid/dev=3980000 on Tue Sep 3 19:31:57 2002
/dev/fd on fd read/write/setuid/dev=39c0000 on Tue Sep 3 19:31:59 2002
/var on /dev/dsk/c0t0d0s1 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800001 on Tue Sep 3 19:32:01 2002
/var/run on swap read/write/setuid/xattr/dev=1 on Tue Sep 3 19:32:01 2002
/tmp on swap read/write/setuid/xattr/dev=2 on Tue Sep 3 19:32:04 2002
/export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=800007 on Tue Sep 3 19:32:04 2002

これよりルートディレクトリのデバイス名は/dev/dsk/c0t0d0s0であることがわかります。
/usr のデバイス名は/dev/dsk/c0t0d0s6でであることがわかります。

Intel SolarisのIDEディスクは/dev/dsk/c0d0s0の様なデバイス名になっているはずです。
IDEディスクをスレーブに接続した場合は/dev/dsk/c0d1です。一般には
/dev/dsk/c0d1s7の様になっていると思います。
IDEディスクのセカンダリーのマスターの場合は/dev/dsk/c1d1です。一般には
/dev/dsk/c1d1s0の様になっていると思います。どのシリンダが分からない場合はformatのpartitionサブコマンドで参照してみてください。

/etc/vfstabは次の様な記述になります。

/dev/dsk/c0t0d1s7 /dev/rdsk/c0t0d1s7 /export/home ufs 2 yes -

後ろから2番目の[yes]はboot時にマウントするかどうかの意味でyesにしておけば起動時にマウントします。[2]というのは マウントする順番です。新たにディスクを追加した場合は次の様にして一度マウントの確認をおこなってください。

# mount /dev/dsk/c0t0d1s7 /home/usr1

起動時にマウントしたくない場合、solaris特有のオートマウントを使うとよいです。

automount

Solaris導入後/home の存在に疑問を感じた方も多いのではないでしょうか?Solarisの/homeはネットワーク上の別のマシンからログインしても/home 以下にホームディレクトリが配置できるネットワークマウント用ディレクトリです。/homeの活用方法はメインページのNIS&NFSの設定方法で紹介しています。

起動時にNFSをマウントする場合は、NFSサーバーがダウンしているとNFSクライアントもブートできないことに注意してください。また、2台のホストでNFSサーバーを構築しお互いがNFSクライアントとしてファイルを共有する場合(クロスマウント)も注意してください。

マニュアルの参照方法
マニュアル参照方法を紹介します。Solarisにはコマンド、システムコール、ライブラリ関数、特殊ファイルなどのリファレンスマニュアルが付属しています。このフォーマットは全てのUNIXシステムで同じであり、最終のドキュメント形態として採用されています。これらのマニュアルページをmanページと呼ばれています。

セクション 説明
1

全てのユーザーが使用できるコマンド

1M

システムの保守と管理に使うコマンド。一部はシステム管理者ログインアカウントでなければ実行できません。
2 低レベルのオペレーションシステムコール。システムリソースのアクセスと制御の為にC言語で使えます。
3 システムライブラリ関数。システムリソースのアクセスと制御の為にC言語で使えます。
4 各種システム設定ファイルのフォーマット
5 標準、環境、マクロなどのトピック
6 使用可能なゲームまたはデモ
7 特定のハードウェアの関連する特殊なファイル、デバイスドライバ、STREAMS I/Oサブシステム
9

カーネルレベルの2つのデバイスドライブ仕様DDIとDKI

セクション8がない事に注意してください。

man name : コマンド、ファイル名などのマニュアルを呼び出します。複数のnameを必要とする場合はスペースで区切って下さい。
-a : 指定のnameに一致する全てのマニュアルページを表示します。
-d : 指定のnameに対するマニュアルページを探すために使ったデバック情報を表示します。
-f file : 指定のfileが参照されているマニュアルページを一覧に表示します。複数のファイルを選択する場合はスペースで区切ってください。
-F : windexデータベースを用いてマニュアルページを探す代わりに、全てのマニュアルセクションでnameを検索します。

-k keyword : 指定したkeywoodを含む全てのwindexデータベースエントリの概要を出力します。
-l : 指定のnameに一致する全てのマニュアルページの一覧を表示します。
-M path : マニュアルページファイルの別ディレクトリを指定します。
-r
: 指定のnameのマニュアルページを再整形します。出力は表示しませんので、後のmanコマンドを使うためにファイルを保存します。
-s : 指定のセクションのみを検索します。複数のセクションを空白で区切る事もできます。

 


<関連書籍の購入>
UNIXシステム管理 第3版〈VOLUME2〉


<戻る>