Distrobox

跳转至: 导航, 搜索
Distrobox

Distrobox-logomark-dark.svg

在终端内使用任何 Linux 发行版。

为 openSUSE 下载

软件包包名:distrobox
发行商: openSUSE
开发者: 89luca89
许可证: GPL-v3
网站: https://github.com/89luca89/distrobox


简而言之,Distrobox 是 podman 或 docker 的一个精致的包装器,用于创建和启动与主机高度集成的容器。

简介

Distrobox 环境基于 OCI 镜像。该镜像用于创建一个容器,通过提供对用户主目录、Wayland 和 X11 套接字、网络、可移动设备(如 USB 记忆棒)、systemd 日志、SSH 代理、D-Bus、ulimits、/dev 和 udev 数据库等资源的访问,与操作系统的其余部分无缝集成。

Distrobox 实现了 toolbox 引入的相同概念,但使用 POSIX sh 以简化的方式实现,旨在实现更广泛的兼容性。

Distrobox 出现的原因:

  • 为了在不可变操作系统上提供可变环境,例如 Endless OS、Fedora Silverblue、OpenSUSE MicroOS 或 SteamOS3;
  • 为 sudoless 设置提供本地特权环境(例如,公司提供的笔记本电脑、安全原因等……);
  • 为了将稳定的基础系统(例如 Debian Stable、Ubuntu LTS、RedHat)与前沿的开发或游戏环境(例如 Arch、OpenSUSE Tumbleweed 或带有最新 Mesa 的 Fedora)混合搭配;
  • 为了利用 docker/podman 的大量精选发行版映像来管理多个环境。


Distrobox 的目标:

Distrobox 项目旨在将任意发行版用户空间引入其他支持 podman 或 docker 的任意发行版。它是用 POSIX sh 编写的,以便尽可能可移植,并且不存在依赖性和 glibc 版本兼容性问题。

请参阅此处以获取支持的容器管理器和最低支持版本的列表。

它还旨在尽快进入容器。

常用命令

distrobox-assemble        #根据配置文件创建和销毁容器
distrobox-create          #创建容器
distrobox-enter           #进入容器
distrobox-ephemeral       #创建一个临时容器,退出 shell 时销毁它
distrobox-list            #列出使用 distrobox 创建的容器
distrobox-rm              #删除使用 distrobox 创建的容器
distrobox-stop            #停止使用 distrobox 创建的正在运行的容器
distrobox-upgrade         #一次性升级一个或多个使用 distrobox 创建的正在运行的容器
distrobox-generate-entry  #在应用程序列表中创建已创建容器的条目
distrobox-init            #容器的入口点(不能手动使用)
distrobox-export          #用于将应用程序和服务从容器导出到主机
distrobox-host-exec       #在容器内部从主机运行命令/程序

它还包括一个小包装器,用于使用 distrobox COMMAND 启动命令,而不是调用单个文件。

请在此处查看使用文档并查看一些有关如何使用它的便捷提示

安装

对于 tumbleweed 用户:

sudo zypper in distrobox

Leap 用户请查阅 distrobox 页面查找适用于当前系统的社区软件包或者参考开发者记录的其他安装办法

快速开始

如果遇到下载问题,你可以查阅SDB:配置代理以获得帮助;例如你可以在终端中设置好环境变量,然后再使用 distrobox。

新建一个 distrobox:

distrobox create -n test

进入新建的 distrobox:

distrobox enter test

添加一个不同的发行版,例如 Ubuntu 20.04:

distrobox create -i ubuntu:20.04

在 distrobox 中执行命令:

distrobox enter test -- command-to-execute

列出正在运行的 distrobox:

distrobox list

停止正在运行的 distrobox:

distrobox stop test

删除 distrobox:

distrobox rm test

您可以在此处查看更多高级用法,并在此处查看有用提示的完整列表。

配置 Distrobox

配置文件可以放置在以下路径中,以下列表从最不重要到最重要进行排序:

  • /usr/share/distrobox/distrobox.conf
  • /usr/etc/distrobox/distrobox.conf
  • /etc/distrobox/distrobox.conf
  • ${HOME}/.config/distrobox/distrobox.conf
  • ${HOME}/.distroboxrc

您可以指定内部 distrobox 配置和 distrobox 特定的环境变量。

配置文件示例:

container_always_pull="1"
container_generate_entry=0
container_manager="docker"
container_image_default="registry.opensuse.org/opensuse/toolbox:latest"
container_name_default="test-name-1"
container_user_custom_home="$HOME/.local/share/container-home-test"
container_init_hook="~/.local/distrobox/a_custom_default_init_hook.sh"
container_pre_init_hook="~/a_custom_default_pre_init_hook.sh"
container_manager_additional_flags="--env-file /path/to/file --custom-flag"
container_additional_volumes="/example:/example1 /example2:/example3:ro"
non_interactive="1"
skip_workdir="0"
PATH="$PATH:/path/to/custom/podman"

或者,可以使用 ENV 变量指定首选项:

DBX_CONTAINER_ALWAYS_PULL
DBX_CONTAINER_CUSTOM_HOME
DBX_CONTAINER_IMAGE
DBX_CONTAINER_MANAGER
DBX_CONTAINER_NAME
DBX_CONTAINER_ENTRY
DBX_NON_INTERACTIVE
DBX_SKIP_WORKDIR

外部链接