[ 前のページ ] [ 目次 ] [ 次のページ ]

Debian GNU/Linux 2.1 (Slink) リリースノート - 章 3
アップグレード


お使いのシステムをアップグレードする前に、フルバックアップをするか、 少なくとも失って困るようなあらゆるデータや設定情報をバックアップすることを 強くお勧めします。 アップグレードツールおよびプロセスには高い信頼性がありますが、 それでもアップグレード最中にハードウェアに問題が起きて 惨事が招かれるようなことはありうるのです。

アップグレードに用いるメソッドに関わらず、 まず最初に全パッケージの状態をチェックすることをお勧めします。 そのチェックは、 dpkg -l | lessdpkg --get-selections > ファイル名 とすれば可能ですし、dselect 上でも行なえます。 またアップグレードする前に、 すべてのパッケージ保留 ``hold'' を解除しておくことが望ましいでしょう。 もしアップグレードが必要なパッケージが保留されていたならば、 アップグレードが失敗してしまいます。 パッケージ保留は dselect 上で解除することもできますし、 dpkg --get-selections > ファイル名 で生成されるファイル上の "hold" を "install" に変えるよう編集しても解除できます。 後者の場合は、ルート権限で dpkg --set-selections < ファイル名 を行なってください。

パッケージのインストール作業は、 スーパーユーザ特権で行なわなければなりませんので、 その特権を得るためには、ルートアカウントでログインするか、 su あるいは sudo を使ってください。

アップグレード作業の過程を写しに残しておくために、 /usr/bin/script の利用を強くお勧めします。 -- 実際のところ、dselect での作業 (および記録しておくことが望ましい他の作業すべて) を記録するのに scriptを利用するのもよい考えです。 こうしておけば、 問題が起きても何が起こったのか調べることが可能になります。 script は、引数で指示されるファイル (script ファイル名) やデフォルトのファイル typescript にその写しを書き込みます。

slink にアップグレードする方法には次の二つがあります。 一つは apt-get を直接利用する方法、 もう一つは dselect を利用する方法です。


3.1 apt-get の利用

まだ apt をインストールされていない場合は、 ftp://ftp.debian.org/debian/dists/slink/main/binary-alpha/admin/apt_*.deb をダウンロードしインストールしておくことをお勧めします。 お使いになっているブラウザによっては、 バイナリモードでそのまま直接ファイルにダウンロードするには 特別な操作が必要かもしれません。 例えばネットスケープナビゲータでファイルを取り寄せるためには、 シフトキーを押したままそのリンクをクリックする必要があります。 dpkg -i apt*.deb コマンドをルートアカウントで実行し、 ダウンロードしたパッケージをインストールしてください。

CD-ROM からインストールされている場合は、CD-ROM から直接それをインストールすることができます。 ルートアカウントで以下のコマンドを実行してください。

     
     dpkg -i cd_mount_point/debian/dists/slink/main/binary-alpha/admin/apt*.deb

このときに、apt-get(8) および sources.list(5) の man ページをお読みになっておくことをお勧めします。 また、アップグレードを始める前に apt の設定ファイル /etc/apt/sources.list を編集しておかなければなりません。 デフォルトではインターネットからインストールするように設定されていますが、 他のミラーサイトや、ご自分のローカルミラーを利用できるように /etc/apt/sources.list を修正されても結構です。 なお CD-ROM からインストールされる場合は、CD-ROM からのアップグレード, Section 3.2 をご覧ください。

apt の設定が終了したら、 (ルートアカウントで) 以下のコマンドを実行してください。

     apt-get update
     apt-get -f dist-upgrade

何が起きるのかを確認するために、 apt-get -f dist-upgrade とする方法よりも apt-get -f --dry-run dist-upgrade | less とする方法を好まれる方もいるでしょう。 この方法だと若干時間はかかりますが、 不意の出来事を避けることができるでしょう。

