作成 2002年12月15日
最終更新 2002年12月30日

Solaris8 x86 02/02 版セットアップ記

  1. 概要
  2. DOS のインストール
  3. WindowsNT4.0 Workstation のインストール
  4. Slackware-8.1 2002/12/02 版のインストール
  5. Solaris8 02/02 のインストール
  6. LILO の再インストール
  7. Solaris8 の続き
  8. Solaris8 x86 にOpenSSH-3.5p1 を入れる
  9. Solaris8 x86 にXFree86-4.2.1 を入れる
  10. Solaris8 x86 にsamba-2.2.4-ja-1.0 をインストール
  11. Solaris8 x86 にemacs-21.2 +emcws をインストール
  12. Solaris8 x86 ATAPI CD-R ドライブで焼く
  13. Solaris8 x86 gcc-3.2.1 のmake
  14. Solaris8 x86 sendmail の設定


概要

AT互換機にDOS, WindowsNT4.0WS, Slackware Linux 8.1, Solaris8 02/02 を共存 インストールしました。
ハードウェアの構成は次のような感じです。

マザーボードTMC AI6NLD(440LX チップセット)
CPUPentium2 266MHz
メモリ384MBytes
VGA カードATI Xpert2000
SCSI カードAdaptec 2940UW
マウスLogitech MouseMan(シリアル接続)
キーボードAT 101type
diskIBM DPSS-336950N (36G Ultra160 disk)
IBM IBM DNES-318350LVD (18G Ultra2 disk)
CD-ROMPlextor PX-W1610TA/BS(CD-R/RW 16,10,40倍速)
NICCOMPAQ NC3121(PCI 100/10, Intel SB82558B chip)

OS のインストールは全て1台目の36G SCSI ディスクに行い、インストール完了後の パーティション構成は次のようになりました。

1基本2GDOS
2基本4GWinNT4.0WS
3基本17GSolaris8 x86
5拡張(4)6GSlackware-8.1
66G(予備)

DOS のインストール

はじめにDOS を入れました。
Slackware Linux 7.1 のインストールCD で起動して fdisk /dev/sda を実行し、 HDD のパーティションを全て削除しました。
その後、DOS のインストールFD で起動してDOS で2G の基本区画を作成し、そこに 入れました。

WindowsNT4.0 Workstation のインストール

次にWindows NT 4.0 を入れました。
Slackware Linux 7.1 のインストールCD で起動して fdisk /dev/sda を実行し、 2番目のプライマリパーティションを4G のサイズで確保しました。
別マシンでアダプテックのサイトから2940UW のWindowsNT4.0 用のドライバをダウンロードしてFD を作成しました。
WindowsNT4.0 のインストールFDで起動し、SCSI カードのドライバを読み込ませ インストールを続けます。

インテルチップのNIC なのでインストール時はネットワークの設定はキャンセルし、 インストールが完了してからネットワークを設定しIntel Pro100 のCD でNIC のドライバをインストール。
(経験上、NT4.0 インストール中にインテルNIC を設定するとおかしくなることが多い)
ATI Xpert2000 のドライバを入れ画面解像度も設定しました。

WindowsNT4.0 ServicePack6a, InternetExplorer5.5sp2, POST SP6 security rollup patch, IE5.5sp2累積的修正プログラムなどをあてました。

Slackware-8.1 2002/12/02 版のインストール

別マシンでSlackware-8.1 2002/12/02 版をダウンロードし、ブータブルCD-R を 作成しました。
(方法はslackware-current/isolinux/README.TXT 参照)

パーティションを切るためにこのCD-R で起動しようとしましたが、 うまく起動できない(CD からではなく、HDD から起動してしまう)ようです。 別のマシンはこのCD-R で起動できるのでハードウェアやBIOS の問題でしょうか。

そこでSlackware-7.1 のCD で起動して後から入れるSolaris8 用のパーティション を3番目のプライマリパーティションとして17Gバイト確保し、タイプをLinux swap にしました。(Solaris8 のパーティションID はLinux swap と重複しています)
更にSlackware を入れるパーティションを作成するため、まず4 番目のパーティションとしてextended パーティションを残りの最大サイズで確保し、 その中に論理パーティションを6G バイト確保しました。

