発端はCinnamonがクラッシュしたところ。Ctrl+Alt+F2でtty2に移動して$ cinnamonすると、libreadline.so.6が無いよ、と。
取り敢えず再起動しても状況は変わらない。そもそもCinnamonが起動しない。
インストールされているのはreadlineの7らへんだったので、cinnamonがまだ対応出来てないのかなと思って、じゃあreadlineを6系統にダウングレードすれば良いのでは、という強引な発想をした。
pacman -Rdd readlineしてローカルのパッケージキャッシュからインストール…
したら起動しなくなりました。てへぺろ。
GUIが、とかじゃなくて、そもそもログイン画面まで届かない(CUIなログイン画面にも届かない)。
しょうがないので、元に戻すことに。
Live環境からarch-chrootして、そこでpacman -S readlineしちゃえば良いのでは?
と思っていたのもつかの間、arch-chrootがlibreadline.so.7を要求していて出来ない。ただのchrootだとpacmanとか出来ない(/etc/mtabが無いよ、とか言ってくる)ので、arch-chrootがいいんだけど。
arch-chrootはシェルスクリプトなんですよ、というのをどこかで聞いた記憶があったので、じゃあそれの動作を一つ一つやればいいんちゃう?と思ったあたりで、archwikiを見に行くと、ズバリな記述を見つけたので、それを参考にchroot。chrootを使う - Change Root - ArchWiki
その後pacman -S readlineしたけれど、GPGME error: invalid crypto engineと怒られて出来なかった。–forceつけても変わらないので、もうめんどくさいので/etc/pacman.confでSigLevel=Neverにしてreadlineだけアップグレード、pacman.confもとに戻して、chroot抜けて再起動!
[bash]
[/bash]
そしたら起動するようになった
この起動はゴールではなく、最初の状況に戻ってきたってことだ。
変わらずCinnamonはlibreadline.so.6を要求してクラッシュし続けるので、tty2に移動して、libreadline.soで検索、ダメ元だけど、そこにlibreadline.so.6という名前でシンボリックリンクを張って再起動してみた。
ら、Cinnamon普通に起動しました。これでやっと普通に使える。