我正在开发一些在Linux/BSD/Mac/Windows上运行的bash脚本,我想把它们移植到busybox环境中,让它们在android终端模拟器(如termux)中运行。为busybox / android建立测试环境的最好方法是什么?我试过使用docker busybox镜像,我还需要能够添加ssh客户端或rsync这样的工具,它们通过apt install rsync在android termux中工作,但由于显而易见的原因在docker镜像中不工作。有什么主意吗?谢谢。
apt install rsync
e5nqia271#
Busybox本身实际上只是一个多调用二进制文件,可以像许多不同的工具一样工作,在纯busybox环境中,你可能最终会编译busybox来包含你需要的小程序(比如rsync)。在你的问题中,你引用了一个apt install rsync命令。Busybox没有apt命令,就像你提到的那样。安装一个包管理器是可能的,它反过来可以根据需要安装东西。Alpine Linux发行版有一个非常小的软件包管理器apk,它也可以使用busybox。Docker Hub上的alpine官方映像基本上只有busybox和apk。它的软件包基于libmusl而不是glibc。肯定值得一看alpine。下面是如何在alpine上安装rsync:
apt
apk
alpine
$ 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映像)。
busybox
1条答案
按热度按时间e5nqia271#
Busybox本身实际上只是一个多调用二进制文件,可以像许多不同的工具一样工作,在纯busybox环境中,你可能最终会编译busybox来包含你需要的小程序(比如rsync)。
在你的问题中,你引用了一个
apt install rsync
命令。Busybox没有apt
命令,就像你提到的那样。安装一个包管理器是可能的,它反过来可以根据需要安装东西。Alpine Linux发行版有一个非常小的软件包管理器
apk
,它也可以使用busybox。Docker Hub上的alpine
官方映像基本上只有busybox和apk。它的软件包基于libmusl而不是glibc。肯定值得一看alpine。下面是如何在alpine上安装rsync:
其他小型的包管理器也可以工作,但我不知道它们安装到一个精简的busybox根目录中有多容易(比如
busybox
映像)。