別マシンでadaptec.s, install.1, install.2 のイメージからインストールFD を作成し、これらで起動してSlackware-8.1 を入れました。
この後Solaris8 を入れる不安から、ここではSlackware パーティションのブートセクタ にLILO を入れ、Linux 起動用のFD を作成しておきました。

Solaris8 02/02 のインストール

Solaris8 x86 のメディアは Free Solaris Binary License Programで購入しました。税込みで6,720円で 注文から10日程で届きました。

Solaris とLinux の共存に関してJF のみなさんが翻訳なさっている Linux+Solaris HOWTOを参考にさせていただきました。

Solaris のインストールは「Software 1of2」 CD で起動し、 X Window は使わずにテキストベースでインストールを進めます。 かなり古いマザーボードのためか、F3 で次のデバイスのみを検索するようにしないとデバイス認識の途中でフリーズ するようでした。
(IDE とWindows Sound System が入っているとよくないようです)
このリストの中に2940UW とIntel(COMPAQ)のネットワークカードはありませんが、 自動認識されました。 CD-ROM ドライブを接続しているIDE コントローラもPCI のIDE として自動認識されました。

日本語コード等の選択後、kdmconfig(白い画面から青い画面に戻る)に 入るとF4 でスキップしました。(ATI XPERT2000 はNG なので)

「Software 1of2」, 「Software 2of2」, 「LANGUAGES」 のCD の内容が入りました。 kdmconfig コマンドで設定することで、とりあえずVGA 16色X Window も設定できました。

再起動後、別マシンX サーバを使って「DOCUMENTATION (ASIAN) CD」 のinstaller を実行してインストール。

この状態では、起動時にはSolaris のブートメニューが現れSolaris かWinNT の起動 を選択できます。 WinNT のメニューを選択することで、その中からDOS を起動できます。 拡張パーティション中の論理パーティションに入ったLinux を起動するには起動FD でおしがけです。

LILO の再インストール

MBR にLILO を入れて、各OS を選択起動できるようにしたいです。
起動FD でSlackware Linux を起動し、liloconfig でlilo.conf を作り直し MBR にLILO を入れようとするとエラーになりました。 CHS->LBA 変換関連で、パーティションテーブルがおかしいとのこと。 Solaris を入れたせいでしょうか。

そこでlilo -P ignore を実行するとで無理やりLILO を入れることができました。 lilo -P ignore はジオメトリの矛盾を無視するオプションです。
更に強力な-P fix というのもあり、 こちらはジオメトリの修正ができるらしいけど当然危険が伴うとのことです。

