[ 前のページ ] [ 目次 ]

Debian GNU/Linux 2.2 (`potato') Alpha リリースノート
章 3 以前のリリースからアップグレードする


3.1 アップグレードに関する情報

GNU LibC 2.1 ではソースおよびバイナリにおける上位互換性が 保たれていますので、以前のリリースに収録されていた大半のプログラムは、 (他のものはわかりませんが) この新リリースでも動作するでしょう。 Debian GNU/Linux 2.2 のパッケージはすべて この新環境で動作するようにセットアップされていますが、 もちろん、この新リリース上でプログラムの再コンパイルを行なうとしても、 ソースに変更を加える必要はほとんどないでしょう。 しかし、ルールには例外がつきものですので、 ご自分のローカルプログラムの中には、 新しい glibc で適切に動作させるために、 修正や再コンパイルが必要になるものがあるかもしれません。

カーネル 2.2 および glibc 2.1 の下で動作する場合、 システムは Unix98 PTY をサポートするために `devpts' 仮想デバイスを追加して自動的にマウントします。 また、いくつかのデーモン (Unix サーバ) は、 これらの新しいデバイス (つまり /dev/ttyp* の代わりに /dev/pts/*) を使うよう自動的に切り替わります。

PC プリンタデバイスは 2.0.x の場合 lp1 から始まりましたが、 2.2.x カーネルの場合 lp0 から始まります。 そのため、 (/dev/lp1 の代わりに /dev/lp0 を、 /dev/lp2 の代わりに /dev/lp1 をというように) こちらを利用するよう、 お使いの printcap や他の設定ファイルを修正してください。

2.2 カーネルを動作させる準備はほとんど 2.1 リリースで行なわれたことから、 新カーネル利用への移行はスムーズに行なわれました。 しかし、主にネットワーク関連ではいくつかの問題も残っています。 ネットワーク管理者は次の二つのことに気が付くでしょう。 一つはファイアウォール管理ユーティリティ ipfwadmipchains に置き換えられたことです。 ファイアウォールを機能させ続けるために、netbase をアップグレードすると、 ラッパースクリプトにシンボリックリンクを張るかどうか尋ねられます。 なお、 /usr/share/doc/netbase/ipchains-HOWTO.txt.gz を読んだ上で、 ファイアウォールの設定を ipchain に適切なものに更新することもできます。 また、古い Debian インストーラで設定された /etc/init.d/network スクリプトは、新カーネルではエラーメッセージを表示します。 こちらは、このファイルの route 設定に、適切な `netmask' and `dev' オプションを付け加えることで修正できます。 なお、極めて少ない RAM しか搭載していないマシンの場合、 残念ながらこのカーネルアップグレードには問題があるかもしれません。

アプリケーションにおける PAM へのアップグレードは、 可能な限りシームレスかつ完全に行なわれます。 多くの場合、その新しい設定を導入しても、 PAM 導入前の古い設定の場合と動作は変わりません。 ただ、すべての場合でそうであるとは限りません。 もし設定に何か変更を加えなければならない場合は、libpam-doc パッケージをインストールしてみてください。 こちらには、PAM ライブラリのあらゆる側面を網羅した文書のほか、 新しい認証機構をサポートするように既存の非 PAM アプリケーションを 修正するためのヒントも収録されています。

PAM アップグレードに伴う主要な変更事項の一つが、 メイン login パッケージへの secure-su のマージです。 shellutils パッケージに収録されていたデフォルトの su は、 本リリースでは login パッケージに収録されており、 PAM への統合化はより完全によりシステム全体に及ぶものとなっています。 デフォルトの su を利用していた場合、 新しいバージョンにアップグレードしても何の変化にも気付かないでしょう。 しかし、旧式の secure-su パッケージを利用していたユーザは、 新しい PAM のセットアップとの互換性を確かめるために、 設定をチェックしなければならないでしょう。

このリリースには Perl の二つのバージョン 5.004 (perl-5.004* パッケージ群) と 5.005 (perl-5.005* パッケージ群) が収録されていることに気が付くでしょう。 より新しいバージョンである後者を利用し、 古いバージョンを削除することをお勧めします。 古いバージョンは、プログラマの都合を考えて、 互換性のためにのみとってあるものです [1]。 新しい lib*-perl パッケージに収録されている Perl モジュールをインストール している場合や、ご自分のスクリプトの中で利用している場合は、 (update-alternatives を利用して) /usr/bin/perl のシンボリックリンクを Perl 5.005 を指すように設定しなければなりません。 これを行なわなければ、なにか問題が起こるでしょう。

free および non-free ソフトウェアを分けて管理するために、Debian non-US アーカイブの編成が若干変更されていることにはご注意ください。 こちらにアクセスする際に apt をご利用される場合は、 /etc/apt/sources.list にある non-US アーカイブ用の指定を以下のように変更する必要があります。

     deb http://non-US.debian.org/debian-non-US potato/non-US main contrib non-free

以前の (netbase パッケージで提供される) inetd のバージョンには、inetd が停止した際に接続中であった内部サービスによって inetd の再起動を妨げられてしまうというバグがありました。 このバグは現行の netbases パッケージでは修正されていますが、 古い netbases パッケージにはまだこの問題が残っています。 inetd が適切に再起動できないことが判明した場合は、 動作している既存の inetd プロセスや、"-discard" あるいは "-echo" といったプロセスを調べてください。 また、psmisc パッケージをインストールされている方は、 以下のコマンドをルートアカウントで実行してください。

     sed 's/[[:space:]][[:space:]]*/ /g' /etc/inetd.conf |
                 grep '^ *[^#]' | cut -d" " -f1,3 |
                 while read serv type; do
                     fuser -n $type $serv;
                 done

こうすることによって、どのプロセスが inetd の関与するポートを利用しているを調べることができます。

smail MTA のパッケージは、 テストサイクル中に解決されなかったその深刻なバグのために、 このリリース 2.2 に収録されていません。 なお、最新の smail パッケージは、開発版ディストリビューションや、 http://www.fs.tum.de/~bunk/smail.html にあります。

本リリースに収録された新しい XFree86 や他の xserver-* パッケージは、2.1 リリースに収録されていたもの以上に、 さまざまなグラフィックハードウェアを幅広くサポートしており、 特に 3D アクセラレートカードのようなより新しいグラフィックカード用の ドライバも含んでいます。 なお、どの X サーバを選択すべきか正確に分からない場合は、xviddetect プログラム (xviddetect パッケージに収録) をお試しください。 このプログラムは、PCI/AGP バスに関する情報を元に必要となる X サーバの名前を出力してくれます [2]。

もし使用中の X サーバが xfs フォントサービスのためにアップグレード中のホストを参照している場合は、 xfs が停止したとき フォントサーバへの接続が切れてしまいます。 このことは致命的なことではありませんが、煩わしいことでしょう。 なお同様のことは他のデーモンに関しても起きうるので、ご注意ください。


3.1.1 改名されたパッケージ

以下で示されるようにいくつかのパッケージが改名されました。 各パッケージには Conflicts: や、Replaces:、Provides: フィールドが付けられており (あるいはダミーパッケージが提供され)、 全部ではありませんがほとんどの場合、新しいパッケージが、 古いものと置き換えられるなどして自動的にインストールされます。

       ada-rm              ->    gnat-doc
          [3]
       alsa-modules        ->    alsa-base
       alsalib             ->    libasound0.4
       ax25-utils          ->    libax25
       blt8.0-unoff        ->    blt8.0
       c-client-dev        ->    libc-client4.7-dev
       console-tools-data  ->    console-tools
          [4]
       cti-ifhp            ->    ifhp
       cwnn                ->    freewnn-cserver
       cwnn-dev            ->    freewnn-cserver-dev
       data-dumper         ->    perl-5.005-doc
       dhcp-beta           ->    dhcp
       dhcp-client-beta    ->    dhcp-client
       dhcp-relay-beta     ->    dhcp-relay
       egcc                ->    gcc
       egcs-docs           ->    gcc-doc
       emacspeak-bs-tcl, emacspeak-dt, emacspeak-dt-tcl ->    emacspeak-ss
       eterm-backgrounds   ->    eterm
       fte-cfgdocs         ->    fte-docs
       fvwm                ->    fvwm1
       fvwm2               ->    fvwm
       gltt2               ->    libgltt2
       gltt2-dev           ->    libgltt2-dev
       gmp2                ->    libgmp2
       gmp2-dev            ->    libgmp2-dev
       gnome-gnobots       ->    gnome-gnobots2
       gnome-gnothello     ->    gnome-iagno
       gnome-gyahtzee      ->    gnome-gtali
       gsl                 ->    libgsl0
       gsl-dev             ->    libgsl0-dev
       gstep-base          ->    gstep-base0
       gstep-base-dev      ->    gstep-base0-dev
       gstep-extensions    ->    gstep-extensions0
       gstep-gui           ->    gstep-gui0
       gstep-gui-dev       ->    gstep-gui0-dev
       gstep-guile         ->    gstep-guile0
       gtkicq              ->    gnomeicu
       intlfonts-arabic    ->    xfonts-intl-arabic
       intlfonts-asian     ->    xfonts-intl-asian
       intlfonts-chinese   ->    xfonts-intl-chinese
       intlfonts-chinese-big ->    xfonts-intl-chinese-big
       intlfonts-european  ->    xfonts-intl-european
       intlfonts-japanese  ->    xfonts-intl-japanese
       intlfonts-japanese-big ->    xfonts-intl-japanese-big
       intlfonts-phonetic  ->    xfonts-intl-phonetic
       ivtools             ->    ivtools-unidraw
       kwnn                ->    freewnn-kserver
       kwnn-dev            ->    freewnn-kserver-dev
       lam                 ->    lam-runtime
       lesstifg-dbg        ->    lesstif-dbg
       lesstifg-dev        ->    lesstif-dev
       libapache-mod-auth-sys ->    apache-common
       libapache-mod-put   ->    apache-common
       libatalk1           ->    netatalk
       libatalk1-dev       ->    netatalk-dev
       libc6-doc           ->    glibc-doc
       libdatecalc-perl    ->    libdate-calc-perl
       libg++2.8.2-dev     ->    libg++2.8.1.3-dev
       libgg0              ->    libgii0
       libgg0-dev          ->    libgii0-dev
       libggi1             ->    libgii0, libggi2
       libgnome0           ->    libgnomesupport0
       libjpegg-dev        ->    libjpeg62-dev
       liblockdev0-perl    ->    liblockdev1-perl
       liblockdev0g-dbg    ->    liblockdev1-dbg
       liblockdev0g-dev    ->    liblockdev1-dev
       libmd5-perl         ->    libdigest-md5-perl
       libpam0g-util       ->    libpam-runtime
       libwcsmbs, wcsmbs-locale-ja ->    locale-ja
       libwine0.0.971116   ->    libwine
       libxml0             ->    libxml1
       maplay              ->    maplay3
       mysql-base          ->    mysql-gpl-client, mysql-client
       mysql-dev           ->    libmysqlclient6-dev
       newt0.25-dev        ->    libnewt-dev
       open                ->    console-tools
       palmpython          ->    pyrite
       perl                ->    perl5
       perl-base           ->    perl5-base
       popt                ->    libpopt0, libpopt-dev
       ppp-pam             ->    ppp
          [5]
       ptx                 ->    textutils
       python-bsddb, python-curses, python-misc, python-net ->    python-base
          [6]
       python-mysql        ->    python-mysqldb
       python-pil          ->    python-imaging
       r-pdl               ->    pdl
       sgmlspm             ->    libsgmls-perl
       smbfsx              ->    smbfs
       sorcerer            ->    pccts
       t1lib0-bin          ->    t1lib-bin
       t1lib0-dev          ->    t1lib-dev
       tcd                 ->    gnome-media
       timezones           ->    libc6
          [7]
       tm                  ->    wemi
       toshiba-fan, toshiba-hotkey ->    toshutils
       v-bin               ->    libv-bin
       v-dbg               ->    libv-dbg
       v-dev, vm-dev       ->    libv-dev
       v1g                 ->    libv1.22
       vnc-doc             ->    xvncviewer, vncserver
       wcsmbs-locale-ko    ->    locale-ko
       wnn                 ->    freewnn-jserver
       wnn-common          ->    freewnn-common
       wnn-dev             ->    freewnn-jserver-dev
       www-search          ->    libwww-search-perl
       wxxt1               ->    libwxxt1
       wxxt1-dev           ->    libwxxt-dev
       xfntbig5p-cmex24m   ->    xfonts-cmex-big5p
       xfntil2             ->    xfonts-biznet-iso-8859-2-{base,75dpi,100dpi}
       xntp3-doc           ->    ntp-doc
       xpm-bin             ->    xpm4g-dev
          [8]

この一覧の作成には万全を期していますが、 まだ何か不備があるかもしれません。


3.1.2 分割されたパッケージ

2.1 (slink) から 2.2 (potato) への移行にあたって、 たくさんのパッケージが、二つないしそれ以上の数に分割されています。 これらの分割は、 オリジナルパッケージがさまざまな機能をセットで提供していること、 そのすべての構成物を利用するユーザがいらしたとしても少ないことを 考慮してのものです。 パッケージによっては、インストールの際にこの分割に関する注意を表示します。 またパッケージ説明にその旨が記述されているものもありますし、 それに関する記述がないものもあります。

もしお使いになっているパッケージで、 いくらかあるいはすべての機能が欠けているようでしたら、 以下の一覧を確認し、以前と同じ機能を発揮させるために さらにパッケージをインストールする必要があるのかどうかを 確かめてください。 これで問題が解決しない場合は、各パッケージの changelog を確認してください。こちらは、 /usr/doc/パッケージ名/changelog.Debian.gz にあります。

以下は分割されたパッケージの一覧です。 (こちらの一覧は不完全かもしれません。)

       gmc:
         mc
         gmc
         mc-common
          [9]
       libpgtcl:
         libpgtcl
         pgaccess
       mozilla:
         mozilla
         libnspr3
         libnspr3-dev
       netbase:
         netbase
         tcpd
         libwrap0
         libwrap0-dev
       netstd:
         bootp
         bootparamd
         bootpc
         finger
         fingerd
         fping
         ftp
         ftpd
         icmpinfo
         pidentd
         rdate
         rdist
         routed
         rsh-client
         rsh-server
         ruptime
         rusers
         rusersd
         rwall
         rwalld
         rwho
         rwhod
         tftp
         tftpd
         traceroute
         wdsetup
          [10]
       perl-base:
         perl-base
         perl-5.004-base
         perl-5.005-base
          [11]
       perl:
         perl-5.004
         perl-5.004-doc
         perl-5.005
         perl-5.005-doc
          [12]
       postgresql:
         postgresql
         postgresql-client
         postgresql-test
       vim:
         vim
         vim-gtk
         [13]


3.2 アップグレード前に必要な作業

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

バックアップを取っておきたい主要なものとしては、 /etc および /var/lib/dpkg の収録物や、 dpkg --get-selections の出力があげられるでしょう。

ssh 経由でシステムにアクセスしているユーザは (少なくとも) アップグレードの最中になって そのことに気付いて、作業を中断させたくはないでしょうが、 計画中のアップグレードを行なう前に、 お使いのコンピュータのユーザ全員にその旨を告知しておくのも賢明です。 十分な用心を怠りたくないならば、 アップグレード前にユーザパーティション (/home) をアンマウントしバックアップしておいてください。

ディストリビューションのアップグレードは、テキストモードの仮想コンソール (あるいは直接接続されたシリアル端末) からローカルで、 あるいは ssh リンク経由でリモートで行なってください。

telnetrloginrsh を使って アップグレードを行なったり、 アップグレードを行なう当のマシン上の xdm の管理下にある X セッションから アップグレードを行なってはいけません。 というのも、アップグレードの最中に これらのサービスは中断させられてしまうからです。 そのためアップグレード半ばにして システムにアクセスできなくなってしまいます

アップグレードに用いるメソッドに関わらず、 まず最初に全パッケージの状態をチェックすることをお勧めします。 そのチェックは、

     dpkg -l | pager

としたり、

     dpkg --get-selections > ファイル名

(として ファイル名 を調べる) とすることで可能ですし、 dselect 上でも行なえます。

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

アップグレード作業の過程を写しに残しておくために、 /usr/bin/script の利用を強くお勧めします [14]。 こうしておけば、問題が起きても何が起こったのか調べることが可能になり、 必要ならばバグ報告として正確な情報を提供できます。 その記録を始めるには、次のようにしてください。

     script -a /upgrade-2.2.typescript

ただし、この typescript ファイルは (/tmp や /var/tmp のような) 一時ディレクトリに置かないようにしてください。

また、アップグレードの前に すべてのパッケージ保留 ``hold'' を解除しておくことが望ましいでしょう。 もしアップグレードが必要になる重要なパッケージが保留されていたならば、 アップグレードが失敗してしまいます。 なお、あるパッケージに変更を加えたり、再コンパイルしている場合で、 その名前を変更していなかったり、そのバージョン番号に epoch をつけていない場合は、それがアップグレードされないように パッケージ保留 ``hold'' を設定しておかなければなりません。 このパッケージ保留 ``hold'' は dselect 上 (選択メニュー上で `H' キーで設定、`G' キーで解除) で設定することもできますし、

     dpkg --get-selections > ファイル名

として、生成されるファイル ファイル名 上の ``hold'' を ``install'' に変えるよう編集しても解除できます。 この場合は、ルート権限で

     dpkg --set-selections < ファイル名

を行なってください。

(もし ssh がインストールされているならば、) ssh にパッケージ保留 ``hold'' を設定しておくとよいでしょう。 さもなければ、こちらは OpenSSH (新たな ssh パッケージ) に置き換えられ、設定ファイルのちょっとした非互換性のために、 アップグレード後 sshd が起動しないかもしれないからです。 こちらにパッケージ保留 ``hold'' を設定しておけば、 そのシステムへのアクセスが途切れることは確実にありません。 あとで ssh をアップグレードし設定を修正することもできますし、 ssh-nonfree パッケージを選択して、 non-free ではありますが、完全互換なバージョンの ssh をインストールすることもできます。 (注意: パッケージ保留 ``hold'' を設定せずにアップグレードを行なっても、 既存の接続が途切れることはないでしょう。)

重要なことですが、アップグレードに先だって、 /etc/rcS.d ディレクトリが存在していなければなりません。 さもなければ libc6 パッケージのインストールに失敗します。

また、必要なパーティション全て (特にルートパーティションと /usr パーティション) を以下のコマンドを用い、read-write 可で忘れずにマウントしておいてください。

     mount -o remount,rw /mountpoint

/usr/share/doc ディレクトリは(もしそれが存在するならば)、 (例えば /usr/doc への) シンボリックリンクであってはいけません。 そうなっていると、いくつかのパッケージが破損してしまいます。 ただし、/usr/doc から /usr/share/doc へのシンボリックリンクなら問題ありません。 なお、そのようなシンボリックリンクを利用している場合、 /usr/doc ディレクトリが削除できないとの たくさんのメッセージが表示されるでしょう。 このようなメッセージが表示されることは普通のことですので、 無視していただいて結構です。

推奨されるアップグレード方法は、 次章で説明する apt-get を直接利用する方法です。 APT は次世代の Debian パッケージングツールで、 スムーズなアップグレードと簡単なインストールを実現するものです。

dselect のデフォルトアクセスメソッドを用いて、 主要なパッケージのアップグレードを行なってはいけません。 というのも、それらのアクセスメソッドは apt メソッドは異なり、 インストールするパッケージの順序を考慮せず、信頼性に欠けるからです。 さらに、そのようなアップグレード方法は十分にテストされていませんので、 Debian ではサポートされていません。


3.3 アップグレードの方法

CD-ROM を利用してアップグレードを行ないたい場合や、 リリース 2.0 以前の Debian GNU/Linux からのアップグレードを行なう場合、 Debian ミラーサイトの http://http.us.debian.org/debian/dists/potato/main/upgrade-alpha/ ディレクトリ、 あるいは Debian 2.2 CD セットの一番目の CD-ROM の upgrade/ ディレクトリにある バージョンの apt および dpkg が必要になります。 これのファイルをダウンロードし、 以下のコマンドを用い (以下の通りの順序で) インストールしてください。

     dpkg -i dpkg_1.6.13_alpha.deb
     dpkg -i apt_0.3.19_alpha.deb

これらはあらゆる Debian システムにインストール (および実行) できるように、特別に静的にライブラリをリンクしてコンパイルされています。

Debian GNU/Linux バージョン 2.1 (のいずれかのリリース) から ネットワーク (FTP、HTTP) やローカルミラー (例えばディスクパーティションや NFS マウントされたミラー) を用いてアップグレードを行ないたい場合は、Debian リリースに付属の aptdpkg を利用することができます。 もちろん、apt がまだインストールされていないならば (デフォルトではインストールされません)、 まずこちらをインストールしてください。

いずれの Debian リリースからアップグレードする場合でも、 その際に複数の CD を用いるならば、 既に説明したようにライブラリを静的にリンクしたバージョンの apt および dpkg パッケージが必 要になりますのでご注意ください。

その際 man ページの apt-get(8) および sources.list(5) をお読みになっておくことをお勧めします。 なお、ライブラリを静的にリンクしたバージョンの apt および dpkg をインストールした場合、 man-db パッケージをアップグレードするまで、 man ページを読むためには man -l /usr/share/man/man8/apt-get.8.gz のように コマンドを入力する必要があります。

アップグレードを始める前に、 パッケージ一覧用の apt 設定ファイル /etc/apt/sources.list を修正する必要があります。

apt は "deb" で始まる行で指定される パッケージ取得先にある全パッケージを対象に、 先行するパッケージ取得先を優先しながら、 よりバージョンの新しいパッケージをインストールします。 (例えば複数のミラーが指定できる場合、ローカルハードディスク、CD-ROM、 FTP/HTTP ミラーの順に指定するとよいでしょう。)


3.3.1 インターネット越しにアップグレードを行なうための設定

デフォルトでは、Debian のメインインターネットサーバから インストールが行なわれるよう設定されていますが、 /etc/apt/sources.list を修正して ネットワーク的に近い Debian の他のミラーサイトを利用されるほうが 好ましいでしょう。 その場合、まず sources.list にある既存の "deb" 行を、 各行頭に (#) を挿入してコメントアウトしててください。

Debian の FTP および HTTP ミラーサイトのアドレス一覧は http://www.debian.org/distrib/ftplist にあります。 (「全ミラーサイト一覧」をご覧ください。)

例えばウェブブラウザーや FTP クライアントでミラーサイトを調べ、 お近くの Debian ミラーサイトが ftp://alea.iacta.est/debian/ である場合、メインディレクトリは以下のようになっているでしょう。

     ftp://alea.iacta.est/debian/dists/potato/main/binary-alpha/...
     ftp://alea.iacta.est/debian/dists/potato/contrib/binary-alpha/...

このミラーを apt で利用するには、 sources.list ファイルに以下の行を追加します。

     deb ftp://alea.iacta.est/debian potato main contrib

`dists' が暗示的に追加されること、 四番目以降の引数が複数のディレクトリを指すパスに展開されること には注意してください。

そのミラーサイトの ftp://alea.iacta.est/debian/debian-non-US 以下に non-US/* セクションが含まれている場合は、 以下の行も追加します。

     deb ftp://alea.iacta.est/debian/debian-non-US potato/non-US main contrib

インストールに必要なパッケージはネットワークから取得され、 /var/cache/apt (ダウンロード中は partial/ サブディレクトリ) に一時保存されますので、インストール開始前に 十分な空き容量があることを確認しておいてください。 十分に利用可能な Debian をインストールするには、通常少なくとも 300MB のデータのダウンロードが必要になりますので、ご注意ください。

注意: ライブラリを静的にリンクしたバージョンの apt および dpkg を利用する場合、 (一つには slink の apt を利用してネットワーク越しにアップグレードを行なうために) ホスト名検索に失敗してしまいます。 簡単な対応策は、"deb" 行で ミラーサイトの IP アドレスを指定することです。 (ヒント: nslookup サーバ名)


3.3.2 ローカルミラーからアップグレードを行なうための設定

FTP あるいは HTTP ミラーサイトの代わりに、 (例えば NFS マウントされた) ローカルディスク上のミラーを利用するよう、 /etc/apt/sources.list を修正したい場合もあるでしょう。 その場合、まず sources.list にある既存の "deb" 行を、 各行頭に (#) を挿入してコメントアウトしててください。

例えば、パッケージミラーが /var/ftp/debian/ 以下にある場合、 メインディレクトリは以下のようになっているでしょう。

     /var/ftp/debian/dists/potato/main/binary-alpha/...
     /var/ftp/debian/dists/potato/contrib/binary-alpha/...

このミラーを apt で利用するには、 sources.list ファイルに以下の行を追加します。

     deb file:/var/ftp/debian potato main contrib

`dists' が暗示的に追加されること、 四番目以降の引数が複数のディレクトリを指すパスに展開されること には注意してください。

お使いになるローカルミラーの /var/ftp/debian-non-US 以下に non-US/* セクションが含まれている場合は、以下の行も追加します。

     deb file:/var/ftp/debian-non-US potato/non-US main contrib


3.3.3 CD-ROM からアップグレードを行なうための設定

既に説明したように、まず最初に apt および dpkg パッケージの最新バージョンをインストールする必要があります。

インストールに CD のみを利用したい場合は、 まず sources.list にある既存の "deb" 行を、 各行頭に (#) を挿入してコメントアウトしててください。

/cdrom マウントポイントにお使いの CD-ROM がマウントできるよう、/etc/fstab が設定されていることを確認してください。 (apt-cdrom を利用する場合、マウントポイントが正確に /cdrom であることが必要です。) 例えば、お使いになる CD-ROM が /dev/hdc である場合、 /etc/fstab には次のような記述が含まれていなければなりません。

     /dev/hdc      /cdrom     auto    defaults,noauto,ro     0   0

四番目のフィールドにある defaults,noauto,ro という指定の間にはスペースを入れてはいけません

正しく動作すること確認するには、 CD を挿入し、以下の各コマンドを実行してください。

     mount /cdrom       (マウントポイントに CD をマウントします。)
     ls -alF /cdrom     (CD のルートディレクトリを表示します。)
     umount /cdrom      (CD をアンマウントします。)

次に、各 CD を APT データベースに追加するために、 お持ちのバイナリ CD-ROM それぞれに対して以下のコマンドを実行してください。

     apt-cdrom add


3.3.4 アップグレードを行なう

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

     apt-get update

これによって、パッケージオーバービューファイルを入手元と再同期させ、 新規パッケージおよび更新されたパッケージに関する情報を更新します。

何が起きているのかを確認するために、 以下のコマンドを実行してもよいでしょう。

     apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager

この方法だと若干時間はかかりますが、 不意の出来事を避けることができるでしょう。 こうすることで、お使いのシステムにある問題 (およびその解決法)や、 また通常はアップグレード中に何が行なわれているのかを 正確に知ることができます。 "REMOVEd" と表示されるパッケージには特に注意してください。 重要なパッケージがそこで表示されることはないはずです。

apt-get が正常に動作することを確認した後、 以下のコマンドを実行してください。

     apt-get --fix-broken --show-upgraded dist-upgrade

これによって、システムを完全にアップグレードさせます。 つまり、あらゆるパッケージの利用可能な新バージョンをインストールし、 異なるリリース間で変更された可能性のある依存関係を解決します。 必要があれば、 (通常はライブラリの新バージョンや改名されたパッケージなど) 新たにいくつかのパッケージがインストールされ、 依存関係に問題のある旧式のパッケージが削除されます。

CD-ROM セットからアップグレードを行なう場合、 その最中に何度か CD を交換するよう求められるでしょう。 同じ CD を何度が挿入しなおす必要があるかもしれませんが、 それは依存関係のあるパッケージが複数の CD にわたって 収録されているためです。

インストールされている現行パッケージを新しいバージョンに アップグレードする際に、他パッケージのインストール状態の変更を伴う場合は、 ("held back" と表示され) 現行バージョンが維持されます。 そのため、dpkgdselect を利用してパッケージの削除や再インストールを行ない、 壊れたパッケージや依存関係を修復する必要があるかもしれません。 この場合、あるいは apt-get -f dist-upgrade とした後に、 apt-get dselect-upgrade を使ってもよいでしょう。 (apt-get(8) man ページをご覧ください。)

オプション -f (fix) を用いると、apt は、壊れた依存関係のあるシステムを適切に修正しようと試みます。 システムにあるパッケージの依存関係が壊れている場合 apt は作業を行ないません。


3.3.5 アップグレードの最中や終了後に起こりうる問題

場合によっては、手動で調整しなければならないほど システムの依存構造が壊れていることがあるかもしれません。 その場合は、dselect を利用したり

     dpkg --remove packagename

を実行して問題のあるパッケージを除去するか、 以下のコマンドを実行してください。

     apt-get --fix-broken --show-upgraded install
     dpkg --configure --pending

極端な場合は、以下のコマンドを用いて、 強制的に再インストールを行なう必要があるかもしれません。

     dpkg --install /path/to/packagename.deb

こうすれば、既に説明したように、 dist-upgrade コマンドを用いたアップグレードを再開できるはずです。

アップグレードの最中に、 いくつかのパッケージの設定および再設定に関する 質問をされるでしょう。 /etc/init.d/etc/terminfo ディレクトリにあるファイルに関する質問がされた場合や、 /etc/manpath.config ファイルを パッケージ開発者が用意したバージョンと交換すべきだと言われた場合は、 システムの一貫性を保つために通常は `yes' と答えてください。 古い設定ファイルは .dpkg-old 拡張子が付けられて保存されていますので、 元に戻すことはいつでも可能です。

何をどうすべきか不安な場合は、 パッケージ名あるいはファイル名を書き留めておき、 あとで修正を行なってください。 typescript ファイルを調べ、 アップグレード中に画面に表示された情報をあとから見ることもできます。

apt-get dist-upgrade を行なえば、 「通常」のアップグレードは終了ですが、 その後リブートを行なう前に確認すべき注意事項があります。

最も重要なことは locales および util-linux パッケージをインストールしなければならないことです。 そのためには次のコマンドを実行してください。

     apt-get install locales util-linux

現在 gettyutil-linux パッケージに収録されているため、 Debian の 2.0 以前のバージョンからアップグレードを行なっている場合、 この作業によって getty パッケージが削除されます。

他にも apt-get が検知しない いくつかのパッケージをインストールしなければならないかもしれません。 これは、apt-get が (例えば Recommends: および Suggests: フィールドに記述された全パッケージなど) 他パッケージに依存しないパッケージを自動的に選択しないためです。 これらのパッケージは dselect や他のビジュアルフロントエンドを 用いれば用意に見つかります。 dselect を利用する場合、[A]ccess 画面で `apt' メソッドを選び、[U]pdate オプションで新規パッケージ情報からデータベースを更新してください。 その後、[S]elect 画面で、`o'、`o'、`v'、Shift-d を押し、 画面に表示される

     --- Obsolete and local packages present on system ---

というヘッダを探してください。 このセクションにはこのようなパッケージ全てが表示されます。 例えば、古い gimp-smotif および gimp-dmotif パッケージは Debian GNU/Linux 2.1 で gimp パッケージに置き換えられています。 dselect 経由で新規パッケージをインストールすることもできます。 (dselect は、削除すべき古いパッケージを示す "dependency conflict resolution" 画面を表示します。) あるいは、

     apt-get install gimp

とコマンドを入力することで、 (確認は必要ですが) 古いバージョンを一度に削除することもできます。

なお、例えば古い netstd パッケージから分割された telnet および talk のクライアントおよびサーバや NFS サーバは、dselect でもアップグレードするよう指示されません。 これらをインストールするには以下のコマンドを実行してください。

     apt-get install telnet telnetd talk talkd nfs-server

同じことは manpages から分割された manpages-dev にも当てはまります。

Debian GNU/Linux 2.1 リリースで分割されたパッケージについては そのリリースノートを参照してください。 また、当リリースで分割されたパッケージの一覧については 改名されたパッケージ, Section 3.1.1 および 分割されたパッケージ, Section 3.1.2 をご覧ください。

なお、以上の作業では Linux カーネルがアップグレードされない ことにはご注意ください。 そのアップグレードを行ないたい場合は、 kernel-image-* パッケージのいずれかをインストールするか、 ソースからカスタムカーネルをコンパイルするかして、 ご自分で行なってください。

では、新しい Debian GNU/Linux 2.2 システムをお楽しみください! :-)


[ 前のページ ] [ 目次 ]
Debian GNU/Linux 2.2 (`potato') Alpha リリースノート
version 2.2.17, 10 August, 1995
Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer
debian-doc@lists.debian.org