Android / busybox / termux测试环境

cld4siwp  于 2023-01-07  发布在  Android
关注(0)|答案(1)|浏览(237)

我正在开发一些在Linux/BSD/Mac/Windows上运行的bash脚本,我想把它们移植到busybox环境中,让它们在android终端模拟器(如termux)中运行。
为busybox / android建立测试环境的最好方法是什么?我试过使用docker busybox镜像,我还需要能够添加ssh客户端或rsync这样的工具,它们通过apt install rsync在android termux中工作,但由于显而易见的原因在docker镜像中不工作。
有什么主意吗?谢谢。

e5nqia27

e5nqia271#

Busybox本身实际上只是一个多调用二进制文件,可以像许多不同的工具一样工作,在纯busybox环境中,你可能最终会编译busybox来包含你需要的小程序(比如rsync)。
在你的问题中,你引用了一个apt install rsync命令。Busybox没有apt命令,就像你提到的那样。安装一个包管理器是可能的,它反过来可以根据需要安装东西。
Alpine Linux发行版有一个非常小的软件包管理器apk,它也可以使用busybox。Docker Hub上的alpine官方映像基本上只有busybox和apk。它的软件包基于libmusl而不是glibc。肯定值得一看alpine。
下面是如何在alpine上安装rsync:

$ docker run --rm -it alpine sh
/ # which busybox
/bin/busybox
/ # ls -lah `which mv`
lrwxrwxrwx    1 root     root          12 Jun 23 19:37 /bin/mv -> /bin/busybox
/ # apk --no-cache add rsync
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
(1/4) Installing libattr (2.4.47-r4)
(2/4) Installing libacl (2.2.52-r2)
(3/4) Installing popt (1.16-r6)
(4/4) Installing rsync (3.1.2-r2)
Executing busybox-1.24.2-r9.trigger
OK: 5 MiB in 15 packages
/ # ls -lah `which rsync`
-rwxr-xr-x    1 root     root      396.0K Apr 29 16:02 /usr/bin/rsync
/ #

其他小型的包管理器也可以工作,但我不知道它们安装到一个精简的busybox根目录中有多容易(比如busybox映像)。

相关问题