1
0
hugo/content/blog/2021-06-28-armv7.md
2024-04-23 22:21:26 +09:00

55 lines
2.2 KiB
Markdown

+++
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
```