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让人想起嵌入式软件包管理器。
太棒了!像魅力一样工作,似乎足够接近android termux环境。 – deajan
Termux是否使用Busybox?当我开始Termux时,我看到BusyBox .. – Timo