From 54abd4dfa5a06d281c98714f0e9e918cd94f85fc Mon Sep 17 00:00:00 2001 From: GuangJie1 Date: Tue, 24 Jun 2025 11:31:12 +0800 Subject: [PATCH] add busybox readme --- Others/busybox/README.md | 38 +++++++++++++++++++++++ Others/busybox/doc/image-info.yml | 46 ++++++++++++++++++++++++++++ Others/busybox/doc/picture/logo.png | Bin 0 -> 10913 bytes 3 files changed, 84 insertions(+) create mode 100644 Others/busybox/README.md create mode 100644 Others/busybox/doc/image-info.yml create mode 100644 Others/busybox/doc/picture/logo.png diff --git a/Others/busybox/README.md b/Others/busybox/README.md new file mode 100644 index 0000000..56244e9 --- /dev/null +++ b/Others/busybox/README.md @@ -0,0 +1,38 @@ + +# Quick reference + +- The official BusyBox docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). +# BusyBox | openEuler +Current BiSheng BusyBox images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +[BusyBox](https://busybox.net/downloads/BusyBox.html) is a multi-call binary. A multi-call binary is an executable program that performs the same job as more than one utility program. That means there is just a single BusyBox binary, but that single binary acts like a large number of utilities. This allows BusyBox to be smaller since all the built-in utility programs (we call them applets) can share code for many common operations. + +# Supported tags and respective Dockerfile links +The tag of each BusyBox docker image is consist of the version of BusyBox and the version of basic image. The details are as follows + +| Tags | Currently | Architectures| +|------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|--| +| [1.37.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/busybox/1.37.0/24.03-lts-sp1/Dockerfile) | BusyBox 1.37.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + +# Usage + + You can also invoke BusyBox by issuing a command as an argument on the command line. For example, entering + + busybox ls + + will also cause BusyBox to behave as 'ls'. + + Of course, adding '/bin/busybox' into every command would be painful. So most people will invoke BusyBox using links to the BusyBox binary. + + ln -s /usr/local/busybox/bin/busybox ls + ./ls + + will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled into BusyBox). Generally speaking, you should never need to make all these links yourself, as the BusyBox build system will do this for you when you run the 'make install' command. + If you invoke BusyBox with no arguments, it will provide you with a list of the applets that have been compiled into your BusyBox binary. + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/Others/busybox/doc/image-info.yml b/Others/busybox/doc/image-info.yml new file mode 100644 index 0000000..3e657d3 --- /dev/null +++ b/Others/busybox/doc/image-info.yml @@ -0,0 +1,46 @@ +name: busybox +category: others +description: BusyBox 是一个为类 UNIX 系统设计的 超轻量工具集,它将常用的 Unix 命令(如 ls, cp, mv, sh, ifconfig 等)集成到一个单一的可执行文件中。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + busybox镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + | [1.37.0-oe2403sp1](https://gitee.com/openeuler/openeuler-docker-images/blob/master/Others/busybox/1.37.0/24.03-lts-sp1/Dockerfile) | BusyBox 1.37.0 on openEuler 24.03-LTS-SP1 | amd64, arm64 | + + 注意,以下`{Tag}`的值按照需求,替换为上述表格中的tag内容。 + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/busybox:{Tag} + ``` + +usage: | + 你可以通过在命令行中将命令作为参数传递来调用 BusyBox。例如,输入: + + busybox ls + + 也会使 BusyBox 表现得像 ls 命令。 + + 当然,如果每次命令都要加上 /bin/busybox 会很麻烦。所以大多数人会通过为 BusyBox 创建链接(软链接)来使用它: + + ln -s /usr/local/busybox/bin/busybox ls + ./ls + + 这将使 BusyBox 表现为 ls(前提是 ls 命令已被编译进 BusyBox)。 + + 一般来说,你不需要手动为每个命令创建这些链接,因为当你运行 make install 时,BusyBox 的构建系统会自动为你完成这些操作。 + + 如果你直接运行 BusyBox 而不带任何参数,它会列出该 BusyBox 可执行文件中已经编译进去的所有命令(即 applets)。 + +license: GPL-2.0 license +similar_packages: + - N/A +dependency: + - N/A \ No newline at end of file diff --git a/Others/busybox/doc/picture/logo.png b/Others/busybox/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3126a5292fd4285a5155c324d0d68e5b3e0d4b GIT binary patch literal 10913 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