現在インストールされているパッケージの新しいバージョンが利用できるならば、 apt-get dist-upgrade および apt-get upgrade は入手可能なパッケージの一覧を更新し、 各パッケージをアップグレードします。 ただ、インストールされている現行パッケージを削除したり、 まだインストールされていないパッケージを 取り寄せてインストールしたりはしません。 また、インストールされている現行パッケージを新しいバージョンに アップグレードする際に、他パッケージのインストール状態の変更を伴う場合は、 現行バージョンが維持されます。 そのため、dpkgdselect を利用してパッケージの削除や再インストールを行ない、 壊れたパッケージや依存関係を修復する必要もあるでしょう。 apt-get -f dist-upgrade とした後に、 apt-get dselect-upgrade を使ってもよいでしょう。 (apt-get(8) マニュアルページをご覧ください。)

オプション -f (fix) を用いると、apt は、壊れた依存関係のあるシステムを適切に修正しようと試みます。 システムにあるパッケージの依存関係が壊れている場合 apt は作業を行ないません。 手動で調整しなければならないほど、システムの依存構造が壊れている かもしれないからです。 (手動での調整とは通常、 dselectdpkg --remove パッケージ を用いて、問題のあるパッケージを除去することです。)

もし上記の二つのコマンドを実行した後に apt-get が壊れたパッケージの存在を報告してきたならば、 (壊れたパッケージを削除したり、 依存状態の欠損を修復するためにパッケージをインストールするなどして) システムを修復するよう努めてください。 システムを修復できず apt-get が作業を行なえるようにならなかった場合には、dselect メソッドを (apt 以外のバックエンドで) 利用しアップグレードを行なってください。


3.2 CD-ROM からのアップグレード

複数の CD を扱う apt のコードは slink リリースの時点では完全なものではありませんが、 別の方法が利用できます。 まず /etc/apt/sources.list の説明用コメントの 次の最初の一行に、以下の指定を追加してください。

     deb file:cd_mount_point/debian stable main

