+++ date = "2021-06-28" tags = ["android"] title = "androidで動いてたarch-armが壊れた" slug = "android-armv7-arch" +++ 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`ってアプリを使いますが、便利です。 ```sh $ 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 ``` ![](https://raw.githubusercontent.com/syui/img/master/other/android_archlinux_armv7h_pacman_6.0.png) とりあえず直ったのでよかった。 とはいえ、backup(2019)のarch-imgがあったので、次にやるなら、おそらく、それを`adb push`すると思います。 ```sh $ adb push arch-arm-back-2019.img /sdcard/ # 以下はあくまでイメージです、実際に実行できるコマンドではありません $ chroot /sdcard/arch-arm-back-2019.img $ pacman -S libarchive base-devel $ pacman -Syu ```