Fedora Upgrade 12→13 その22010年11月09日 13時36分

以前にテスト環境でFedoraをアップグレードしてから、本番環境ではやらずに放置していた。しかしもうFedora14もリリースされたみたいだしそろそろやるか。


途中、

ERROR with rpm_check_debug vs depsolve:
gnupg is needed by spamassassin-3.3.1-2.fc13.i686

というエラーが出たが、spamassasinをリムーブして再度実行したらスムーズにインストールが進んだ。その他は、事前にテスト環境で試していただけに大したトラブルもなく終了。

それよりも以前Fedora10から12にアップグレードしたときに表示されなくなっていたモニターが表示されるようになった。ドライバーが対応したのかな?

sudo でメタキャラクタ(ワイルドカード)が使えない2010年06月15日 08時34分

ずいぶん前から気にはなっていたが、放置していたこと。Linuxでsudoコマンドを使いroot権限で作業する時に、ワイルドカード(「*」等)が使えない。そのため複数のファイルをまとめてコピーしたり削除したりする時に、とても不便。

今更ながら解決方法を調べてみた。例えば

「sudo ls /var/named/chroot/etc/n*」

というコマンドを実行したい時には、

「sudo -s "ls /var/named/chroot/etc/n*"」

という感じに、オプション「-s」を付け、実行したいコマンドは「"」で囲めばいいらしい。はっきりいって理由は理解できていない。しかし、こういうものだと思っておけばずいぶん楽になる。

2010/01/05

Fedora 14にアップグレードしたら、上記の方法ではできなくなった。

sudo sh -c "コマンド" でできる。

Fedora12→13アップブレードでbind起動せず2010年06月09日 10時50分

久しぶりにLinuxネタ。

そろそろFedoraを12から13にアップグレードしようかと思う。しかしもちろんその前にテスト環境で試してから。

いつも通り、

rpm -Uvh fedora-release-notes-(バージョン).noarch.rpm

rpm -Uvh fedora-release-(バージョン).noarch.rpm

yum clean all

yum -y upgrade でアップグレード 。時間は掛かったが正常に完了したよう。次にメール、DNS、webなど各デーモンが正常に稼動しているかを確認。するとbindが起動していないことに気付く。またbindか・・・。

Fedoraをアップグレードしたことで、bindも9.6.1-13.P2.fc12から9.7.0-10.P2.fc13になっていた。まずbindを手動で起動してみる。すると結構長いエラーが表示された。要点としては

「zone ○○○○/IN: NS '○○○○' has no address records (A or AAAA)」

「zone ○○○○/IN: not loaded due to errors.」

「localhost_resolver/○○○○/IN: bad zone」

といった具合。このパターンのエラーが4回ほど○○○○の部分だけ変わって繰り返し表示される。何となく雰囲気からゾーンファイルに問題があるであろうことは分かる。

設定を1から見直すと、まず「named.conf」に「include "/etc/named.rfc1912.zones";」と記述してあり、その「named.rfc1912.zones」ファイルにエラーメッセージの○○○○がゾーンとして記述してある。そしてそこで「file "named.localhost"」などとゾーンファイルが指定してある。どうやらここで指定されているゾーンファイル「named.localhost」「named.loopback」「named.empty」に問題があるようだ。

ゾーンファイルの書き方の何が問題なのか?ネットでゾーンファイルの見本を検索したらすぐにわかった。上記3つのゾーンファイルにはNSレコードが

「  NS   @」

と記述されていた。しかし今は

「  NS   localhost.」

と記述するらしい。ちなみに普通の自作のゾーンファイルもNSレコードで記述したネームサーバーをAレコードでも記述しないと同様のエラーが出るようだ。

以上の内容を修正したら、bindはエラーなく正常に起動するようになった。