他の `deb' から始まる行は、その行頭に # をおいてコメントアウトしてください。

一枚目のバイナリ CD を挿入、マウントし、 ルートアカウントで以下のコマンドを実行してください。

          apt-get update 
          apt-get dist-upgrade

既に述べたように、 意図しない出来事を避けるために、 apt-get dist-upgrade を実行する前に apt-get -f --dry-run dist-upgrade | less を実行することも可能です。

一枚目の CD がマウントされている間に、 apt-get install dpkg-multicd としておくこともよい考えです。

次に、一枚目のバイナリ CD をアンマウントし、その代わりに二枚目のバイナリ CD をマウントします。 先ほど指定した /etc/apt/sources.list の行を

          deb file:cd_mount_point/debian stable main contrib

に変更し、先ほどと同様に update と dist-upgrade を繰り返します。

アップグレードが終了したら、最後にいれた CD-ROM をアンマウントします。 ただその CD-ROM はドライブには入れたままにしておきます。 それから dselect を起動します。 [A]ccess のところで、新たに加わった multi_cd インストールメソッドを選択し、デバイス名を正確に入力し、 そのあとに続く質問では全て Enter を押します。 (このとき、二枚目のバイナリ CD-ROM がドライブに入っていなければなりません!) 次に [U]pdate を選びます。 さらに [S]elect を選び、スペースキーを押してヘルプ画面を抜けます。 パッケージセレクションの画面では、まず Shift-D を押し、続いてすぐに Enter を押します。 このときに依存関係の衝突が起こることは十分に考えられますが、 この場合はヘルプ画面が表示されるでしょう。 スペースキーを押してヘルプ画面を終了し、 表示されるパッケージ一覧を確認してください。 この設定されている状態に変更を加えたいとお考えになるかも知れませんが、 それはお勧めできません。 Enter を押して、全ての依存関係の衝突を十分に解決してください。

次に [I]nstall を選んでください。 [I]nstall のあとには、通常さらに [C]onfigure を行なう必要があります。 そうしたら、一枚目のバイナリ CD を挿入して、 同じプロセスを繰り返してください。 (二枚目の CD に収録されている xbase が依存しているパッケージが、一枚目の CD に収録されているために、 dselect ではこのような手続きが必要になります。)

公式 Debian CD セットには、二枚のバイナリ CD があります。 ただ、ベンダによっては non-free や non-US パッケージの全部もしくは一部を収録し、 三枚のバイナリ CD をセットで提供している場合もあります。 もし三枚目のバイナリ CD があるならば、 二枚目の CD をアンマウントし、 三枚目の CD を挿入、マウントしてください。 さらに、先ほど加えた /etc/apt/sources.list の行を

        deb file:cd_mount_point/debian stable non-free non-US

のように変更します。 (もし non-free や non-US がその CD に収録されていない場合、 その指定は削除してください。)

そうしたら、先ほどと同じように、updatedist-upgrade を繰り返してください。 そのあと dselect では、前述の通りに [A]ccess および [U]pdate をやり直す必要があることには注意してください。 非公式な三枚目のバイナリ CD のバージョンによっては、 [A]ccess や [U]pdate を行なう際に、その CD を入れたままにしておけるような構造を持つものもあります。 もしこのような CD をお持ちの場合は、 dselect から三枚の CD に収録されているパッケージ全てに、 同時にアクセスできるでしょう。

「非公式な代替案」として potato バージョンの apt バージョン 0.3.x を利用することもできます。 ただ 0.3.x の apt が未だベータであり、 バグが十分にありうることは、心に留めておいてください。 apt の主要開発者の一人である Jason Gunthorpe は以下のように述べています。

            ちゃんとした解決方法は、potato から `apt' 0.3 をインストールして、
            `apt-cdrom' からそのビルトイン CD 処理機能を利用することです。これ
            に関しては私がそれ用の特別コードを書きましたので、`sources.list' に 
            ``deb http://www.debian.org/~jgg apt/' という行を追加すればそれにア
            クセスできます。そうしたら、`apt-get update; apt-get install apt' 
            を実行してください。
     
            このバージョンは `apt v 3.x.' にリンクされた 最新の glibc 2.0 を含
            んでいます。利用できる `apt' なら何でもいいので、まずそれをインストー
            ルし、ご自分の `sources.list' 上記の行 (と、おそらく第一 CD-ROM の
            ために、間に合わせの ``file:'' uri) を追加してください。それから
            `apt-get install apt' を実行してください。
                    
            次に一枚目のディスクを挿入して `apt-cdrom add' を実行します。それか
            ら二枚目のディスクを挿入して `apt-cdrom add' を実行し、さらに、 
            `apt-get dist-upgrade -u' を 2 回 (あるいは 3 回?) 実行します。


3.3 dselect の利用

この節は、dselect に関するある程度の知識を前提としています。 ともあれ、こちらをお読みの方は、ご自分のシステムがインストール済みで、 それをアップグレードなさろうとしているのですよね? dselect に関する記憶を呼び起こす必要のある場合、 初心者向けの dselect に関する解説が http://www.jp.debian.org/releases/2.1/alpha/dselect-beginner にあります。

さて、dselect 利用の第一段階は、``Access'' メソッドを選択することです。 アクセスメソッドに関するより詳しい情報や、 どのアクセスメソッドを用いるべきかについても、 上記の「初心者のための dselect 入門」 をご覧ください。

dselect 用の apt アクセスメソッドは、 現在利用できるメソッドのうち、最も速く作業を進めることができます。 こちらはパッケージを適切な手順でインストールし設定します。 パッケージの展開時にすべての依存関係が解決されますので、 その作業は一度で済みます。 ただ、 apt アクセスメソッドは、 まだ複数の CD を適切に扱うことができません。 また、お使いになるシステムに壊れたパッケージがあって、 apt-get upgrade が利用できない場合は、 apt アクセスメソッドも失敗してしまいます。

dselect 用 `mounted' アクセスメソッドは、 まず最初に必要なインストール作業を減らすよう、 先行依存するパッケージをインストールし設定します。 `mountable' アクセスメソッドも、 まず最初に先行依存するパッケージをインストールし設定しようと試みますので、 比較的作業を速く進めることができます。 (これらのアクセスメソッドには、先行依存の扱いに関する既知の問題があります。 この問題が起きた場合には、上記の説明にしたがい apt メソッドを利用してください。)

