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

Re: README-upgrade.jp for slink



鍋谷です。

From: NABETANI Hidenobu <nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: README-upgrade.jp for slink
Date: Sun, 4 Apr 1999 18:20:32 +0900

> 鍋谷です。
> 
> upgrade-older-i386/README-upgrade の翻訳です。
> チェックをお願いします。

若干修正しました。今回はファイルで添付します。
slink-cd-jp には間に合うでしょうか?

# 言い忘れていましたが、遠藤さんのリリースノートの翻訳を一部頂いてます。

大阪大学理学研究科物理学専攻 博士後期課程2年 大坪研究室(06-6850-5346)
         鍋谷 栄展      nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx
           bo またはそれ以前のリリースからのアップグレード

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

     御自分のシステムが既に Debian 2.0 (hamm) にアップグレードされて
いれば、以下の説明を読む必要はありません。CD のトップレベルディレクト
リにあるリリースノートを参照してください。

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

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

     できる限り apt-get メソッドを利用することをお勧めします。apt は
システムの状態に非常に厳しく、システム状態をチェックして「壊れた」
パッケージが見つかれば実行を中断します。

     この README と、スクリプト cd-autoup.sh、bo 用の .deb パッケージ
2 個、cd_upgrade.sh を実行するために必要な 27 個の .deb パッケージが
置かれているディレクトリ "deb-files" が CD 上のトップレベルディレクト
リ "upgrade-older-i386" にあります。(過去には、このディレクトリ構造を
変更している CD ベンダーがありました。これが御自分の CD に該当する場
合は、以下に示すコマンドを変更する必要があるかもしれません。)アップグ
レードを始める前にこのディレクトリに移動しておけば、bo パッケージのイ
ンストールやスクリプトを実行には、以下に例示すコマンドをそのまま使用
できます(bo パッケージのインストールは必要な場合のみ行ってください)。
上記のディレクトリに移動しない場合は、適切なパス名を以下に示すコマン
ドに追加してください。

     アップグレードの方法に関わらず、 最初に全てのパッケージの状態を
チェックすることをお勧めします。dpkg -l | less や 
dpkg --get-selections > filename と実行してチェックすることも可能です
し、dselect 上でもチェックできます。またアップグレードする前に、全て
のパッケージの hold(維持)状態を解除しておくことが望ましいでしょう。も
しアップグレードが必要なパッケージが hold(維持)されていた場合、アップ
グレードに失敗してしまいます。hold(維持)は dselect上で解除することが
できます。また、dpkg --get-selections> filename で生成されたファイル
を編集して "hold" を "install" に変更し、ルート権限で
          dpkg --set-selections < filename
を実行することで解除することもできます。

     autoup スクリプトの実行も含めて、パッケージインストール作業は
スーパーユーザ権限で実行しなければいけません。root でログインするか
su または sudo を使用して、スーパーユーザ権限を取得してください。

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

     buzz (1.1.x) システムからアップグレードする場合には、アップグレー
ドを始める前に手動で dpkg をアップグレードしなければなりません
(dpkg -i dpkg_1.4.0.8.deb を実行してください)。後で、apt-get もしくは 
dselect から apt アクセスメソッドを使用するのでしたら、この時点で apt
を手動でインストールしてください(dpkg -i apt_0.1.10_i386-libc5.deb)。


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

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

     上記の「hold(維持)したパッケージ」について節に注意してください。
hold(維持)により APT はシステムを完全にアップグレードできず、また、
hold(維持)が不適切に使用されていた場合は、アップグレードが全くできな
い可能性もあります。ライブラリのような肝となるパッケージや必須
(essential)パッケージを hold(維持)しているとこのような問題が発生しや
すくなります。APT がいくつかのパッケージをアップグレードしていない場
合は、hold(維持)が原因であることがよくあります。

     CD のトップレベルディレクトリにあるリリースノートと /usr/doc/apt
にある apt ユーザーズガイドをを読んでおくことを推奨します。アップグ
レードを始める前に、apt 設定ファイル /etc/apt/sources.list を設定しな
ければなりません。設定例についてのコメントの後の1行目に以下を追加しま
す。

             deb file:<cd_mount_point>/debian stable main

     インターネットに接続できない場合(または、セキュリティ問題を修正し
た新しいパッケージをダウンロードしたくない場合)は、残りの2行はコメント
アウトしてください。インターネットに接続する場合には、アドレスをお近く
のミラーサイトに変更してください。

     次に、以下のように実行します。
            apt-get update
            apt-get -f dist-upgrade

     オプション -f (fix) を用いると、apt は壊れた依存関係のあるシステ
ムを適切に修正しようと試みます。システムにあるパッケージの依存関係が壊
れている場合 apt は作業を行ないません。この場合、システムの依存構造が
壊れているために手動による調整が必要である可能性があるためです。(手動
による調整とは通常、 dselect や dpkg --remove を用いて、問題のあるパッ
ケージを除去することです。) 
     
     上記の二つのコマンドを実行した後に apt が壊れたパッケージの存在を
報告してきた場合は、(壊れたパッケージを削除したり、他から依存されてい
る未インストールパッケージをインストールするなどして)システムを修復す
るよう努めてください。システムを修復できず apt で作業を行なえるように
ならない場合は、cd_autoup.sh を利用してアップグレードを行わなければな
りません。

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

*警告*
     APT が必須パッケージの削除リストに lib* を挙げた場合は、そのまま
継続するとシステムをだめにしてしまう可能性が非常に高いです。

     確認したら以下のように実行します。
            apt-get install timezones locales

     この時点でシステムは安定版となり、ほんんど又は全てのパッケージが
libc6 用にアップグレードされています。以降は、dselect を実行してアク
セスメソッドとして apt を使用すれば、まだ libc5 用であるパッケージを
アップグレードしたり、お好みの新規パッケージをインストールしたりする
ことができます。

     最後に、忘れずに wtmp と utmp を修正して下さい。さもないと、last
や who や sac などが動作しません。以下は sysvinit のメンテナーである
Miquel van Smoorenburg <miquels@xxxxxxxxxx> が推奨する手順です。

     1. すべてのパッケージを libc6 用(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 で異なる
からです。


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

      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 は、互換性のない libc5 用パッケージを削
除し、必要な libc6 用パッケージをインストールするように設計されていま
す。buzz (1.1.x)、rex (1.2.x)、bo (1.3.x) から hamm (2.0) またはそれ
以降のバージョンにアップグレードする場合に使用します。

     スーパーユーザ権限を取得後、CD 上の /upgrade-older-i386 ディレク
トリに移動し、"cd_autoup.sh" を実行してください(適切なパスを付加する
ことで別の作業ディレクトリからスクリプトを実行することも可能です)。

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

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

     スクリプトが終了した時点でシステムは安定版となり、重要なパッケー
ジほんんどが libc6 用にアップグレードされています。以降は dselect を実
行して、まだ libc5 用であるパッケージをアップグレードしたり、お好みの
新パッケージをインストールしたりすることができます。dselect を実行する
前に CD 上のトップレベルディレクトリにあるリリースノートを読んでくださ
い。また、dselect の操作に慣れていない方は、リリースノートの「dselect
の利用」を参照してください。

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

      最後に、忘れずに wtmp と utmp を修正して下さい。上記のセクショ
ン "apt を利用したアップグレード" の最後の項目に説明があります。
     
Bob Hilliard <hilliard@debian.org>
$Id: README-upgrade,v 1.6 1999/02/20 23:59:10 bob Exp bob $

Hidenobu NABETANI <nabetani@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
README-upgrade.jp,v 0.8 1999/04/06 17:11