androidで動いてたarch-armが壊れた
android上で動かしてるarch-armのupdateを怠っていたのでpacmanがupdateできない状態、もしくは無理にupdateすると壊れる状態になってしまってたので、ほぼ詰みかけてた話です。
通常、archlinuxはpacman
が壊れてもpacman-static
のbinaryをdlしてくればいいんですけど、armにはそういうのがなかったので、pacmanが壊れると、ほぼどうしようもない感じだった。
ただ、armv7hのpackage-binaryを公開してくれてる人がいたので、とても助かりました。
https://mirror.yandex.ru/archlinux-arm/armv7h/core/
http://ftp.tku.edu.tw/Linux/ArchLinux-arm/armv7h/core/
基本的に更新を怠ってたarch-armは、最初にpacman -Sy base-devel
します。これで一応、必要なpackageをupdateできるはずなんですが、今回はそれでもpacman
が壊れてる状態だったので、必要なものをftpから持ってきてbinaryを置き換えます。ちなみに、解凍とか面倒ならzarchiver
ってアプリを使いますが、便利です。
$ pacman -Sy base-devel
$ pacman --version
error : archive_entry_digest
# libarchive
$ curl -sLO http://ftp.tku.edu.tw/Linux/ArchLinux-arm/armv7h/core/libarchive-3.5.1-1-armv7h.pkg.tar.xz
$ aunpack libarchive-3.5.1-1-armv7h.pkg.tar.xz
$ cp -rf ./libarchive-3.5.1-1-armv7h.pkg.tar/* /
$ pacman --version
error libraries : libarchive.so.13 file too short
$ ls /etc/lib/libarch*
$ ln -s /usr/lib/libarchive.so.13.15.1 /usr/lib/libarchive.so.13
$ pacman --version
pacman v6.0.0, libalpm v13.0.0
$ pacman -Syu
とりあえず直ったのでよかった。
とはいえ、backup(2019)のarch-imgがあったので、次にやるなら、おそらく、それをadb push
すると思います。
$ adb push arch-arm-back-2019.img /sdcard/
# 以下はあくまでイメージです、実際に実行できるコマンドではありません
$ chroot /sdcard/arch-arm-back-2019.img
$ pacman -S libarchive base-devel
$ pacman -Syu