man lilo の一部を引用します。
-P {fix|ignore}
       Fix or ignore  `corrupt'  partition  tables,  i.e.,
       partition tables with linear and cylinder/head/sec-
       tor addresses that do not correspond.   Always  try
       -P ignore first, as -P fix will re-write the parti-
       tion table, possibly destroying all  partitions  on
       the disk.

       -P  ignore  is  also  used  to bypass the partition
       table check for partition types within  the  parti-
       tion  table  which might not allow the installation
       of a LILO boot sector.  Compare with the "-F" flag,
       which  overrides  the check of the actual boot sec-
       tor.


参考までに、/etc/lilo.conf は次のようになっています。
lba32
boot = /dev/sda
prompt
timeout = 50
vga = 773
image = /boot/vmlinuz
root = /dev/sda5
label = linux
read-only

other = /dev/sda1
label = dos
table = /dev/sda

other = /dev/sda3
label = solaris
table = /dev/sda
loader=/boot/chain.b


NT, Linux, Solaris の選択起動ができるようになりました。
(DOS はNT の起動サブメニューから選択)

これでわかったのですが、Solaris8 がMBR に入れるプログラムはアクティブ フラグのついたプライマリパーティション(基本パーティション)のブートセクタに あるローダを起動するだけの、NT 等と同様の動作仕様のようです。
Solaris8 本体を起動するローダはMBR ではなくブートセクタにいてLILO からそれを 起動することでLILO からSolaris8 を起動できることが確認できました。

Solaris8 の続き

DISPLAY を別マシンのX サーバに向けて、「Software Companion」CD からgcc 等のフリーソフトを全部入れました。
それらのバイナリは/opt/sfw/bin に入るのでPATH を通しておきました。

http://www.sun.com/bigadmin/patches/indexRec.htmlから リコメンデッドパッチ(8_x86_Recommended.zip) をダウンロードしてきて展開し、install_cluster を実行してあてました。
あ、パッチあてはシングルユーザモード推奨と書いてありました。 私はマルチユーザモードであてちゃいました。

パッチあて中に画面を見ていると、エラーコード2 と8 が頻繁に出ているようです。 「solaris patch return code」といったキーワードでインターネットを検索した ところ、Return code 2 はそのパッチがインストール済みというエラーで Return code 8 はパッチを当てる対象のパッケージがインストールされていないので パッチをあてる必要がいない(あてようがない)というエラーとのこと。 問題なさそうです。

Solaris8 x86 にOpenSSH-3.5p1 を入れる

OpenSSH にはOpenSSL とzlib が必要なので、それらを先にインストールします。

zlib は
http://www.gzip.org/zlib/から zlib-1.1.4.tar.gz を入手して展開して
./configure
(私は ./configure --prefix=/opt/local としました)
make
su
make install

OpenSSL はhttp://www.openssl.org/ からたどってopenssl-0.9.6h.tar.gz を入手し、展開して
./config
(私は ./config --prefix=/opt/local としました)
make
make test
su
make install
です。

最後にOpenSSH はhttp://www.openssh.com/ja/ からたどってopemssh-3.5p1.tar.gz を入手し、展開して
./configure
(私は csh にしてから env LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" ./configure --prefix=/opt/local --sysconfdir=/etc/ssh --with-ssl-dir=/opt/local/lib (実際は1行で入力) とする必要がありました)
make
su
groupadd sshd
useradd sshd -g sshd
make install
次の内容で /etc/init.d/sshd ファイルを作成
#!/sbin/sh
case "$1" in
'start')
        /opt/local/sbin/sshd
        ;;
'stop')
        /usr/bin/pkill -x sshd
        ;;
*)
        echo "Usage: $0 { start | stop }"
        exit 1
        ;;
esac
exit 0

chmod 755 /etc/init.d/sshd
ln -s /etc/init.d/sshd /etc/rc2.d/S99sshd
/etc/services に
ssh 22/tcp

を追記
/etc/init.d/sshd start で起動してみて動作確認

私はこれまで1台のPC からマルチブートするOS は全てに同じIP アドレスを割り当てていました。 OS に割り当てるというより、PC に割り当てるというイメージですね。
ですがUNIX 系OS を複数入れ、それらにsshd を動かすとssh クライアントで接続する場合のインチキホストチェック (公開鍵のフィンガープリント照合エラー) にかかるのでLinux とSolaris8 は別のIP アドレスを割り当てるようにしました。

私はWindows2000 のコマンドプロンプトの中でcygwin のssh クライアント(OpenSSH) からアクセスすることが多いです。
そういう場合、Solaris から見たクライアントのTERM はCMD やcygwin に 見えるようです。これにずばりあてはまるTERMINFO はわからないのですが、比較的 ansi に近いようなので、
ln -s /usr/share/lib/terminfo/a/ansi /usr/share/lib/terminfo/c/cygwin
mkdir /usr/share/lib/terminfo/C
ln -s /usr/share/lib/terminfo/a/ansi /usr/share/lib/terminfo/C/CMD
のようにansi の端末情報にリンクを張りました。
これでコマンドプロンプトからssh 越しにvi 等を使えます。 (時々ヘンになりますが)

併せて.cshrc で環境変数TERM がcygwin かCMD の場合は環境変数LANG を ja_JP.PCK に設定することで日本語をShift-JIS コードにし、コマンドプロンプト上 で文字化けしないようにできました。
.cshrc に記述したのは
if( $TERM == CMD || $TERM == cygwin ) then
  setenv LANG ja_JP.PCK
endif
のような感じです。

Solaris8 x86 にXFree86-4.2.1 を入れる

Solaris8 を入れたPC のビデオカードはATI Xpert2000(AGP 32MBytes ビデオメモリ) です。 Solaris8 はmach64 やRage128 といったATI チップをサポートしているのでXpert2000 も動くかも、と期待していましたがどうやらダメのようです。

そこで若林さんのページのコンテンツ、
http://quox.org/install/X11/XFree86-4.2.1.htmlや moriken さんのページのコンテンツ、 http://moriken.2y.net/~kenichi/Contents/Sol8Inst.htmを参考にさせてもらい XFree86-4.2.1 をインストールしました。

http://www.XFree86.org/からたどって X420src-1.tgz, X420src-2.tgz, X420src-3.tgz, 4.2.0-4.2.1.diff を入手し、 4.2.0 のソースファイル3 つを展開して
cd xc
cat ../4.2.0-4.2.1.diff | gpatch -p1
として4.2.1 差分パッチをあてました。そして
env CC=gcc MAKE=gmake make World
3時間ほどかかってmake が通りました。
su
tcsh
env MAKE=/opt/sfw/bin/gmake CC=/opt/sfw/bin/gcc /opt/sfw/bin/gmake install install.man
でインストールしました。

私の環境でも/usr/X11R6/bin/xf86config を実行すると設定ファイル作成の 対話が続く中でビデオカード種別のリスト表示のところでsegmentation fault で 異常終了してしまいます。
上記のmoriken さんのページで紹介されているように、 XFree86 -configure を実行して作成されるXFree86Config.new を/etc/X11/XF86Config として設置し、中身をいろいろ書き換えまくりました。
シリアルマウスのデバイスファイル名に悩みましたが、これは /etc/openwin/server/etc/OWconfig を見て/dev/tty00 と判明。

XFree86 の直接実行でX Window のルート画面が出せるようになりました。
/usr/dt/config/Xservers の最後の行を
   :0   Local local_uid@console root /usr/X11R6/bin/X :0 -bpp 24
のように書き換え、再起動すると日本語でX Window ベースのログイン画面があらわれ、ログインできました。

私の環境の/etc/X11/XF86Config は次のようになりました。
Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/openwin/lib/X11/fonts/100dpi/"
	FontPath     "/usr/openwin/lib/X11/fonts/75dpi/"
	FontPath     "/usr/openwin/lib/X11/fonts/CSL/"
	FontPath     "/usr/openwin/lib/X11/fonts/F3/"
	FontPath     "/usr/openwin/lib/X11/fonts/F3bitmaps/"
	FontPath     "/usr/openwin/lib/X11/fonts/Speedo/"
	FontPath     "/usr/openwin/lib/X11/fonts/TTbitmaps/"
	FontPath     "/usr/openwin/lib/X11/fonts/TrueType/"
	FontPath     "/usr/openwin/lib/X11/fonts/Type1/"
	FontPath     "/usr/openwin/lib/X11/fonts/Type3/"
	FontPath     "/usr/openwin/lib/X11/fonts/Xt+/"
	FontPath     "/usr/openwin/lib/X11/fonts/encodings/"
	FontPath     "/usr/openwin/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load  "extmod"
	Load  "glx"
	Load  "dbe"
	Load  "record"
	Load  "xtrap"
	Load  "speedo"
	Load  "type1"
        Load  "freetype"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "MouseMan"
	Option	    "Device" "/dev/tty00"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
    HorizSync   31.5 - 82.0
    VertRefresh 50-100

EndSection

Section "Device"
	Identifier  "Card0"
	Driver      "ati"
	VendorName  "ATI"
	BoardName   "Rage 128 SM"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
    DefaultDepth 24

    Subsection "Display"
        Depth       24
        Modes       "1280x1024"
        ViewPort    0 0
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier  "Simple Layout"
    Screen "Screen 0"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Solaris8 x86 にsamba-2.2.4-ja-1.0 をインストール

samba-2.2.4-ja-1.0 やsamba-2.2.7 に挑戦したのですが、 configure の途中で 「checking configure summary... configure: error: summary failure. Aborting config」 というメッセージで異常終了し、Makefile が作成されませんでした。

いろいろ試行錯誤するうち、config.log を眺めていて、 libpopt.so.0の解決ができないのがエラー原因とわかりました。

これは/opt/sfw/lib にあるので最終的に
cd source
env CC=/opt/sfw/bin/gcc CFLAGS="-I /opt/sfw/include" (次行継続)
 LDFLAGS="-L /opt/sfw/lib" LD_LIBRARY_PATH=/opt/sfw/lib (次行継続)
./configure --prefix=/opt/local
でconfigure が成功しました。
後は
make
su
LD_LIBRARY_PATH=/opt/sfw/lib
export LD_LIBRARY_PATH
/opt/sfw/lib/gmake install
cp examples/smb.conf.default /opt/local/lib/smb.conf
vi /opt/local/lib/smb.conf (smb.conf でsamba の設定をする)
/opt/local/bin/testparm   (smb.conf のエラーチェック)
ln -s /opt/sfw/lib/libpopt.so.0 /usr/lib/libpopt.so.0 (おまじない...)

vi /etc/inetd.conf で次の2行をファイル末尾に追加
netbios-ssn stream tcp nowait root /opt/local/sbin/smbd smbd
netbios-ns dgram udp wait root /opt/local/sbin/nmbd nmbd

最後に
pkill -HUP inetd
を実行することで、Windows からsamba にアクセスできるようになりました。

Solaris8 x86 にemacs-21.2 +emcws をインストール

私はWnn (しか使ったことがない)派です。
『GNU Emacs + Gnus + Mew の環境を作ろう』(
http://www.ki.nu/software/emacs-20/) を参考にさせていただき、emcws を用いてWnn 対応のemacs21.2 をインストールします。

上記ページで紹介されているミラーサイトからemacs-21.2.tar.gz,leim-21.2.tar.gz を入手します。
# ftp://alpha.gnu.org/gnu/emacs/pretest/ にemacs 21.3 のpretest 版である
# emacs-21.2.93 というのもあるようです

ftp://ftp.ki.nu/pub/emcws/ から emcws-21.2-20021014.gz を入手します。
emacs-21.2.tar.gz を展開し、同じ場所にleim-21.2.tar.gz を上書き展開して

cd emacs-21.2
gpatch -p1 < ../emcws-21.2-20021014
env CFLAGS="-I/opt/sfw/include" LDFLAGS="-L/opt/sfw/lib" \
  ./configure --prefix=/opt/local/ --with-wnn \
  --with-wnn-includes=/usr/lib/locale/ja/wnn/demo/include/wnn \
  --with-wnn-libraries=/usr/lib/locale/ja/wnn/demo/lib \
  --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
でconfigure します。

上記の --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib がないと Solaris のX 関連のファイルが自動選択されますが、これはmake の時にコンパイルエラーが発生するようなのでXFree86 4.2.1 のインクルードや ライブラリを指定しました。
また、/usr/lib/locale/ja/wnn/demo/ のinclude とlib はSolaris インストールの時に明示的に指定しないと存在しないかもしれません。

後は次のようにmake しました。

setenv LD_LIBRARY_PATH /opt/sfw/lib
gmake
su
CC=/opt/sfw/bin/gcc
export CC
MAKE=/opt/sfw/bin/gmake
export MAKE
LD_LIBRARY_PATH=/opt/sfw/lib
export LD_LIBRARY_PATH
/opt/sfw/bin/gmake install

これでできました。 あ、Makefile の中でEMACS = emcws になっているのでmake したバイナリはemacs というファイル名ですが、make install するとemcws に名前がかわりました。

.cshrc にsetenv LD_LIBRARY_PATH /opt/sfw/lib を設定しました。
.emacs には次の設定を追記し、Windows2000 のコマンドプロンプトからcygwin のssh でSolaris8 にログインしている場合のemcws 端末文字コードがShiftJIS になるよう にしました。
(setq mytermtype (getenv "TERM"))
(if (or (string-equal mytermtype "CMD") (string-equal mytermtype "cygwin"))
    (set-terminal-coding-system 'sjis))

Solaris8 x86 ATAPI CD-R ドライブで焼く

Linux の場合は特別なドライバモジュールでIDE をSCSI に見せかけることで、 ATAPI タイプのCD-R ドライブでCD-R を焼けることが知られています。 例えば私のページ http://www.lares.dti.ne.jp/~seiki/comp_diary2001.html#pxw1610 で紹介しています。

では、Solaris8 x86 でもATAPI CD-R ドライブが使えないでしょうか?
動的ドライブの自動マウントを制御するvold を
/etc/init.d/volmgt stop
で停止させた状態で Solaris8 の『Software Companion』CD-ROM でインストールできるcdrtools パッケージ付属のcdrecord コマンドを使い、root 権限で
/opt/sfw/bin/cdrecord -scanbus
を実行したところ、何と次のようになりました。

# ./cdrecord -scanbus
Cdrecord 1.9 (i386-pc-solaris2.8) Copyright (C) 1995-2000 Jg Schilling
Warning: Using USCSI interface.
Using libscg version 'schily-0.1'
scsibus0:
        0,0,0     0) 'PLEXTOR ' 'CD-R   PX-W1610A' '1.02' Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
scsibus1:
        1,0,0   100) 'IBM     ' 'DPSS-336950N    ' 'S96H' Disk
        1,1,0   101) *
        1,2,0   102) 'IBM     ' 'DNES-318350W    ' 'SA30' Disk
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) *
        1,6,0   106) *
        1,7,0   107) *

RedHat Linux 並に楽勝でATAPI CD-R ドライブが見えます。
それではと、次のようにIntel のネットワークカードに付属するCD-ROM を バックアップしてみました。

1. CD-ROM を読み込み、イメージファイルを作成

# /opt/sfw/bin/readcd dev=0,0,0 f=/tmp/intel.img
Capacity: 32887 Blocks = 65774 kBytes = 64 MBytes = 67 prMB
Sectorsize: 2048 Bytes
Capacity: 32887 Blocks = 65774 kBytes = 64 MBytes = 67 prMB
Sectorsize: 2048 Bytes
Copy from SCSI (0,0,0) disk to file '/tmp/intel.img'
end:     32887
addr:    32887 cnt: 119
Time total: 25.403sec
Read 65774.00 kB at 2589.2 kB/sec.

ここで、手動でCD-R メディアに入れ替えます。


2. CD-R へ書き込み

# ./cdrecord dev=0,0,0 speed=16 /tmp/intel.img
Cdrecord 1.9 (i386-pc-solaris2.8) Copyright (C) 1995-2000 JgSchilling
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Warning: Using USCSI interface.
Using libscg version 'schily-0.1'
Device type    : Removable CD-ROM
Version        : 0
Response Format: 1
Vendor_info    : 'PLEXTOR '
Identifikation : 'CD-R   PX-W1610A'
Revision       : '1.02'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags   : SWABAUDIO
Starting to write CD/DVD at speed 16 in write mode for single session.
Last chance to quit, starting real write in 1 seconds.
Track 01: Total bytes read/written: 67352576/67352576 (32887 sectors).

あまりにも簡単で拍子抜けしました。

Solaris8 x86 gcc-3.2.1 のmake

Solaris8 の『Software Companion』CD-ROM から入れたgcc はVer 2.95.3 と 古いので、最新のVer 3.2.1 をmake してみました。

http://www.ring.gr.jp/index.html.ja等からたどってgcc-3.2.1.tar.gz を入手しました。これを展開してINSTALL/index.html を読み、 gcc-3.2.1 ディレクトリとは別の場所に gcc-3.2.1_work という作業用のディレクトリを作成し、

cd gcc-3.2.1_work
env CC=/opt/sfw/bin/gcc ../gcc-3.2.1/configure --prefix=/opt/local --enable-shared
env MAKE=/opt/sfw/bin/gmake gmake bootstrap
でmake しました。約4時間かかってC, C++, Fortran77, Java のコンパイラができ、 gcc-3.2.1_work のファイル容量は512MBytes にもなりました。
gcc がxgcc というファイル名になっていますが問題ありません。 インストールすると gcc というファイル名になります。

次のようにインストールします。

su
# PATH=$PATH:/usr/ccs/bin
# export PATH
# MAKE=/opt/sfw/bin/gmake
# export MAKE
# /opt/sfw/bin/gmake install

Solaris8 x86 sendmail の設定

Solaris8 のsendmail を設定し、自宅のLAN 内のPC からSolaris8 経由で常時接続の インターネットにメールを送信できるようにしました。

こんなことをしなくてもプロバイダのSMTP サーバ経由でメールは送信できます。 何故sendmail を設定するのかというと、次のような背景があります。

私が契約しているプロバイダはメールの送信時に、
  1. あらかじめメール受信を行って認証を受けておくか
  2. 送信時パスワード認証
このどちらかが必要です。 PC 上の一般的なメーラはDNS のMX レコードを参照して送信先のメールサーバに 直接送信するのではなく、まずは設定したSMTP サーバに送信し、 SMTP サーバにそれ以降の配達を任せるわけです。 私の場合、このSMTP サーバに送信時ユーザ認証の制約があるわけです。

私はメーラなどのアプリケーションにパスワードを記憶させるのが大嫌いで、 かといって送信の度にパスワードを入力するのも面倒なので自前でメールサーバ をたててそれにメール配達をさせることにしてみました。

Solaris8 では、sendmail の設定ファイルは/etc/mailにありますが、 設定ファイル作成の作業ディレクトリは/usr/lib/mailにあります。
/usr/lib/mail に移ってsu してから、 次のように設定用のソースファイルをバックアップします。

# cp main-v7sun.mc main-v7sun.mc.org
vi でmain-v7sun.mcを開き、末尾に次のように6行書き加えました。

# added next 5 lines 2002/12/29 S.K.
Dwsheep
Dmside7.gundam.net
define(`confDOMAIN_NAME', `$w.$m')
MASQUERADE_AS(`$m')
RELAY_DOMAIN(`femc.mil')

2行目のsheep というのは、このSolaris8 のホスト名です。Dw のあとにスペース等を入れてはなりません。

3行目のside7.gundam.net というのは自分がインターネットに接続するときのプロバイダのドメイン名で、 ここでは架空の名称です。 自宅LAN のローカルドメイン名を設定するのではありません。 やはり、Dm の後にスペース等は入れません。

5行目の MASQUERADE_AS(`$m') はあるメーラ(古いmule 上のrmail) がメール送信時にFrom の送信者アドレスの@マークの右側に自宅LAN のドメイン名をつけてしまうのを、 強制的に3行目のドメイン名に書き換えるための設定です。

6行目のRELAY_DOMAIN(`femc.mil')というのは、自宅LAN のドメインである、 femc.mil 内のPC からはインターネットへのメール中継を許可する設定です。
実はfemc.mil というのはウソで本当は別のドメイン名をプライベートアドレス内で 使っています。

なお、m4 cf によるsendmail 設定ファイル作成では テクノプレス発行の『
sendmail メールサーバの設定・運用・管理』監修 矢吹道朗 著 江面敦 ISBN4-924998-43-5 定価2,500円+税がよい参考書です。


# /opt/sfw/bin/gmake main-v7sun.cf
でmain-v7sun.mc からmain-v7sun.cf というsendmail が直接理解できる形式のファイル に変換されます。これを次のようにsendmail.cf という名前で/etc/mail に設置します。

# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf1229
# cp main-v7sun.cf /etc/mail/sendmail.cf
プロバイダのアカウント名とSolaris8 のログイン名が異なるので、 Solaris8 上のNetscape メッセンジャでFrom を書き換えても警告やエラーが出ないように、 /etc/mail/trusted-users に自分のSolaris8 のユーザ名を追加しました。

以上の作業を終え、root 権限で次のようにsendmail プロセスにSIGHUP シグナルを送り、変更した設定を再読み込みさせました。


# pkill -HUP sendmail




わたしのAT互換機ライフ メニューへ戻る

メインメニュー へ戻る


ご意見箱