[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

README-upgrade (no.2)



鍋谷です。

README-upgrade の修正版です。
ひととおりのチェックが済みましたら、ftp site なりに置いていただい
ても結構です(CD には間に合わないかな?)。

少々、??なところがあります。
----------------------------------------------------------------------
WARNING  
     If APT lists lib* in the list of essential packages to remove then
it is very likely you will hose your system by continuing.

*警告*
     APT が削除すべき必須パッケージ一覧に lib* を挙げた場合は、そのまま
継続するとおそらくシステムを騙していることになるでしょう。
----------------------------------------------------------------------

大阪大学理学研究科物理学専攻 博士後期課程1年 大坪研究室(06-850-5346)
         鍋谷 栄展      nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx
              README-upgrade for Debian Gnu/Linux v. 2.0

                Official Debian CD を使ったアップグレード

     Debian の重要な特徴のひとつにアップグレード機構があります。これ
によりすべてのパッケージを再インストールすることなく古い Debian シス
テムをアップグレードすることができます。

     Debian 2.0 は、Gnu libc6 ライブラリをベースにしています。これ以
前の Debian バージョンでは libc5 ライブラリをベースにしていました。
libc5 ライブラリ群を使ってダイナミックリンクでコンパイルされたプログ
ラムは libc6 ライブラリ群で動作しませんし、その逆も同様です。Debian
は両方のライブラリ群に対してコンパイルされたバイナリがシステム上に共
存でき、どちらのライブラリでも開発を進めることができるような手法を開
発しました。

     libc6 用パッケージのうち、それ以前の libc5 用パッケージとは互換性
がないものがあるために、アップグレードを始める前にある libc5 用パッケー
ジを削除し、その libc6 用パッケージをインストールしておく必要がありま
す。これらのパッケージの削除とインストールの操作は正しい順序で行なわな
ければならず、システムは不安定な状態にさらされます。この作業を行う手段
を 2 通り用意しました。
 - cd_autoup.sh スクリプトと 'apt-get dist-upgrade' です。

     システムにインストールしてあるパッケージに dselect によって
hold(維持) マークをつけている場合、そのパッケージを削除またはアップグ
レードすることができず、アップグレード作業を失敗してしまいます。次の
パッケージを hold(維持) にしている場合は、アップグレードを始める前に
dselect を使って hold(維持) をはずしておく必要があります。

    ldso, libc5, libc6, timezones, locales, ncurses3.0, ncurses3.4,
libreadline2, libreadlineg2, bash, libg++27, libg++272, libstdc++2.8,
dpkg, dpkg-dev, slang0.99.34, slang0.99.38, libgdbm1, libgdbmg1,
perl-base, perl, data-dumper, libnet-perl, dpkg-ftp, dpkg-mountable,
netbase, netstd, timezone, xmanpages, perl-suid, perl-debug, wg15-locale,
libpthread0, xslib, splay, boot-floppies, localebin.

     cd_autoup.sh スクリプトは、必須パッケージを(それらが hold(維持) 
されていても)強制的に削除しようとします。しかしながら、hold(維持) にし
ているパッケージはアップグレード前に手で hold をはずしておくのが望まし
いです。


            cd_autoup.sh スクリプトを利用したアップグレード

     本文書(README)と、スクリプト cd-autoup.sh、bo 用 .deb パッケージ
2 つが CD 上のトップディレクトリ "upgrade-i386" にあります。アップグ
レードを始める前にこのディレクトリに移動した場合は、bo パッケージをイ
ンストール(必要な場合のみ)し、スクリプトを実行する際に、以下で示される
コマンドをそのまま使用することができます。CD 上の上記のディレクトリに
移動しない場合は、適当なパス名を以下に示すコマンドに含めなければなりま
せん。

     このディレクトリには cd-autoup.sh スクリプトが用意されています。
スクリプト cd-autoup.sh は、互換性のなくなってしまう libc5 パッケージ
を削除し、必要な libc6 パッケージをインストールするように設計されてい
ます。これは、buzz (1.1.x)、rex (1.2.x)、bo (1.3.x) から hamm (2.0) に
アップグレードする場合に使用されます。

     もし、dselect の使用方法に習熟していないのでしたら、アップグレード
を始める前にこの CD の debian/hamm/hamm/disks-i386/current ディレクトリ
にある dselect.beginner.txt または dselect.beginner.html を読んでくださ
い。

     ログの写しを記録しておくため /usr/bin/script を使用することを強く
推奨します。実際、dselect のログ(また、それ以外にも記録しておくと望まし
いと考えられるもの)を記録するために script を使用するのは良いアイディア
です。そうすることで、何らかの問題が発生した場合、何が置きたのか知るこ
とができます。script は、この写しを引数として指定したファイルに書き出し
ます- `script -myfilename'。又は、デフォルトのファイル名は `typescript'
です。(script を実行する時のカレントディレクトリが CD 上である場合、
"myfilename"のパスには書き込み可能なディレクトリを指定しなければなりま
せん。)   

     autoup スクリプトの実行を含めパッケージインストール作業は、スー
パーユーザ権限で実行しなければいけません。スーパーユーザ権限を得るた
めに root でログインするか su または sudo を使用してください。buzz 
(1.1.x) システムからアップグレードしているのでしたら、cd_autoup.sh を
実行する前にこのディレクトリから手で dpkg をアップグレードしなければな
りません(dpkg -i dpkg_1.4.0.8.deb)。後で、dselect から apt アクセスメ
ソッドを使用するのでしたら、この時点で手で apt をインストールしてくだ
さい(dpkg -i apt_0.1.4.bo_i386.deb)。それから、`cd_autoup.sh'を実行し
てください。

     実際にアップグレードを始める前に、このスクリプトを使って、何らか
の理由のためにアップグレードの妨げとなるいくつかのパッケージを削除し
ます。あるパッケージはスクリプトによって hamm 用パッケージで置き換え
られ、またあるパッケージはスクリプト終了後に dselect で再インストール
しなければなりません。このスクリプトは削除したすべてのファイル一覧を
/root ディレクトリのファイル "removed-<today's date>" に書き出します。
このファイルは、後で dselect を実行してインストールすべきパッケージを
選択するときの参考になるでしょう。

     それから、質問に答えていきます(一部の新規インストールプログラムで
は設定用スクリプトによる設問もあるでしょう)。アップグレードの途中で何回
か警告が表示されることがあります。特に、perl-base をインストールするた
めに一旦 perl を削除したときに現れ不安になるかもしれませんが、害はあり
ません。

     スクリプトが終了すると、メッセージが表示されます。これは、前もっ
て参考になるよう、ここで繰り返しておきます:

  libc6 がインストールされました。dselect を起動して残るパッケージをアッ
  プグレードします。最初は、現在インストール済のパッケージのみをアップ
  グレードするために、access, update, install, configure モジュールを実
  行することを推奨します(select を選択しない)。その後で、必要なら追加パッ
  ケージをインストールするために select, install モジュール を使用します。

  dpkg/dselect は多くのパッケージをアップグレードすることを心に止めてお
  いてください(また、この段階でインストールされている殆ど全てのパッケージ
  がアップグレードされるでしょう)。通常はすべてのパッケージが設定済となる
  までには何回か install と configure を繰り返す必要があります。 dselect 
  の apt アクセスメソッドではこの欠点がかなり修正されています。

  apt がインストールされているなら("apt を利用したアップグレード" 以下の
  説明を参照)、dselect の Access モジュールで apt アクセスを選択できます。
  apt は以前の dselect アクセスメソッドに比べ非常に高速です。これが、終了
  したら、アップグレードした libc5 の utmp/wtmp wrapper 関数が有効にする
  ために "shutdown -r now" でリブートします。

  すべての開発パッケージ(-dev, -dbg, and -pic) といくつかの互換性のなく
  なるパッケージは、libc5 バージョンと libc6 バージョンで衝突しますので、
  このアップグレード中に削除されます。削除されたパッケージのリストはファ
  イル "/root/removed-<today's date>" にあります。必要ならこれらの libc6
  用パッケージをインストールしなければなりません。libc5 で開発作業をして
  いるのでしたら、(old-libs ディレクトリから)必要なこれらの libc5 用パッ
  ケージを再インストールします。

  最後に、忘れずに wtmp と utmp を忘れずに修正して下さい。さもないと、
  last や who や sac などが機能しません。debian-users メーリングリストで
  Miquel van Smoorenburg <miquels@xxxxxxxxxx> から以下のような発言をいた
  だきました:

      > 1. すべてのパッケージを hamm に更新します。
      > 2. まだリブートしていない場合はリブートします。
      > 3. wtmp ファイルを移動して、utmp ファイルを切ります:
      >    cd /var/log
      >    mv wtmp wtmp.libc5
      >    touch wtmp
      >    cd /var/run
      >    cp /dev/null utmp
      > 4. 確認のためもう一度リブートするといいでしょう。
      > 
      > これは、"utmp 構造体" が libc5 と libc6 では異なっているため、
      > utmp と wtmp の「データベース」が libc5 と libc6 で異なるから
      > です。

       これで Debian Gnu/Linux v2.0 システムが手に入りました。
       お楽しみください!


                       apt を利用したアップグレード

     The Deity Project は apt という名で知られる新しい改良された dpkg 
インターフェースを開発しています。apt のユーザインターフェースはまだ
利用できませんが、コマンドラインから、または dselect の access メソッド
として利用することができます。

     もし、dselect の使用方法に習熟していないのでしたら、アップグレード
を始める前にこの CD の debian/hamm/hamm/disks-i386/current ディレクトリ
にある dselect.beginner.txt または dselect.beginner.html を読んでくださ
い。

     ログの写しを記録しておくため /usr/bin/script を使用することを強く
推奨します。実際、dselect のログ(また、それ以外にも記録しておくと望まし
いと考えられるもの)を記録するために script を使用するのは良いアイディア
です。そうすることで、何らかの問題が発生した場合、何が置きたのか知るこ
とができます。script は、この写しを引数として指定したファイルに書き出し
ます- `script -myfilename'。又は、デフォルトのファイル名は `typescript'
です。(script を実行するときカレントディレクトリが CD 上にある場合、
"myfilename"のパスには書き込み可能なディレクトリを指定しなければなりま
せん。)

     この README と、apt_0.1.4.bo_i386.deb、dpkg_1.4.0.8.deb、スクリプ
ト cd-autoup.sh は CD のトップディレクトリ "upgrade-i386" にあります。
アップグレードを始める前にこのディレクトリに移動した場合は、bo パッケー
ジをインストール(必要な場合のみ)には、以下で示されるコマンドをそのまま
使用することができます。CD 上のそのディレクトリに移動したくない場合は、
適当なパス名をこれらのコマンドに含めなければなりません。

     パッケージインストール作業にはスーパーユーザ権限が必要ですので、
スーパーユーザ権限を得るために root でログインするか su または sudo を
使用してください。それから、`script -<filename>' と入力し、この README
があるディレクトリに移動してください。(スクリプトを実行する時点で、作
業ディレクトリが CD 上にあると、<filename>に指定するパスを書き込み可能
なディレクトリにしてください。) それから、手で apt をインストールして
ください(dpkg -i apt*)。buzz (1.1.x) システムからアップグレードしてい
るのでしたら、残りのアップグレード作業を進める前にこのディレクトリから
手で dpkg をアップグレードしなければなりません(dpkg -i dpkg*)。

     /usr/doc/apt にある apt ユーザガイドを読んでおくことを推奨します。
アップグレードを始める前に、apt 設定ファイル /etc/apt/sources.list の
設定をしなければいけません。コメントされた説明の後の最初の行に
             deb file:<cd_mount_point>/debian stable main
を追加します。

     インターネットに接続できない(または、新しいセキュリティ問題修正版
をダウンロードしたくない)場合は、残りの2行はコメントアウトしてください。
そうでなければ、近くのミラーサイトを選択してください。

     それから以下のように実行します。
            apt-get update
            apt-get -f dist-upgrade

     APT が削除しようとしているパッケージ一覧を十分に吟味し、間違いがな
いことを確認してください。必須(essential)パッケージの中には、削除しても
大丈夫なパッケージ(例えば、e2fsprogs)もありますが、削除してはいけない
パッケージもあります。

*警告*
     APT が削除すべき必須パッケージ一覧に lib* を挙げた場合は、そのまま
継続するとおそらくシステムを騙していることになるでしょう。

     それから以下のように実行します。
            apt-get install timezones locales

     この時点でシステムはほんんど、またはすべてのパッケージが libc6 に
アップグレードされた安定版となりました。dselect を実行して、まだ libc5
用であるパッケージをアップグレードするか、または必要なら新しいパッケー
ジをインストールするために、アクセスメソッドとして apt を使用します。

     最後に、忘れずに wtmp と utmp を忘れずに修正して下さい。さもないと、
last や who や sac などが機能しません。debian-users メーリングリストで
Miquel van Smoorenburg <miquels@xxxxxxxxxx> から以下のような発言をいた
だきました:

    > 1. すべてのパッケージを hamm に更新します。
    > 2. まだリブートしていない場合はリブートします。
    > 3. wtmp ファイルを移動して、utmp ファイルを切ります:
    >    cd /var/log
    >    mv wtmp wtmp.libc5
    >    touch wtmp
    >    cd /var/run
    >    cp /dev/null utmp
    > 4. 確認のためもう一度リブートするといいでしょう。
    > 
    > これは、"utmp 構造体" が libc5 と libc6 では異なっているため、
    > utmp と wtmp の「データベース」が libc5 と libc6 で異なるから
    > です。

     これで Debian Gnu/Linux v2.0 システムが手に入りました。
     お楽しみください!

$Id: README-upgrade,v 0.7 1998/08/27 13:37:45 bob Exp bob $