2016-10-19 413 views
1

我正在开发一些在Linux/BSD/Mac/Windows上运行的bash脚本。 我想将它们移植到busybox环境,让它们在android终端模拟器(如termux)中运行。Android/busybox/termux测试envionment

获取busybox/android测试环境的最佳方法是什么? 我试图去与码头的busybox图像。 我还需要能够添加类似ssh客户端或rsync的工具,它可以通过apt install rsync在Android termux中工作,但由于显而易见的原因,在Docker镜像中不起作用。

任何想法? 谢谢。

回答

3

Busybox本身实际上只是一个可以像许多不同工具一样运行的多重二进制二进制文件。在纯粹的busybox环境中,你最终可能会编译busybox来包含你需要的applet(比如rsync)。

在你的问题中,你引用了一个命令apt install rsync。像你提到的,Busybox没有apt命令。有可能安装一个软件包管理器,这个软件包管理器反过来可以按需安装。

Alpine Linux发行版有一个非常小的包管理器,名为apk,它也可以使用busybox。 Docker Hub上的alpine官方图像基本上只有busybox和apk。它的软件包基于libmusl而不是glibc。肯定值得看看阿尔卑斯山。

下面是如何在高山上安装的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图像)。 opkg和ipkg让人想起嵌入式软件包管理器。

+0

太棒了!像魅力一样工作,似乎足够接近android termux环境。 – deajan

+0

Termux是否使用Busybox?当我开始Termux时,我看到BusyBox .. – Timo