作成 2002年12月15日
最終更新 2002年12月30日
AT互換機にDOS, WindowsNT4.0WS, Slackware Linux 8.1, Solaris8 02/02 を共存 インストールしました。
ハードウェアの構成は次のような感じです。
マザーボード TMC AI6NLD(440LX チップセット) CPU Pentium2 266MHz メモリ 384MBytes VGA カード ATI Xpert2000 SCSI カード Adaptec 2940UW マウス Logitech MouseMan(シリアル接続) キーボード AT 101type disk IBM DPSS-336950N (36G Ultra160 disk) IBM IBM DNES-318350LVD (18G Ultra2 disk) CD-ROM Plextor PX-W1610TA/BS(CD-R/RW 16,10,40倍速) NIC COMPAQ NC3121(PCI 100/10, Intel SB82558B chip)
OS のインストールは全て1台目の36G SCSI ディスクに行い、インストール完了後の パーティション構成は次のようになりました。
1 基本 2G DOS 2 基本 4G WinNT4.0WS 3 基本 17G Solaris8 x86 5 拡張(4) 6G Slackware-8.1 6 6G (予備)
はじめにDOS を入れました。
Slackware Linux 7.1 のインストールCD で起動して fdisk /dev/sda を実行し、 HDD のパーティションを全て削除しました。
その後、DOS のインストールFD で起動してDOS で2G の基本区画を作成し、そこに 入れました。
次に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 版をダウンロードし、ブータブル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 x86 のメディアは Free Solaris Binary License Programで購入しました。税込みで6,720円で 注文から10日程で届きました。
Solaris とLinux の共存に関してJF のみなさんが翻訳なさっている Linux+Solaris HOWTOを参考にさせていただきました。
Solaris のインストールは「Software 1of2」 CD で起動し、 X Window は使わずにテキストベースでインストールを進めます。 かなり古いマザーボードのためか、F3 で次のデバイスのみを検索するようにしないとデバイス認識の途中でフリーズ するようでした。
- Serial Port
- Floppy
- System keyboard
- Logitech Bus Mouse
- Parallel Port
- Microsoft Bus mouse
- PS/2 Mouse
(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 でおしがけです。
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 を起動できることが確認できました。
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 はパッチを当てる対象のパッケージがインストールされていないので パッチをあてる必要がいない(あてようがない)というエラーとのこと。 問題なさそうです。
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 を入れた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
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 にアクセスできるようになりました。
私は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))
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 の『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 のsendmail を設定し、自宅のLAN 内のPC からSolaris8 経由で常時接続の インターネットにメールを送信できるようにしました。
こんなことをしなくてもプロバイダのSMTP サーバ経由でメールは送信できます。 何故sendmail を設定するのかというと、次のような背景があります。
私が契約しているプロバイダはメールの送信時に、このどちらかが必要です。 PC 上の一般的なメーラはDNS のMX レコードを参照して送信先のメールサーバに 直接送信するのではなく、まずは設定したSMTP サーバに送信し、 SMTP サーバにそれ以降の配達を任せるわけです。 私の場合、このSMTP サーバに送信時ユーザ認証の制約があるわけです。
- あらかじめメール受信を行って認証を受けておくか
- 送信時パスワード認証
私はメーラなどのアプリケーションにパスワードを記憶させるのが大嫌いで、 かといって送信の度にパスワードを入力するのも面倒なので自前でメールサーバ をたててそれにメール配達をさせることにしてみました。
Solaris8 では、sendmail の設定ファイルは/etc/mailにありますが、 設定ファイル作成の作業ディレクトリは/usr/lib/mailにあります。
/usr/lib/mail に移ってsu してから、 次のように設定用のソースファイルをバックアップします。
# cp main-v7sun.mc main-v7sun.mc.orgvi で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