Fedora10→12アップグレードで画面表示されず2009年11月30日 13時20分

 Fedora10から11へのアップグレードがどうにもうまくいかないため、1つ飛ばしてFedora12にアップグレードしてみることにした。

   とりあえずテスト機にFedora10をインストールし、本番環境と同じ状態を作る。そしてFedora12へのアップグレードを行ってみた。あまりにもすんなり完了。しばらくの間、様子を見ながら動かしたが、何も問題は起きなかった。これなら本番環境でもいけそう。

 いよいよ本番環境でアップグレードを実行。途中依存性のエラーは幾つか起きたが、何とか回避。大きなトラブルもなくアップグレードは完了した。しかし、サーバーの再起動をしたときに大問題発生!なんと画面が表示されない・・・
 正確に言うと、起動時、BIOSの画面のあとFedoraのカーネル選択の画面は出る。しかしその後、ログインユーザーとパスワードを入力する画面が表示されない。ディスプレイは「入力信号無し」の状態になってしまう。
 何度か再起動してみたが、この状態は変わらなかった。ただ不幸中の幸いなのは、named、postfix、dovecot、httpdといった必要なデーモンは起動しているため、ユーザーはとりあえず問題なく使えていることだった。

 さて、ここからどうしたものか。とりあえずディスプレイモニターを別のものに取り替えてみるが、状況変わらず。こうなると、方法は1つしかない(と思う)。

「画面の見えない状態でログインし、SSHを起動、遠隔でログインする。」

 とりあえず、何も表示されていないモニターに向かって、ユーザー名とパスワードを打ってみる。ただ、画面に何も表示されていないため、本当にログインできているのかさえ分からない。(とりあえず、キーボードのNumLockランプなどは効くので、キーボードは生きているっぽい。) そして「pwd | mail root」とコマンドを入力して、メールを送ることで可視化を試みる。何度か失敗した後、ついにメーラーのrootアカウントでメールを受信することに成功。ログインできていることを確認する。

 後は、/etc/init.d/ディレクトリに移動。sshデーモンを起動し、sshを遮断するiptablesデーモンを一時的に停止する。そして「Putty」というSSHクライアントソフトからサーバーに遠隔ログインを試みる。するとPuttyの画面にログイン画面が表示され、無事rootでログインすることができた。

ここまで来れば、とりあえず一安心。しばらくは、この状態でサーバーを運用し、問題の解決方法を探っていこうと思う。

fedora10→11で「cpio: MD5 sum mismatch」2009年11月25日 15時49分

 fedoraを10から11にアップグレードしようと思い、「fedora-release-notes-11.0.0-2.fc11.noarch.rpm」をダウンロードしてきて「rpm -Uvh」コマンドを実行した。しかし「cpio: MD5 sum mismatch」とエラーができてアップグレードできない。以前にもfedoraのアップグレードで同じ様なエラーが出た経験がある。そのときは単にパッケージが壊れていただけなので、パッケージの再取得をしたら解決した。しかし、今回は何度ダウンロードし直しても同じエラーが出る。どうやら違う原因らしい。

 あれやこれや検索し試していると、どうやらrpmのバージョンが問題らしいことが分かった。「yum update rpm」でrpmをアップデートし再度トライしてみると、今度はエラーが出なくなった。

 しかしここしばらく、fedoraの10や11を入れたり抜いたりしているが、毎回違うエラーに悩まされるな。

bind起動時に「symbol lookup error」2009年11月18日 16時53分

テスト機にFedora10を再インストールした。bindの設定を行い、いざデーモンを起動しようとしたのだが、「/usr/sbin/named: symbol lookup error: /usr/sbin/named: undefined symbol」とエラーが出て起動しない。最初にテスト機にインストールした時は起きなかったのに・・・。

またしてもネットで解決策を探す。どうやらbindを最新のものにアップデートすれば直るらしい。しかし、bind、bind-chrootとも最新のものになっていた。さらに探ると「bind-libs」をアップデートする必要があるらしい。「yum update bind-libs」を実行する。するとこちらは最新のものにアップデートされた。そして、今度は正常にbindのデーモンを起動することもできた。

しかし、わずか数週間の違いで、こんなことが起きるのか?ますます深みにはまっていく・・・。

Fedora11へのアップグレード進まず2009年11月18日 16時26分

テスト環境でのアップグレードに成功したので、今度はいよいよ本番環境でFedora11へのアップグレードに挑む。いつも同様、「rpm -Uvh」でfedora-release-notes-(ver).noarch.rpm  と fedora-release-(ver).noarch.rpm をアップグレードし、「yum -y upgrade」を行った。しかし、「gcc-gfortran」とやらでアップグレードがエラーで終わってしまう。試しに「gcc-gfortran」のrpmパッケージを個別にインストールしようとしても、「Header V3 RSA/SHA1 signature : BAD keyID d22e77f2」というエラーが出てインストールできない。ダウンロードした「gcc-gfortran」のrpmパッケージを「rpm --checksig」してみても「RSA sha1 (md5) pgp md5 NOT OK」とエラーが出る。