複数の CD を利用する際に推奨されるアクセスメソッドは multi_cd メソッドです。 このメソッドを利用するためには、 まず最初に dpkg-multicd

     dpkg -i cd_mount_point/dists/slink/main/binary-alpha/base/dpkg-multicd

あるいは

     apt-get install dpkg-multicd

としてインストールします。 このメソッドの利用については、一枚目の CD にある README.multicd と、 インストール後に利用できる /usr/doc/dpkg-multicd/readme.txt.gz を参照してください

hamm バージョンの `http' アクセスメソッドは、 先行依存を適切には扱いませんので、お勧めできません。 このバージョンの dpkg-http をアップグレードに利用した場合は、 各先行依存を見つけたときに Abort automatic installation (Y/n)? というプロンプトが表示されます。 hamm バージョンの dpkg-http にはバグがありますので、 このときは Y の代わりに Ctrl-C を入力し、 必要なパッケージを手動でインストール (dpkg -i) してください。 そうしたら dselect が次の先行依存を見つけるよう再開されるでしょう。 時間を節約するためには、 libc6libncurses4libreadlineg2libstdc++2.9slang1libhtml-parser-perl の各 slink パッケージを手動でインストールしておくとよいでしょう。

なお、どんなアクセスメソッドを利用される場合も、 新たなパッケージを追加する前に、 まずは既存のパッケージをアップグレードすることをお勧めします。 初めは、dselect の [A]ccess、[U]pdate および [S]elect の各作業段階を行なってください。 そして、``Select'' の作業段階に入ったらすぐに `D' (shift-D) 続いて Enter を押します。 競合および依存解決に関する画面が表示されるでしょう。 それらの競合を解決 (通常は単に Enter を押すだけで結構です) した後で、[I]nstall を実行し、 さらにインストールした全パッケージを単にアップグレードするよう [C]onfigure を実行してください。 このあとで、お望みならば [Select] および [Install] モジュールを用いて、 追加するパッケージをインストールしてください。

たくさんのパッケージを dpkgdselect でインストールする場合は通常、システム全体の設定が終了するまでに、 インストールおよび設定の作業を何回か繰り返すことが必要になります。 選択されるアクセスメソッドにもよりますが、インストールの過程の間 [U]pdate の作業を繰り返すことが望ましいでしょう また [U]pdate の作業の前に、dselect を終了させ、 それをすぐに再起動することも有益でしょう。


3.4 一般的な注意事項

アップグレードするマシン上では、アップグレード作業を xdm で管理される X セッションから行なってはいけません。 アップグレード時 xdm および xfs は停止されますので、X が突然シャットダウンして アップグレードが半ばにして中断してしまいます。 もしそのマシンがブート時に自動的に X を起動するように設定してあった場合、その修正は困難です。 また、もし使用中の X サーバが xfs フォントサービスのためにアップグレード中のホストを参照している場合は、 xfs が停止したとき フォントサーバへの接続が切れてしまいます。 このことは致命的なことではありませんが、煩わしいことでしょう。 なお、お使いになっている X セッションが xdm に制御されているかどうかはっきりしない場合は、 Linux の仮想コンソールからご自分のマシンをアップグレードしてください。

また、まず最初に slink から netstd および telnetd パッケージをインストールしておかない限り、 アップグレードを telnet 接続による遠隔操作で行なうべきではありません。 旧 netstd パッケージが削除された時点で、 telnet 接続が切れてしまい、telnetd パッケージをインストールするまで再接続できなくなります。

なお、Debian-JP for 2.0 の xfree86-freetype パッケージをインストールされている場合、 X パッケージ群のアップグレードには注意が必要です。 Hamm から Slink への upgrade における xfree86-freetype パッケージの移行についての注意 をお読みください。


[ 前のページ ] [ 目次 ] [ 次のページ ]
Debian GNU/Linux 2.1 (Slink) リリースノート
version 2.1.11, 26 June, 1999
Bob Hilliard hilliard@debian.org
Adam Di Carlo