2005/06/15(水) [n年前の日記]
#8 [debian] _dist-upgrade の顛末を書いておきます
_アップグレードトラブルをできるだけ避けるには
_(via [MM]ただのメモ - MM/Memo)
Debian Linux において、Woody から Sarge へ更新する際に起きうる事態と、もしかすると回避できるかもしれない策の数々。apt の使い方を未だによく知らない自分なので、後学のために引用、というかメモさせてもらおう…。
_(via [MM]ただのメモ - MM/Memo)
Debian Linux において、Woody から Sarge へ更新する際に起きうる事態と、もしかすると回避できるかもしれない策の数々。apt の使い方を未だによく知らない自分なので、後学のために引用、というかメモさせてもらおう…。
* apt-get -d dist-upgradeでまずダウンロードしておく。
ネットワークからダウンロードするようにしており、かつディスクに余裕があるときには「ダウンロードしてから」アップグレード作業をしたほうが安心かと思います。ちなみに、PCMCIAカード+NFSでfile://でダウンロードするようにしている場合、pcmcia-csの更新でネットワークが切れてインストールがそこでコケる、ということがあるので、最初にcopy://にしておいて pcmcia-csをダウンロードしておくという手がありますね。
* いきなりdist-upgradeをかけない。
実働環境のアップグレードの場合、いきなりdist-upgradeだと、もし途中でエラーが出たときに一体何が起きたのかわからないまま大量のゴミメッセージに埋もれてしまうことになります。apt-get -s dist-upgradeをリダイレクトして何が更新されるのかをファイルに記録しておき、これを見ながら「これが基幹そうだな」と思うものをapt- get installで手動で1つずつ更新します。たとえばssh、bind、MTAあたり。その他、要求サービスに応じて。libcはどうせほかのものに紐付けられて入るので、あえて明示してインストールする必要はないでしょう。止まってると困るというものが全部片付いたら、あとはdist-upgrade。
* apt-get -fやdpkg --configure -aを駆使する。
パッケージ間でファイルが移動するなどした場合、conflictして更新できない、と言われることがあります(本来はうまく解決できるようにしてるはずなのですが、順番をうまくaptが解析できないとこうなっちゃう)。でそこで作業が止まってしまうと。このとき半インストール状態のものが多数あるので、dpkg --configure -aでそれを済ませます(依存問題で2回くらい実行しないとだめなこともある)。apt-get -f installで依存を満たす作業も必要かもしれません。ひとまず保留のものが0になったら、再度dist-upgradeを実行します。
* 作業記録を残す。
上記のアップグレードを施す前に、apt-listchangesパッケージを入れるとよいでしょう。dpkg- reconfigureでNEWSとchangelogの両方をメールするようにしたほうがいいかと思います。アップグレードの作業の前にはscript を実行し、ファイルに手順を記録します(ディスクフルになって別の問題が起きないように、余裕のある場所で)。リモートでの作業の場合には途中でSSHが不意に切れた、ということも考えてscreenも併用したほうがよいです(install-manualにもあるようにtelnet、rshは処理途中で切断される可能性が高いので使ってはだめ)。
[ ツッコむ ]
以上です。