最近買ったwifiアダプターWI-U2-433DHPを、
結果的にたくさん飼ってしまっているarchbangで
使えるようにと、ドライバー巡回インストール中の
ことでした。
横着をしまして、古いシステム環境のまま
アダプタードライバーを入れて、
それから、pacman -Syyuしようとしました。
ダウンロードに必要なgitコマンドがありません!
ほかの多くでそうであったことを忘れていた
のですが、血迷って
$ sudo pacman -Sy git
をやってしまいました。そしたら、
$ git clone https://github.com/gnab/rtl8812au.git
ができなくなってしまい、
$ sudo pacman -S base-devel --needed
とかあがいているうちに
$ sudo pacman -Syyu
pacman: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by pacman)
pacman: /usr/lib/libc.so.6: version `GLIBC_2.33' not found (required by /usr/lib/libalpm.so.12)
のようなエラー表示がでるようになってしまいました。
pacmanが使えない。完全にアウト!か。
再起動しても、デスクトップも出ず、
コンソールのプロンプトも出ず。
隣のarchbangから、
いつものようにarch-chrootして、
pacmanコマンドが使えないか、と
やってみましてもおなじこと。
エラー表示が出て、万事休したかのようでした。
ところが、ところがです。奥の手が残っていました。
pacstrapコマンドを使う手が残されていました。
pacstrapは、arch本家のインストールで、
arch-chrootするまえの段階で使うコマンドです。
これが、利きましたね。
arch-chrootをexitして、
マウントとしただけの状態に戻し、
$ sudo pacstrap /mnt base-devel glibc lib32-glibc
としましたら、ありがたや、通ってくれました。
※base-develのグループインストールには、
pacmanコマンドが含まれます。
そのあとは、またarch-chrootして、
ごめんなさい、を念じつつ。
# pacman -Syyu
をしますと、pacmanコマンド復活で、
無事システム更新を終えることができました。
反省点は、横着はいけない!です。
このあと、keyringが通らない場合、先に、
archlinux-keyringパッケージのみインストール
することが許されていて、
インストールすることができます。
それでも、パッケージが破損しいて、
インストールできないみたいな表示が
出ることもあります。
一部のパッケージ(複数以上)がインストールできず、
システム更新が進められない状態に
なるかもしれません。
そのときは、パッケージを破棄せずに
「n」と返答して、
cacheに取って置き、pacman -U の後ろ、
パッケージまでの
パスを通してインストールすることができます。
この方法で、破損表示が出たパッケージを
根気よくインストールしていき、し終えれば、
残されたパッケージは、
pacman -Suでインストールできるようになります。
なんらかの不始末?で、archlinuxの中核の
pacmanコマンドが使えなくしてしまったら、
pacstrapコマンドのあることを思い出してください。
pacstrapコマンドは、archlinux本家系なら、
たいがいのものに含まれていると思います。
インストール後のarchlinuxにも
残ると思います。今回、liveメディアから
ではなく、隣りにインストールしてあった
同じarchbangから修復しました。
いつもやっている仮想環境下の出来事では
ありませんでした。リアルインストールでの
出来事でした。