色々海外のサイトを調べて回った結果、どうもFedora9から10へ、そして11へとアップグレードする際に出るエラーらしい。確かにテスト環境で、Fedora10からインストールを始めた場合は、このようなエラーは出なかった。

解決方法を探り、「rpm --import」でRPM-GPG-KEYをインポートしなおしてみたりしたのだが、一向に解決しない。結局、そうこうしているうちに、Fedora12がリリースされた・・・。もう11は飛ばして12にしてしまおうか。

Fedora11のyum update で依存エラー2009年11月12日 10時58分

先日、Fedora11にアップグレードしたサーバーで、「yum update」をしてみた。すると「libnetfilter_conntrack.so.1 is needed by package iptstate-2.2.1-5.fc11.i586(installed)」というエラーが出て、アップデートできない。なんとなく「libnetfilter」というものが依存の関係上必要であると言われているのは分かるのだが。

解決策をネットで探すと、海外サイトで発見。噛み砕いて言うと、どうやらFedora11には「libnetfilter_conntrack.so.3」というのが入っているらしいが、iptsate-2.2.1-5という奴が「libnetfilter_conntrack.so.1がまだ必要だよぅ」といってゴネているらしい。

解決策:

yum --sikip-broken update

で依存関係の不具合を無視してアップデートする。今度は無事に成功。しかし、このまま依存関係問題を放置でいいのかは不明。

bind-chroot環境での「named-checkconf」2009年11月05日 14時59分

久しぶりにbindの設定ファイルを「named-checkconf」でチェックしてみた。Fedoraを10から11にアップグレードしたことで、bindのバージョンも「9.5.2-1.fc10」から「9.6.1-6.P1.fc11」に上がっていたので、まあ念のため。

ところが、「named-checkconf □ named.conf」とコマンドを入力しチェックを行うと、ゾーンファイルが見つからないというエラーが出る。デーモンは問題なく起動しているのだが。久しぶりにやるから、やり方に問題があるのかな?ネットで調べてみると、「named-chroot」でchrootしている場合はパラメータの指定が必要らしい。そうだったかなぁ?

named-checkconf □ -t /var/named/chroot □ /etc/named.conf

こういう形で入力する必要がある。うむ、サーバーを立ち上げた当時にやったはずだが、全く憶えていない。そして、すぐに忘れるだろう。

Fedora11にアップグレードしたらapache起動せず2009年11月05日 13時37分

テスト機のFedora10をFedora11にアップグレードしていたら、途中でハードディスクが壊れ、結局クリーンインストールすることに・・・。しかしいきなり11はインストールせず、10を入れてからアップグレードすることにする。あくまで、テストなんで。

一通りyumでアップグレードした後、サーバーを再起動してWeb、メール、DNSなどが正常に起動しているかを確認する。メール(postfix、dovecot)とDNS(bind)はきちんと起動していた。しかしWeb(apache)が起動していない。デーモン起動時に「httpd.conf」に「Syntax err」が起き、なにやらファイルかディレクトリがなく起動できないと言われている。apacheの設定ファイル「httpd.conf」に問題があるのは間違いなさそう。試しに、apacheをyumでアップグレードした際に自動で作られた「httpd.conf.rpmnew」を「httpd.conf」と交換して起動してみたら、すんなり起動した。旧バージョン(2.2.11-2.fc10)と新バージョン(2.2.13-1.fc11)で何か記述が違うのかな?diffコマンドで新旧の「httpd.conf」ファイルを比較してみる。すると、旧ファイルにはあった、

「LoadModule file_cache_module modules/mod_file_cache.so」

「LoadModule mem_cache_module modules/mod_mem_cache.so」

の記述が新しいファイルにはなくなっていた。試しにこの2行をコメントアウトして旧「httpd.conf」ファイルでデーモンを起動してみたら、今度は正常に起動することができた。

終わってみれば大した問題ではないが、これが本番環境で起きると結構あせるもんだ。テストは大事。あらためて思う。