30日(土)
久々にシステムをぶっこわす@X31
checkinstallを使ってpangoをいつものごとくパッケージ化しているときに、なぜか/lib/libc.soと/lib/libc.so.6が見事にさくっと消えた。
libcというのはlinuxのシステムに入っているプログラムの、ほぼ全部がダイナミックリンクしているCライブラリである。
libcが消えるとどうなるかというと、消えたその瞬間からlinuxはほぼ操作不能になる。
まさにぶっこわれ。
一応、/toolsにスタティックビルド
(静的ビルド。
libcがなくても動く)のツールが置いてあったが、開発ツールは入れてなかったのでどうにもならず。
おまけにlibc-2.6にしてからはバックアップもしてないし、互換性のあるlibc-2.6
(主流は2.4〜2.5)をうまく拾ってこれそうもないので簡単コピーなんちゃって復活もできず。
しかたないので、
・usb-keyのR.I.P.から起動
・plamo-4.2のglibc-2.4、gcc-4.1、gcc-lib、binutils-2.16のパッケージを手動でインストール
・本チャンのシステム(plamoのlibc-2.4)で起動
・glibc-2.6をビルド
・binutils-2.17.50.0.17をビルド
・gcc-4.1.2をビルド
・glibcを再ビルド
・binutilsを再ビルド
・gccを再ビルド
・glibcを再再ビルド
……(以下略)……
で、復活。
ディペンデンシーが訳分からんので後半は再ビルドしまくりである。
ちなみにbinutils-2.17.50.0.
16は腐っている模様。
やっと治ったわい……と一息ついたところで、ntfsフォーマットのusb-keyがKDE上でオートマウントできなくなっているのを思い出し、ついでに直す。
要はntfs-3g系が死亡しているのだが、とりあえずkdebaseのntfs-3g用
locale パッチはkde-3.5.7でも必要なのに気づき、gccのビルドオプションを変えたこともあってqtとkde-3.5.7をまるごと再ビルドしなおすはめに。
でもってfuseとntfs-3gの整合性がとれていないようなのでfuse(stable)とntfs-3g(1.6.16)も再ビルド。
ついでにudev-113にntfs-3gパッチを当ててこれも再ビルド。
udev-ntfs-3gパッチは以下のとおり。
udev-xxx/extras/volume_id/lib/ntfs.c の行末あたり
- id->type = "ntfs";
id->type = "ntfs-3g";
/pre>
その他、kernel-headersを整備しようとして/usr/include/linux/*
を消すつもりが/usr/include/*
を消しかけたりと色々大ボケをかます。
b*
辺りまで消えたところではっと気づいて止めた。
アブナイ。
削除の遅いJFSで良かった。
b*
までというとlibcのヘッダ群くらいなので、libcを再インストールして事なきを得る。
何はともあれ、checkinstall使用時は要注意である。
bootchart
なんやかんやで、起動時間1分9秒台にまで短縮。
これ以上はXとKDEが大改革されでもしないかぎり縮まらなそげ。
4500回転2.5インチHDDでこの速さということは、3.5インチHDDのシステムなら40秒くらいで起動してそうな感じではある。