なにかしらsystem系に問題が起きたときはemergeできなくなるケースが多い。例えばビルド系のbinutils,gcc,glibcの他、coreutils,libtool,sedあたりも致命的。
そんなときはビルド済みパッケージ。普段からbuildpkgしていれば過去のビルドを使えるが、そんなことしてなかったりするので配布されているものを使う。障害の原因のパッケージを究明する方法はここでは言及しない。
但し、電源を落としても問題が無く、他のレスキューシステム(デュアルブートやLiveCD)が使えるなら当然その方法を取った方がいい。
# 初めて使うときはディレクトリがないかも $ sudo mkdir /usr/portage/packages # app-portage/portage-utilsが有効な場合 $ sudo QMERGE=1 qmerge -K <pkgname>
入ってなかったり古かったりしてqmergeが使えないときは、
$ sudoedit /etc/make.conf # このURLはportage-utilsのバイナリに内蔵されているものと同じ PORTAGE_BINHOST=http://tinderbox.dev.gentoo.org/default-linux/x86/ $ sudo emerge -gK <atom>
更に致命的なのはパッケージの配布に使われてるbzip2が壊れたとき。tarはもう知らない。
# 別のシステムでトランスコード $ bzip2 -cd bzip2.tbz2|gzip > bzip2.tgz # 対象のシステムに転送したのち $ sudo tar -xvzpf bzip2.tgz -C / # ※危険(いい方法あれば教えて)