2023-08-03 11:11:53 +03:00
<img src="assets/splash.svg" style="border-radius:12px">
2023-06-17 15:05:06 +02:00
# Distrobox
2023-03-26 16:57:00 +03:00
2023-04-03 06:09:46 +03:00
<sub>previous logo credits [j4ckr3d ](https://github.com/j4ckr3d )
2023-03-26 16:14:05 +02:00
current logo credits [David Lapshin ](https://github.com/daudix-UFO )<sub>
2022-01-02 18:13:31 +01:00
2022-01-19 10:35:18 +01:00

2022-03-15 12:02:13 +01:00
[](https://github.com/89luca89/distrobox/actions/workflows/compatibility.yml)
2022-01-29 18:47:56 +01:00
[](../COPYING.md)
2022-01-19 10:35:18 +01:00
[](https://github.com/89luca89/distrobox/releases/latest)
2022-03-31 13:05:11 +02:00
[](https://repology.org/project/distrobox/versions)
2022-01-29 18:47:56 +01:00
[](https://github.com/89luca89/distrobox/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[](https://github.com/89luca89/distrobox/issues?q=is%3Aissue+is%3Aopen+label%3A%22bug%22)
2022-04-05 17:12:42 +02:00
Use any Linux distribution inside your terminal. Enable both backward and forward
compatibility with software and freedom to use whatever distribution you’ re more
comfortable with.
2023-09-24 23:10:50 +02:00
Distrobox uses `podman` , `docker` or [`lilipod` ](https://github.com/89luca89/lilipod ) to create containers using the Linux distribution
2022-04-05 17:12:42 +02:00
of your choice.
The created container will be tightly integrated with the host, allowing sharing
of the HOME directory of the user, external storage, external USB devices and
2022-01-02 18:13:31 +01:00
graphical apps (X11/Wayland), and audio.
---
2023-09-20 20:32:40 +02:00
[Documentation ](https://distrobox.it/#distrobox ) -
2022-05-02 19:39:09 +02:00
[Matrix Room ](https://matrix.to/#/%23distrobox:matrix.org ) -
[Telegram Group ](https://t.me/distrobox )
---
2022-01-02 18:13:31 +01:00

---
- [Distrobox ](#distrobox )
2022-04-05 17:12:42 +02:00
- [What it does ](#what-it-does )
2022-04-04 15:14:39 +02:00
- [See it in action ](#see-it-in-action )
2022-04-18 23:12:26 +03:00
- [Why? ](#why )
2022-04-04 15:14:39 +02:00
- [Aims ](#aims )
2023-09-12 07:03:36 +00:00
- [Security implications ](#security-implications )
- [Quick Start ](#quick-start )
- [Assemble Distrobox ](#assemble-distrobox )
- [Configure Distrobox ](#configure-distrobox )
2022-01-02 18:13:31 +01:00
- [Installation ](#installation )
2022-08-17 17:38:50 +02:00
- [Alternative methods ](#alternative-methods )
2023-03-19 10:35:45 +01:00
- [Curl or Wget ](#curl-or-wget )
2022-08-17 17:38:50 +02:00
- [Git ](#git )
- [Dependencies ](#dependencies )
2022-09-05 23:32:08 +02:00
- [Install Podman without root ](compatibility.md#install-podman-in-a-static-manner )
2022-04-04 15:14:39 +02:00
- [Uninstallation ](#uninstallation )
2022-01-02 19:07:31 +01:00
- [Compatibility ](compatibility.md )
2022-04-04 15:14:39 +02:00
- [Supported container managers ](compatibility.md#supported-container-managers )
- [Host Distros ](compatibility.md#host-distros )
2023-09-12 18:24:11 +02:00
- [Install on the Steamdeck ](posts/steamdeck_guide.md )
2022-04-04 15:14:39 +02:00
- [Containers Distros ](compatibility.md#containers-distros )
2022-01-13 19:23:12 +01:00
- [Usage ](usage/usage.md )
2022-04-18 23:12:26 +03:00
- [Outside the distrobox ](usage/usage.md#outside-the-distrobox )
2023-03-29 17:51:44 +02:00
- [distrobox-assemble ](usage/distrobox-assemble.md )
2022-04-04 15:14:39 +02:00
- [distrobox-create ](usage/distrobox-create.md )
- [distrobox-enter ](usage/distrobox-enter.md )
2022-06-28 05:50:03 +08:00
- [distrobox-ephemeral ](usage/distrobox-ephemeral.md )
2022-09-21 15:02:41 +02:00
- [distrobox-generate-entry ](usage/distrobox-generate-entry.md )
2022-04-04 15:14:39 +02:00
- [distrobox-list ](usage/distrobox-list.md )
- [distrobox-rm ](usage/distrobox-rm.md )
- [distrobox-stop ](usage/distrobox-stop.md )
2022-09-21 15:02:41 +02:00
- [distrobox-upgrade ](usage/distrobox-upgrade.md )
2022-04-18 23:12:26 +03:00
- [Inside the distrobox ](usage/usage.md#inside-the-distrobox )
2022-04-04 15:14:39 +02:00
- [distrobox-export ](usage/distrobox-export.md )
2022-05-25 13:14:44 +02:00
- [distrobox-host-exec ](usage/distrobox-host-exec.md )
2022-04-04 15:14:39 +02:00
- [distrobox-init ](usage/distrobox-init.md )
2022-04-05 17:12:42 +02:00
- [Configure distrobox ](#configure-distrobox )
2022-01-02 19:07:31 +01:00
- [Useful tips ](useful_tips.md )
2023-06-13 22:41:59 +02:00
- [Launch a distrobox from you applications list ](useful_tips.md#launch-a-distrobox-from-you-applications-list )
2022-04-04 15:14:39 +02:00
- [Create a distrobox with a custom HOME directory ](useful_tips.md#create-a-distrobox-with-a-custom-home-directory )
- [Mount additional volumes in a distrobox ](useful_tips.md#mount-additional-volumes-in-a-distrobox )
- [Use a different shell than the host ](useful_tips.md#use-a-different-shell-than-the-host )
2023-06-13 22:41:59 +02:00
- [Run the container with real root ](useful_tips.md#run-the-container-with-real-root )
2023-08-26 20:17:10 +00:00
- [Run Debian/Ubuntu container behind proxy ](useful_tips.md#run-debianubuntu-container-behind-proxy )
2023-06-13 22:41:59 +02:00
- [Using a command other than sudo to run a rootful container ](useful_tips.md#using-a-command-other-than-sudo-to-run-a-rootful-container )
2022-04-04 15:14:39 +02:00
- [Duplicate an existing distrobox ](useful_tips.md#duplicate-an-existing-distrobox )
- [Export to the host ](useful_tips.md#export-to-the-host )
- [Execute commands on the host ](useful_tips.md#execute-commands-on-the-host )
2023-09-12 07:03:36 +00:00
- [Resolve "Error cannot open display: :0" ](useful_tips.md#resolve-error-cannot-open-display-0 )
2022-04-04 15:14:39 +02:00
- [Enable SSH X-Forwarding when SSH-ing in a distrobox ](useful_tips.md#enable-ssh-x-forwarding-when-ssh-ing-in-a-distrobox )
- [Using init system inside a distrobox ](useful_tips.md#using-init-system-inside-a-distrobox )
2023-08-26 20:17:10 +00:00
- [Using Docker inside a Distrobox ](useful_tips.md#using-docker-inside-a-distrobox )
- [Using Podman inside a Distrobox ](useful_tips.md#using-podman-inside-a-distrobox )
- [Using LXC inside a Distrobox ](useful_tips.md#using-lxc-inside-a-distrobox )
2023-09-02 08:51:01 +00:00
- [Using Waydroid inside a Distrobox ](useful_tips.md#using-waydroid-inside-a-distrobox )
2023-09-12 07:03:36 +00:00
- [Manual Installation ](useful_tips.md#manual-installation )
- [Automated Installation ](useful_tips.md#automated-installation )
2023-08-26 20:17:10 +00:00
- [Using host's Podman or Docker inside a Distrobox ](useful_tips.md#using-hosts-podman-or-docker-inside-a-distrobox )
2022-04-04 15:14:39 +02:00
- [Using distrobox as main cli ](useful_tips.md#using-distrobox-as-main-cli )
2022-05-28 19:53:09 +02:00
- [Using a different architecture ](useful_tips.md#using-a-different-architecture )
2023-06-13 22:41:59 +02:00
- [Using the GPU inside the container ](useful_tips.md#using-the-gpu-inside-the-container )
2023-08-26 20:17:10 +00:00
- [Using nvidia-container-toolkit ](useful_tips.md#using-nvidia-container-toolkit )
2023-06-13 22:41:59 +02:00
- [Slow creation on podman and image size getting bigger with distrobox create ](useful_tips.md#slow-creation-on-podman-and-image-size-getting-bigger-with-distrobox-create )
2022-04-04 15:14:39 +02:00
- [Container save and restore ](useful_tips.md#container-save-and-restore )
- [Check used resources ](useful_tips.md#check-used-resources )
2023-06-13 22:41:59 +02:00
- [Pre-installing additional package repositories ](useful_tips.md#pre-installing-additional-package-repositories )
- [Apply resource limitation on the fly ](useful_tips.md#apply-resource-limitation-on-the-fly )
2022-01-10 09:52:17 +01:00
- [Posts ](posts/posts.md )
2023-09-13 09:42:27 +02:00
- [Create a dedicated distrobox container ](posts/distrobox_custom.md )
2023-09-12 18:50:21 +02:00
- [Execute a command on the Host ](posts/execute_commands_on_host.md )
- [Install Podman in HOME ](posts/install_podman_static.md )
2023-09-15 10:58:15 +02:00
- [Install Lilipod in HOME ](posts/install_lilipod_static.md )
2023-09-12 18:50:21 +02:00
- [Install on Steamdeck ](posts/steamdeck_guide.md )
- [Integrate VSCode and Distrobox ](posts/integrate_vscode_distrobox.md )
2022-12-19 15:16:24 +01:00
- [Run Libvirt using distrobox ](posts/run_libvirt_in_distrobox.md )
2022-04-18 23:12:26 +03:00
- [Run latest GNOME and KDE Plasma using distrobox ](posts/run_latest_gnome_kde_on_distrobox.md )
2022-01-02 19:20:01 +01:00
- [Featured Articles ](featured_articles.md )
2022-05-01 09:07:44 +02:00
- [Articles ](featured_articles.md#articles )
- [Run Distrobox on Fedora Linux - Fedora Magazine ](https://fedoramagazine.org/run-distrobox-on-fedora-linux/ )
- [DistroBox – Run Any Linux Distribution Inside Linux Terminal - TecMint ](https://www.tecmint.com/distrobox-run-any-linux-distribution/ )
2022-06-17 18:36:29 +02:00
- [Distrobox: Try Multiple Linux Distributions via the Terminal - It's FOSS ](https://itsfoss.com/distrobox/ )
2022-05-01 09:07:44 +02:00
- [Distrobox - How to quickly deploy a Linux distribution with GUI applications via a container ](https://www.techrepublic.com/article/how-to-quickly-deploy-a-linux-distribution-with-gui-applications-via-a-container/ )
- [Using Distrobox To Augment The Package Selection On Clear Linux - Phoronix ](https://www.phoronix.com/scan.php?page=news_item&px=Distrobox-Clear-Linux )
- [Benchmark: benefits of Clear Linux containers (distrobox) - Phoronix ](https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1305326-clear-linux-container-performance-continues-showing-sizable-gains )
- [Distrobox - A great item in the Linux toolbelt - phmurphy's blog ](https://phmurphy.com/posts/distrobox-toolbelt/ )
2022-06-17 18:36:29 +02:00
- [Distrobox: Run (pretty much) any Linux distro under almost any other - TheRegister ](https://www.theregister.com/2022/05/31/distrobox_130_released/ )
2022-05-01 09:07:44 +02:00
- [Day-to-day differences between Fedora Silverblue and Ubuntu - castrojo's blog ](https://www.ypsidanger.com/day-to-day-advantages-of-fedora-silverblue/ )
2022-05-15 10:50:45 +02:00
- [Distrobox is Awesome - Running Window Manager and Desktop environments using Distrobox ](https://cloudyday.tech.blog/2022/05/14/distrobox-is-awesome/ )
2022-06-17 18:36:29 +02:00
- [Japanese input on Clear Linux with Mozc via Ubuntu container with Distrobox ](https://impsbl.hatenablog.jp/entry/JapaneseInputOnClearLinuxWithMozc_en )
- [MID (MaXX Interactive Desktop) on Clear Linux via Ubuntu container with Distrobox ](https://impsbl.hatenablog.jp/entry/MIDonClearLinuxWithDistrobox_en )
- [Running Other Linux Distros with Distrobox on Fedora Linux - bandithijo's blog ](featured_articles.md )
2022-12-19 15:16:24 +01:00
- [Talks and Videos ](featured_articles.md#talks )
2022-05-01 09:07:44 +02:00
- [Linux App Summit 2022 - Distrobox: Run Any App On Any Distro - BoF ](https://github.com/89luca89/distrobox/files/8598433/distrobox-las-talk.pdf )
2022-12-19 15:16:24 +01:00
- [Opensource Summit 2022 - Distrobox: Run Any App On Any Distro ](https://www.youtube.com/watch?v=eM1p47tow4o )
2022-06-17 18:36:29 +02:00
- [A "Box" Full of Tools and Distros - Dario Faggioli @ OpenSUSE Conference 2022 ](https://www.youtube.com/watch?v=_RzARte80SQ )
2022-12-19 15:16:24 +01:00
- [Podman Community Meeting October 4, 2022 ](https://www.youtube.com/watch?v=JNijOHL4_Ko )
- [Distrobox opens the Steam Deck to a whole new world (GUIDE) - GamingOnLinux ](https://www.youtube.com/watch?v=kkkyNA31KOA )
2023-06-13 22:41:59 +02:00
- [CERN - Containerization as a means of extending the lifetime of HDL development tools ](https://cdsweb.cern.ch/record/2859962?ln=ja )
- [How to Code with Distrobox on the Steam Deck ](https://www.youtube.com/watch?v=qic7lmACqPo )
- [Why you should be running the MicroOS Desktop ](https://www.youtube.com/watch?v=lKYLF1tA4Ik )
2022-04-04 15:14:39 +02:00
- [Podcasts ](featured_articles.md#podcasts )
2022-01-02 18:13:31 +01:00
2022-01-04 02:18:23 +01:00
---
2022-01-02 18:13:31 +01:00
## What it does
2023-09-15 10:58:15 +02:00
Simply put it's a fancy wrapper around `podman` , `docker` or `lilipod` to create and start
2022-04-05 17:12:42 +02:00
containers highly integrated with the hosts.
2022-01-02 18:13:31 +01:00
The distrobox environment is based on an OCI image.
2022-04-05 17:12:42 +02:00
This image is used to create a container that seamlessly integrates with the
rest of the operating system by providing access to the user's home directory,
the Wayland and X11 sockets, networking, removable devices (like USB sticks),
systemd journal, SSH agent, D-Bus,
2022-01-02 18:13:31 +01:00
ulimits, /dev and the udev database, etc...
2022-04-05 17:12:42 +02:00
It implements the same concepts introduced by <https://github.com/containers/toolbox>
but in a simplified way using POSIX sh and aiming at broader compatibility.
2022-01-02 18:13:31 +01:00
All the props go to them as they had the great idea to implement this stuff.
2023-03-29 09:27:54 +02:00
It is divided into 12 commands:
2022-01-02 18:13:31 +01:00
2023-03-29 09:27:54 +02:00
- `distrobox-assemble` - creates and destroy containers based on a config file
2022-01-02 18:13:31 +01:00
- `distrobox-create` - creates the container
- `distrobox-enter` - to enter the container
2023-03-29 09:27:54 +02:00
- `distrobox-ephemeral` - create a temporal container, destroy it when exiting the shell
2022-01-02 18:13:31 +01:00
- `distrobox-list` - to list containers created with distrobox
- `distrobox-rm` - to delete a container created with distrobox
2022-03-10 22:48:49 +01:00
- `distrobox-stop` - to stop a running container created with distrobox
2022-08-31 20:11:58 +02:00
- `distrobox-upgrade` - to upgrade one or more running containers created with distrobox at once
2022-08-28 19:15:18 +02:00
- `distrobox-generate-entry` - to create an entry of a created container in the applications list
2022-04-05 17:12:42 +02:00
- `distrobox-init` - the entrypoint of the container (not meant to be used manually)
- `distrobox-export` - it is meant to be used inside the container,
useful to export apps and services from the container to the host
2022-05-25 13:14:44 +02:00
- `distrobox-host-exec` - to run commands/programs from the host, while inside
of the container
2022-01-02 18:13:31 +01:00
2022-04-05 17:12:42 +02:00
It also includes a little wrapper to launch commands with `distrobox COMMAND`
instead of calling the single files.
2022-01-02 18:13:31 +01:00
2022-05-02 19:39:09 +02:00
Please check [the usage docs here ](usage/usage.md ) and [see some handy tips on how to use it ](useful_tips.md )
2022-02-11 23:42:06 +01:00
### See it in action
2022-04-05 17:12:42 +02:00
Thanks to [castrojo ](https://github.com/castrojo ), you can see Distrobox in
action in this explanatory video on his setup with Distrobox, Toolbx,
2023-02-27 13:04:13 -05:00
Fedora Silverblue for the [uBlue ](https://github.com/ublue-os ) project
2022-04-05 17:12:42 +02:00
(check it out!)
2022-02-11 23:42:06 +01:00
[](https://www.youtube.com/watch?v=Q2PrISAOtbY)
2022-04-04 15:14:39 +02:00
## Why
2022-01-02 18:13:31 +01:00
2022-09-05 23:32:08 +02:00
- Provide a mutable environment on an immutable OS, like [Endless OS,
2023-09-15 10:58:15 +02:00
Fedora Silverblue, OpenSUSE MicroOS, ChromeOS](compatibility.md#host -distros) or [SteamOS3 ](posts/steamdeck_guide.md )
2022-04-05 17:12:42 +02:00
- Provide a locally privileged environment for sudoless setups
(eg. company-provided laptops, security reasons, etc...)
- To mix and match a stable base system (eg. Debian Stable, Ubuntu LTS, RedHat)
with a bleeding-edge environment for development or gaming
(eg. Arch, OpenSUSE Tumbleweed or Fedora with latest Mesa)
- Leverage high abundance of curated distro images for docker/podman to
manage multiple environments
2022-01-02 18:13:31 +01:00
2023-03-19 15:53:56 +08:00
Refer to the compatibility list for an overview of supported host's distro
2022-04-05 17:12:42 +02:00
[HERE ](compatibility.md#host-distros ) and container's distro [HERE ](compatibility.md#containers-distros ).
2022-01-03 18:01:05 +01:00
2022-01-02 18:13:31 +01:00
### Aims
2022-04-05 17:12:42 +02:00
This project aims to bring **any distro userland to any other distro**
2023-09-15 10:58:15 +02:00
supporting podman, docker or lilipod.
2022-04-05 17:12:42 +02:00
It has been written in POSIX sh to be as portable as possible and not have
problems with dependencies and glibc version's compatibility.
2022-01-03 18:01:05 +01:00
2022-04-05 17:12:42 +02:00
Refer [HERE ](compatibility.md#supported-container-managers ) for a list of
supported container managers and minimum supported versions.
2022-01-02 18:13:31 +01:00
2022-04-05 17:12:42 +02:00
It also aims to enter the container **as fast as possible** , every millisecond
adds up if you use the container as your default environment for your terminal:
2022-01-02 18:13:31 +01:00
2022-04-05 17:12:42 +02:00
These are some sample results of `distrobox-enter` on the same container on my
2022-08-30 10:56:14 +02:00
weak laptop:
2022-01-02 18:13:31 +01:00
2022-08-30 10:56:14 +02:00
```console
~$ hyperfine --warmup 3 --runs 100 "distrobox enter bench -- whoami"
Benchmark 1: distrobox enter bench -- whoami
Time (mean ± σ ): 395.6 ms ± 10.5 ms [User: 167.4 ms, System: 62.4 ms]
Range (min … max): 297.3 ms … 408.9 ms 100 runs
2022-01-02 18:13:31 +01:00
```
2022-03-17 18:31:27 +00:00
#### Security implications
2022-04-13 08:54:52 -07:00
Isolation and sandboxing is **not** the main aim of the project, on the contrary
it aims to tightly integrate the container with the host.
2022-04-05 17:12:42 +02:00
The container will have complete access to your home, pen drives and so on,
so do not expect it to be highly sandboxed like a plain
2022-03-17 18:31:27 +00:00
docker/podman container or a flatpak.
2023-09-15 10:58:15 +02:00
⚠️ **BE CAREFUL** :⚠️ if you use docker, or you use podman/lilipod with the `--root/-r` flag,
2022-05-01 08:03:03 +02:00
the containers will run as root, so **root inside the rootful container can modify
system stuff outside the container**,
2023-08-07 01:39:10 +02:00
Be also aware that **In rootful mode, you'll be asked to setup user's password** , this will
ensure at least that the container is not a passwordless gate to root,
2023-09-15 10:58:15 +02:00
but if you have security concern for this, **use podman or lilipod that runs in rootless mode** .
2022-04-05 17:12:42 +02:00
Rootless docker is still not working as intended and will be included in the future
when it will be complete.
2022-03-31 13:05:11 +02:00
2022-04-05 17:12:42 +02:00
That said, it is in the works to implement some sort of decoupling with the host,
as discussed here: [#28 Sandboxed mode ](https://github.com/89luca89/distrobox/issues/28 )
2022-03-17 18:31:27 +00:00
2022-01-04 01:23:00 +01:00
---
2023-06-13 22:41:59 +02:00
# Quick Start
2022-03-17 19:13:43 +00:00
2023-06-13 22:41:59 +02:00
**Create a new distrobox:**
2022-03-17 19:13:43 +00:00
`distrobox create -n test`
2023-08-28 06:51:24 +00:00
**Create a new distrobox with Systemd (acts similar to an LXC):**
`distrobox create --name test --init --image debian:latest --additional-packages "systemd libpam-systemd"`
2023-06-13 22:41:59 +02:00
**Enter created distrobox:**
2022-03-17 19:13:43 +00:00
`distrobox enter test`
2023-03-29 09:27:54 +02:00
2023-06-13 22:41:59 +02:00
**Add one with a [different distribution ](https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#host-distros ),
eg Ubuntu 20.04:**
2022-08-29 16:09:07 -04:00
2022-08-31 20:11:58 +02:00
`distrobox create -i ubuntu:20.04`
2022-03-17 19:13:43 +00:00
2023-06-13 22:41:59 +02:00
**Execute a command in a distrobox:**
2022-03-17 19:13:43 +00:00
`distrobox enter test -- command-to-execute`
2023-06-13 22:41:59 +02:00
**List running distroboxes:**
2022-03-17 19:13:43 +00:00
`distrobox list`
2023-06-13 22:41:59 +02:00
**Stop a running distrobox:**
2022-03-17 19:13:43 +00:00
`distrobox stop test`
2023-06-13 22:41:59 +02:00
**Remove a distrobox:**
2022-03-17 19:13:43 +00:00
`distrobox rm test`
2022-04-05 17:12:42 +02:00
You can check [HERE for more advanced usage ](usage/usage.md )
and check a [comprehensive list of useful tips HERE ](useful_tips.md )
2022-03-17 19:13:43 +00:00
2023-03-29 09:27:54 +02:00
# Assemble Distrobox
Manifest files can be used to declare a set of distroboxes and use
`distrobox-assemble` to create/destroy them in batch.
Head over the [usage docs of distrobox-assemble ](usage/distrobox-assemble.md )
for a more detailed guide.
2022-03-20 15:08:30 +01:00
# Configure Distrobox
Configuration files can be placed in the following paths, from the least important
to the most important:
- /usr/share/distrobox/distrobox.conf
2022-07-30 10:18:22 +02:00
- /usr/etc/distrobox/distrobox.conf
2022-03-20 15:08:30 +01:00
- /etc/distrobox/distrobox.conf
- ${HOME}/.config/distrobox/distrobox.conf
- ${HOME}/.distroboxrc
2023-06-14 09:46:03 +02:00
You can specify inside distrobox configurations and distrobox-specific Environment
variables.
2022-03-20 15:08:30 +01:00
Example configuration file:
```conf
2022-05-26 00:15:03 +08:00
container_always_pull="1"
2022-12-19 15:16:24 +01:00
container_generate_entry=0
2022-03-20 15:08:30 +01:00
container_manager="docker"
2022-12-19 15:16:24 +01:00
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"
2022-12-05 09:37:52 -08:00
container_init_hook="~/.local/distrobox/a_custom_default_init_hook.sh"
container_pre_init_hook="~/a_custom_default_pre_init_hook.sh"
2023-06-11 17:55:57 +02:00
container_manager_additional_flags="--env-file /path/to/file --custom-flag"
2023-08-03 15:01:32 +02:00
container_additional_volumes="/example:/example1 /example2:/example3:ro"
2022-03-20 15:08:30 +01:00
non_interactive="1"
2022-05-27 11:29:46 +02:00
skip_workdir="0"
2023-06-14 09:46:03 +02:00
PATH="$PATH:/path/to/custom/podman"
2022-03-20 15:08:30 +01:00
```
Alternatively it is possible to specify preferences using ENV variables:
2022-05-26 00:15:03 +08:00
- DBX_CONTAINER_ALWAYS_PULL
2022-05-27 11:29:46 +02:00
- DBX_CONTAINER_CUSTOM_HOME
2022-03-20 15:08:30 +01:00
- DBX_CONTAINER_IMAGE
2022-05-27 11:29:46 +02:00
- DBX_CONTAINER_MANAGER
2022-03-20 15:08:30 +01:00
- DBX_CONTAINER_NAME
2022-09-12 09:08:29 +02:00
- DBX_CONTAINER_ENTRY
2022-03-20 15:08:30 +01:00
- DBX_NON_INTERACTIVE
2022-05-27 11:29:46 +02:00
- DBX_SKIP_WORKDIR
2022-03-20 15:08:30 +01:00
---
# Installation
2022-04-05 17:12:42 +02:00
Distrobox is packaged in the following distributions, if your distribution is
on this list, you can refer to your repos for installation:
2022-03-31 13:05:11 +02:00
[](https://repology.org/project/distrobox/versions)
2022-03-20 15:08:30 +01:00
2022-04-05 17:12:42 +02:00
Thanks to the maintainers for their work: [M0Rf30 ](https://github.com/M0Rf30 ),
[alcir ](https://github.com/alcir ), [dfaggioli ](https://github.com/dfaggioli ),
2022-05-06 18:49:04 +02:00
[AtilaSaraiva ](https://github.com/AtilaSaraiva ), [michel-slm ](https://github.com/michel-slm )
2022-03-31 13:05:11 +02:00
2022-08-17 02:27:03 +02:00
## Alternative methods
Here is a list of alternative ways to install distrobox
2023-03-19 10:35:45 +01:00
### Curl or Wget
2022-08-17 02:27:03 +02:00
2022-09-13 18:30:09 +02:00
If you like to live your life dangerously, or you want the latest release,
2022-04-05 17:12:42 +02:00
you can trust me and simply run this in your terminal:
2022-03-31 13:05:11 +02:00
2022-04-05 17:12:42 +02:00
```sh
2022-03-31 13:05:11 +02:00
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
2023-03-19 10:35:45 +01:00
# or using wget
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
2022-03-31 13:05:11 +02:00
```
2022-03-20 15:08:30 +01:00
or if you want to select a custom directory to install without sudo:
2022-04-05 17:12:42 +02:00
```sh
2022-03-31 13:05:11 +02:00
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
2023-03-19 10:35:45 +01:00
# or using wget
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
2022-03-31 13:05:11 +02:00
```
2022-03-20 15:08:30 +01:00
2022-06-10 10:44:32 +02:00
If you want to install the last development version, directly from last commit on git, you can use:
```sh
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh -s -- --next
2023-03-19 10:35:45 +01:00
# or using wget
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh -s -- --next
2022-06-10 10:44:32 +02:00
```
or:
```sh
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --next --prefix ~/.local
2023-03-19 10:35:45 +01:00
# or using wget
wget -qO- https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --next --prefix ~/.local
2022-06-10 10:44:32 +02:00
```
2022-09-09 14:24:56 +02:00
> **Warning**
2022-09-12 09:04:30 +02:00
> Remember to add prefix-path-you-choose/bin to your PATH, to make it work.
2022-09-09 14:24:56 +02:00
2022-08-17 02:27:03 +02:00
### Git
2022-04-05 17:12:42 +02:00
Alternatively you can clone the project using `git clone` or using the latest
release [HERE ](https://github.com/89luca89/distrobox/releases/latest ).
2022-03-20 15:08:30 +01:00
2022-04-05 17:12:42 +02:00
Enter the directory and run `./install` , by default it will attempt to install
in `~/.local` but if you run the script as root, it will default to `/usr/local` .
You can specify a custom directory with the `--prefix` flag
such as `./install --prefix ~/.distrobox` .
2022-03-20 15:08:30 +01:00
2022-04-05 17:12:42 +02:00
Prefix explained: main distrobox files get installed to `${prefix}/bin` whereas
the manpages get installed to `${prefix}/share/man` .
2022-03-20 15:08:30 +01:00
2022-08-17 02:27:03 +02:00
---
2022-04-05 17:12:42 +02:00
Check the [Host Distros ](compatibility.md#host-distros ) compatibility list for
distro-specific instructions.
2022-03-31 13:05:11 +02:00
2022-03-20 15:08:30 +01:00
## Dependencies
2022-04-05 17:12:42 +02:00
Distrobox depends on a container manager to work, you can choose to install
2023-09-24 23:10:50 +02:00
either podman, docker or [lilipod ](https://github.com/89luca89/lilipod ).
2022-09-05 23:32:08 +02:00
2022-04-05 17:12:42 +02:00
Please look in the [Compatibility Table ](compatibility.md#host-distros ) for your
distribution notes.
2022-03-20 15:08:30 +01:00
2023-09-16 10:32:33 +02:00
There are ways to install
[Podman without root privileges and in home. ](compatibility.md#install-podman-in-a-static-manner ) or
2023-09-15 10:58:15 +02:00
[Lilipod without root privileges and in home. ](compatibility.md#install-lilipod-in-a-static-manner )
2023-09-06 20:05:04 +02:00
This should play well with completely sudoless setups and with devices like the Steam Deck (SteamOS).
2022-09-05 23:32:08 +02:00
2022-03-17 19:13:43 +00:00
---
2022-01-13 19:46:08 +01:00
## Uninstallation
2022-01-04 00:04:32 +01:00
2022-04-05 17:12:42 +02:00
If you installed distrobox using the `install` script in the default install
directory use this:
2022-01-04 00:04:32 +01:00
2022-04-05 17:12:42 +02:00
```sh
2022-03-31 13:05:11 +02:00
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sudo sh
```
2022-01-04 00:04:32 +01:00
or if you specified a custom path:
2022-04-05 17:12:42 +02:00
```sh
2022-03-31 13:05:11 +02:00
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sh -s -- --prefix ~/.local
```
2022-01-04 00:04:32 +01:00
2022-04-05 17:12:42 +02:00
Else if cloned the project using `git clone` or using the latest archive release
from [HERE ](https://github.com/89luca89/distrobox/releases/latest ),
2022-01-04 00:04:32 +01:00
2022-04-05 17:12:42 +02:00
enter the directory and run `./uninstall` , by default it will assume the install
directory was `/usr/local` if ran as root or `~/.local` ,
you can specify another directory if needed with `./uninstall --prefix ~/.local`
2022-01-04 00:04:32 +01:00
2022-01-04 01:23:00 +01:00
---
2023-03-26 16:57:00 +03:00

2022-03-11 00:11:08 +01:00
2023-03-26 16:14:05 +02:00
<sub>This artwork uses [Cardboard Box ](https://skfb.ly/6Wq6q ) model by [J0Y ](https://sketchfab.com/lloydrostek )
licensed under [Creative Commons Attribution 4.0 ](http://creativecommons.org/licenses/by/4.0 )
This artwork uses [GTK Loop Animation ](https://github.com/gnome-design-team/gnome-mockups/blob/master/gtk/loop6.blend )
by [GNOME Project ](https://www.gnome.org )
licensed under [Creative Commons Attribution-ShareAlike 3.0 ](https://creativecommons.org/licenses/by-sa/3.0 )
as a pre-configured scene<sub>