Gnu Debian で自家サーバ (つづき)
serge (Debian 3.XX)から使い始めたDebianも、すでにバージョンが etch(4.XX) lenny(5.XX) と更新されて、もう2年以上がたった。
今春にsqueeze(6.XX)が正式リリースされたが、アップグレード作業は、なにかと面倒なので放置していたが、やっぱ「畳とOSは新しいほうがいい」というコトワザもあることだし…
例によってオールドWINノート(※当サイト2頁めを参照)で自家サーバ運用している私が、重い腰をあげて、ようやくシステムを更新した覚書です…
2011/0715
連休ということもあって、以前から「やらねば」とおもっていた自家サーバのアップグレードを「やろう!」と思い立ってしまった。
現行のGNU Linux Debian lenny i386 を 同 Squeezeにする。 実は今年の春に実行したが、例によってディスクスペース(4GB)が足りずに、途中で失敗。で、今回はエラー回避の作戦を練った。
まず、aptのキャッシュアーカイブディレクトリを、別のディスクに用意する。 インストールパッケージを別のディスクにキャッシュすることで、インストール対象のディスクの空きを確保しようという魂胆だ。
# mv /var/cache/apt/archives /[別デバイス]/
# ln -s /[別デバイス]/archives /var/cache/apt/
と、これだけ。
あとはリポジトリの変更。/etc/apt/sources.list を編集して、lenny → squeeze に変更するだけ。あ、volatile の行は削除になっているのでコメントアウトして 新たに…
‾
deb http://ftp.jp.debian.org/debian/ squeeze-update main
deb-src http://ftp.jp.debian.org/debian/ squeeze-update main
‾
という2行を付け加えて保存。
# apt-get update
を実行。
エラーがなければ…
# aptitude safe-upgrade
これでよし。
ところが、これがうまくいかない。依存関係を解決するべく、aptitudeが一生懸命作業をしてはくれるのだが、4時間経っても、5時間経っても、依存関係が解決できない。 この作業は無理と見て、別の方法を考えた。
まず、パッケージをスリム化。tasksel で「デスクトップ環境」のチェックをはずして実行。いくつかのファイルが取り除かれたが、私の場合、マニュアルでデスクトップ環境をインストールしたので、まったくデスクトップもログインマネージャーもそのまんま。で、削除もやっぱりマニュアルでやる。
# aptitude purge gnome-desktop gdm gthumb 〜 その他、手動でインストールした覚えのあるものを適当に羅列。
ざっくり500MBほど空間ができた。
これでいったん再起動。もちろんデスクトップもXもないから、コンソールで止まる。ルートでログイン。あ、文字化け… しかも、ネットワークにつながらない…
# LANG=C
# dhclient
ひさびさに手作業で自動ネットワーク接続(?)…
で、あらためて、
# aptitude safe-upgrade
つらつら3時間強。へとへとになりながら、どうにかベースシステムのアップグレードが完了。
# aptitude install gnome-core gdm netowork-manager-gnome uim uim-anthy
と最低限のデスクトップを手動でインストールしたら再起動。
以前の設定がそのまま再利用されているため、タッチパッドも暴走しないし、Xもアクセラレーションが効いた状態で問題なくデスクトップに戻ってきた。 ところが、デスクトップ警告が
「ハードディスクが故障かもしれませんっ!」
と厳しいことを言う…
ディスクの残りスペースが「0」を示しているというのだ。 ファイルマネージャーで見ると、残量は1GB以上残っているが、システムには残量ゼロと認識されている状態。なんで? そういえば、インストールの途中でなんたらかんたらってエラーを表示していたっけ… 全部英文なんで、適当にリターンキーをたたいて突き進んだが、それがいけなかったのだろうか… トホホ。
はてさて。 いきなりトラブルに見舞われた。
翌日。しょうがないから、ホームディレクトリのファイルだけバックアップ。いったん初期化してやり直すことに。 「はじめっからこうすりゃよかった…」
ところが、壊れたシステムのファイルをコピーするのが一苦労。途中で「かけない」「よめない」で、いくつかファイルが失われたが、2〜3時間費やしてバックアップができた。
システムを新規にインストール。ftp.jp.debian.org/pub/linux/debian 〜 とたどって、i386インストーラーの netinst.tar.gz のアーカイブをダウンロード。いったん解凍($ tar -xvf ‾)してできた debian-installer というフォルダを /boot 以下に移動(# mv ‾)。 grub.cfg のリストに linux と initrd.gzのパスを書き込んで、再起動。HDD上でインストーラを立ち上げた。
~
menuentry "Debian Installer" {
set root='(hd0,msdos1)'
linux /boot/debian-installer/i386/linux
initrd /boot/debian-installer/i386/initrd.gz
}
~
数時間かかって、なんとか新規システムを起動。デスクトップまでたどり着いたまでは良かったが、やっぱり「HDDにエラーがある」と表示が出る。
どうやらこれ、S.M.A.R.TってなHDD内部のデータからエラーを予見して、未然にトラブルを防止するという親切機能にsqueezeのシステムが対応したために、とつぜん「ディスクが過剰に使われてる」とか、CFカードなのに「スピンアップに何万回も失敗してる」とか、「むかしエラーが出た痕跡が…」とか、いらん事ををチクチク報告しては作業の邪魔をするようになったわけだ… 初期化しても、どっかに記録が残ってるらしくて、ディスクを交換するまで警告が出続けるらしい。はっきり言って、うざい…
あとは、プリントサーバにウエブサーバ。ファイルサーバを順次設定して、アップグレード完了。
新規インストールのため、元どおりに設定しなおすのが、また一苦労ですが…
プリンタの設定
まずは、ネットワークプリント用のプリンタの設定をしておく。
1、プリンタとサーバをUSBで接続してシステムにデバイスとして認識させる。
2、ウエブブラウザで、 http://localhost:631 に接続してCUPSのGUIを起動。
3、新規プリンターを追加。ドライバなどを適宜選択。ネットワークで共有する。
サーバの再設定
ウエブサーバの設定
まずはローカルでウエブページサーバとして使っているApache2。
例によってブラウザにサーバのIPを入力すると…
「It works!」
ディフォルトで使用可能の状態だが、公開ページを設定する方法をすっかり忘れた…
以前は/etc/apache2/httpd.conf にあらかじめディフォルト設定の記述があって、それを読み進みながら適当なところだけ修正するだけでよかったのが、今回インストールしたものは、httpd.conf は何も記述のない空のファイル。つまり、ディフォルトからの変更点だけを書き加えるようになっているので、何をどうすればいいのかまったくわからない。
いちおう、http://「サーバのIP」/manual というアドレスをウエブブラウザで開くと、apacheのマニュアルが表示されるので、これをしっかと読んで、環境に応じた設定をする。私の場合はこんな感じ…
~
ServerName 「ドメインネーム」:80
User 「ユーザ名」
Alias /~「ユーザ名」 /home/「ユーザ名」/public_html/
<Directory "/home/*/public_html/">
Options FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
AddDefaultCharset off
</Directory>
ScriptAlias /cgi-bin/ /usr/share/apache2/cgi-bin/
<Directory "/home/*/public_html/cgi-bin/">
Options ExecCGI
SetHandler cgi-script
</Directory>
~
※「ドメインネーム」が無ければlocalhost、「ユーザ名」のところは、公開フォルダ内のファイルを所有する「ユーザ名」に、公開フォルダのディレクトリや、CGIのディレクトリなどは、適宜書き換えてね。
以前の設定では UserDir public_html とかってやると、各ユーザディレクトリでそれぞれウエブページが公開できたような気がするんだけど、今回はモジュールが無効になっててできなかった。もっとも、個人のサーバだから必要ないけどね。それから、Allow from のところは、外のネットからの接続を考えてないなら、all じゃなくて、192.168.0.0/255.255.255.0 とかにしといたほうが安全かも。
あと、CGIフォルダ内の実行ファイルなどは権限を適宜変更。ものによっては、リンクへのパスが異なるので、perlのディレクトリへのリンクを…
# ln -s /usr/bin/perl /usr/local/bin/perl
とシンボリックリンクを作って完了。ばっちりCGIも動いた。
ファイルサーバの設定
Sambaとnetatalkの設定も変わったようなので、一から設定し直しだ。
ウインドウズサーバのSambaの設定はGUIのswatを使う。
http://「サーバのIPアドレス」:901 ##ルートのパスワードで開く。
共有設定の項目を開くとすでにホームディレクトリらしきものが選択できるようになっている。ここを編集して公開ディレクトリのパスを正しく記述して、許可ユーザを登録するだけ。ところが、ウインドウズ側からみると、サーバのアイコンが表示されない(検索しても見つからない)ので、直接エクスプローラのアドレスにNetBIOSを入力する方法でしか接続できない。そこで、
security = USER
ってとこを、
security = SHARE
と、旧sambaのディフォルト設定に戻すことで、ネットワークにサーバアイコンが出るようになった。
ウインドウズ共有プリンタは、あらかじめCUPSで設定しておいたディフォルトプリンタがそのまま使える。swatのプルダウンメニューでプリンタ名を選択するだけだった。
Netatalkの設定
アップルトークサーバのnetatalkも、ディフォルトで各ユーザディレクトリがマック側からマウントできた。ところが、ディフォルトのままだと日本語ファイル名が化けるので、AppleVolume.defaultを編集してやる必要がある。
ところが、以前と仕様が変わって、maccharset:Shift_JIS では受け付けない。ここには maccharset:MAC_JAPANESE と記述しないとマウントできなかった。
それからディフォルトで
:DEFAULT: options:upriv,usedots
というオプションが設定されている。このままだと、隠しファイル(ドットファイル)がマック側でも表示されてウザイ(たぶんOSX仕様になったのだろう…)ので、####usedots と無効とした。
あと、リソースフォーク格納用の .AppleDouble フォルダを極力つくらない noadouble というオプションも一応追加したが、Mac側からアクセスするだけで .AppleDouble フォルダがアクセスしたフォルダの子フォルダ内にまで作られるので、あまり意味はないかも。
それと、ディフォルトではアップルトークがTCP経由でしか使えなくなっている。OS7が現役の懐古趣味の私にとっては問題だ。じつは、squeezeになって起動時間短縮のためか、起動に時間がかかるAppleTalkを初期設定で回避しているだけなので、/etc/default/netatalk という初期設定の2行を編集すれば有効にできる。
~
ATALKD_RUN=yes
PAPD_RUN=yes
~
netatalkを再起動。
# /etc/init.d/netatalk restart
たしかにデーモンの起動に数十倍の時間がかかるが、papdが有効にできれば(AFPDなしでPAPDだけを有効にすることは出来ないらしい…)、Mac標準のLaserWriter8のドライバでCUPSプリンタに印刷できる。
mac側の設定。CUPS設定後に自動的に作られたプリンタのPPDファイル(/etc/cups/ppd/以下にある)をMac側にコピーして、ファイルタイプをTEXTに(ResEditとかで…)しておく。(面倒なら「一般設定」でもまず大丈夫。)これを システムフォルダ:機能拡張:プリンタ記述ファイル:以下に置く。
netatalk側の設定。/etc/netatalk/papd.confを編集。最終行以降に…
~
DefaultPrinter:\
:pr=|lpr -P 「プリンタ名」:op=lp\
:pd=/etc/cups/ppd/「プリンタ名」.ppd:
~
※プリンタ名のところはCUPSで設定されたプリンタ名をあてはめて。
と、追加して準備完了。netatalkの再起動でプリント可能となる。
MacのセレクタからLaserWriterを選ぶと、右側にネットワーク上のプリンタが表示される。これを選択して、「設定※」か「作成」のボタンを押して、プリンタ記述ファイルを選んで設定完了。あとは各種ソフトウエアから普通に印刷の命令を出すだけだ。
私のところでは、モノクロプリントだと問題なかったが、カラーや複数書体を含む書類の場合、ときおり Postscriptエラー で失敗した。(※OS8標準のLaserWriter8のドライバだと”タイプ4”のエラーが出てプリントできなかったので、古い漢字トーク7のドライバを流用した。)
ほかにも、凝ったレイアウトのプリントをしようとするとエラーで失敗することもあるので、ま、普通に標準書体、モノクロ、縦置き、A4プリント以外はやめておいたほうがいいかも… もし、カラーの凝ったやつを印刷したければ「ファイルに出力」のコマンドで、とりあえずポストスクリプト(.ps)ファイルにしておけば、debian側でevinceなどを使って後でプリントすることもできるので…
悲報!
2016年 3月某日 GNU linux Debian 6.0 squeeze がリポジトリから消去されました。
ながらくサーバーとして使用していたHITACHIのサブノート(1999年製)をこの正月に退役させました。 ちょうどその2か月後のサポート終了。
まあ、ちょうどいいタイミングでした。今は別のマシンを jessie (Debian 8.0)で稼働させています。 2世代新しいだけあって、とてもイマ風なインターフェイスで別段モディファイすることもなく、サクサク動いて拍子抜けするほどです。
マシンが新しければフリーOSでも無調整で利用できるようになったんですね。
というわけで、このサイトも役割を終えたというわけです。
ご愛読ありがとうございました。