55 lines
2.2 KiB
Markdown
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
|
||
|
```
|
||
|
|