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

[plamo:24713] Re: glibcの入れ替え



きどです。

From: A Matsui <matsui.akira@canon.co.jp>
Subject: [plamo:24709] Re: glibc の入れ替え
Date: Thu, 27 Jan 2005 12:21:45 +0900

> libc-2.3.2.so,ld-2.3.2.so,libnss_files-2.3.2.so,libpthread-0.10.so を手
> 作業でインストールしてしまいましたので,ご忠告のように,CD boot してイン
> ストールを行った方が良いのでしょうか? アドバイス等,頂けましたら幸いです.

最近 plamo-4.01 の glibc-2.3.2 を 2.3.3 へ入れ替えばかりなので、その時
の手順を書きます。

まず、glibc の入れ替えでファイルが差し変わるパッケージは、glibc, libc,
libcinfo の 3 つですので、トラブルに遭遇した時にすぐに元に戻せるように、
現行の plamo のオリジナル・パッケージを用意します。

つぎに、/var/log/packages 以下の glibc, libc を元に、古いファイルを削
除するシェルスクリプトをつくります。新ファイルで上書きされずにシステム
に残ってしまうファイルだけを削除するスクリプトです。つぎのようなものです。

    #!/bin/sh

    rm -rf lib/libnss_files-2.3.2.so
    rm -rf lib/librt-2.3.2.so
    rm -rf lib/libnss_nisplus-2.3.2.so
        :
        :

この時の注意点。/var/log/packages/glibc と/var/log/scripts/glibc を見る
と、/lib 以下に配置されるファイル群はいったん /lib/new というディレクト
リに置かれ、doinst.sh によって /lib に移動されていることがわかります。
したがって、/var/log/packages/glibc の記述と実際のファイル配置が異なり
ますので、削除スクリプトを作る際にはそのことに留意する必要があります。
また、/usr/share/{i18n,zoneinfo,locale} 以下のファイル群は削除せずに、
新しい glibc のファイルで上書きさせるようにします。この作業は、アップデー
ト後に旧バージョンのファイルがゴミとしてシステムに残るのが嫌でなければ、
どうしても必要というわけではありません。

その後、ftp://plamo.linet.gr.jp/pub/Plamo-src/plamo/a1/glibc2 以下のビ
ルドスクリプトを使って、新しい glibc, libc, libcinfo パッケージを作り
ます。この時、ビルドスクリプトを事前によく読み、何をやっているかを完全
に理解されることをお勧めします。とくに mv-static の配置に気をつけない
とパッケージが正常に生成されません。

つぎにパッケージのテストです。適当なディレクトリを掘り、上で作ったパッ
ケージをその下に置き、* installpkg ではなく * tar コマンドで展開します。
展開後 install/doinst.sh を実行します。

    $ mkdir work
    $ mv glibc-2.3.2-i386-P1.tgz work/
    $ cd work
    $ tar zxf glibc-2.3.2-i386-P1.tgz
    $ sh install/doinst.sh

installpkg コマンドがやることを手動でトレースしたわけです。こうして、
パッケージが正しく作られたかを確認します。

以上ができたら、新パッケージ群、復旧用のオリジナル・パッケージ群、旧ファ
イル削除スクリプトを / 直下に移動しておきます。

準備が整ったら、CD-Plamo や Plamo のインストール CD/FD でシステムを起動
します(KNOPPIX 等でもいいでしょう)。ぼくはインストール FD を使いまし
た。

つぎに適当なマウント・ポイントを作り、Plamo のルート・パーテーションを
そこにマウントし、その直下へ cd します。

    # mkdir /new
    # mount -t ext3 /dev/hdaX /new
    # cd /new

いよいよ手術開始です。深呼吸をして、(必要であれば)まず、用意した削除
スクリプトを走らせます。

    # sh ./remove.sh

つぎに、glib パッケージをテストの時と同じように展開します。

    # tar zxf glibc-2.3.2-i386-P1.tgz
    # sh install/doinst.sh

libc パッケージも同じように繰り返します。libcinfo は単なる info ファイ
ルなので、ここで展開せず後で installpkg しても構いません。

これでパッケージのインストールは終わりです。./lib や ./usr/lib 以下を見
て、テストの時と同じように正常にファイルが配置された確認します。問題が
なければ、パーテーションを umount して、神に祈りながらシステムを再起動
します。

もし起動不能などの問題が発生したら、再度 CD-Plamo などで起動して、復旧
用のオリジナル・パッケージを上と同じ手順でインストールします。

以上で完了です。 ぼくが試した Plamo 4.01 の glibc-2.3.2 から 2.3.3 への
更新は、今のところ大した副作用もなく成功したように見えますが、それ以外
の環境で同じようにうまくいく保証はありませんので、あくまで自己責任で……

ここまで書いてから思ったのですが、新しい glibc が欲しいのならいっそのこ
とシステム自体を Plamo-4.01 で再インストールしたほうが簡単だし、安全では
ないですか?

--
きど
KIDO Hideyuki <rp9h-kd@asahi-net.or.jp>

Follow-Ups
[plamo:24715] Re: glibc の入れ替え, A Matsui
[plamo:24723] Re: glibc の入れ替え, A Matsui
References
[plamo:24693] Re: glibc の入れ替え, A Matsui
[plamo:24700] Re: glibc の入れ替え, A Matsui
[plamo:24709] Re: glibc の入れ替え, A Matsui

[検索ページ] [メール一覧]
Plamo ML 公開システム