{"id":13457071,"url":"https://github.com/89luca89/distrobox","last_synced_at":"2026-10-18T22:06:33.132Z","repository":{"id":37316419,"uuid":"429485913","full_name":"89luca89/distrobox","owner":"89luca89","description":"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. Mirror available at: https://gitlab.com/89luca89/distrobox","archived":false,"fork":false,"pushed_at":"2026-10-02T15:19:57.000Z","size":17517,"stargazers_count":13055,"open_issues_count":158,"forks_count":547,"subscribers_count":60,"default_branch":"main","last_synced_at":"2026-10-13T03:47:08.208Z","etag":null,"topics":["almalinux","alpine","archlinux","bash","centos","command-line","containers","debian","development","docker","fedora","linux","opensuse","podman","posix","posix-sh","rockylinux","suse","tools","ubuntu"],"latest_commit_sha":null,"homepage":"https://distrobox.it/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/89luca89.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2021-11-18T15:41:03.000Z","updated_at":"2026-10-12T23:11:44.000Z","dependencies_parsed_at":"2026-08-08T19:25:46.870Z","dependency_job_id":null,"html_url":"https://github.com/89luca89/distrobox","commit_stats":{"total_commits":1498,"total_committers":181,"mean_commits":8.276243093922652,"dds":0.287716955941255,"last_synced_commit":"18053c254a83750c49c08e58df2e48a0f04aef48"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/89luca89/distrobox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/89luca89%2Fdistrobox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/89luca89%2Fdistrobox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/89luca89%2Fdistrobox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/89luca89%2Fdistrobox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/89luca89","download_url":"https://codeload.github.com/89luca89/distrobox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/89luca89%2Fdistrobox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38342694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["almalinux","alpine","archlinux","bash","centos","command-line","containers","debian","development","docker","fedora","linux","opensuse","podman","posix","posix-sh","rockylinux","suse","tools","ubuntu"],"created_at":"2024-07-31T08:01:32.722Z","updated_at":"2026-10-18T22:06:33.127Z","avatar_url":"https://github.com/89luca89.png","language":"Go","funding_links":[],"categories":["Shell","Applications","Go","archlinux","Other","Awesome Tools","Toolboxes","bash","\u003ca name=\"vm\"\u003e\u003c/a\u003eContainerization and virtualization","Software","Tools"],"sub_categories":["Security","General Purpose Libraries","Operating Systems"],"readme":"\u003cimg src=\"assets/splash.svg\" style=\"border-radius:12px\"\u003e\n\n# Distrobox\n\n\u003csub\u003eprevious logo credits [j4ckr3d](https://github.com/j4ckr3d)  \ncurrent logo credits [David Lapshin](https://github.com/daudix)\u003csub\u003e\n\n[![Lint](https://github.com/89luca89/distrobox/actions/workflows/main.yml/badge.svg)](https://github.com/89luca89/distrobox/actions/workflows/main.yml)\n[![CI](https://github.com/89luca89/distrobox/actions/workflows/compatibility.yml/badge.svg)](https://github.com/89luca89/distrobox/actions/workflows/compatibility.yml)\n[![GitHub](https://img.shields.io/github/license/89luca89/distrobox?color=blue)](../COPYING.md)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/89luca89/distrobox)](https://github.com/89luca89/distrobox/releases/latest)\n[![Packaging status](https://repology.org/badge/tiny-repos/distrobox.svg)](https://repology.org/project/distrobox/versions)\n[![GitHub issues by-label](https://img.shields.io/github/issues-search/89luca89/distrobox?query=is%3Aissue%20is%3Aopen%20label%3Abug%20-label%3Await-on-user%20\u0026label=Open%20Bug%20Reports\u0026color=red)](https://github.com/89luca89/distrobox/issues?q=is%3Aissue+is%3Aopen+label%3Abug+-label%3Await-on-user)\n\nUse any Linux distribution inside your terminal. Enable both backward and forward\ncompatibility with software and freedom to use whatever distribution you’re more\ncomfortable with.\nDistrobox uses `podman`, `docker` or\n[`lilipod`](https://github.com/89luca89/lilipod) to create containers using the Linux distribution\nof your choice.\nThe created container will be tightly integrated with the host, allowing sharing\nof the HOME directory of the user, external storage, external USB devices and\ngraphical apps (X11/Wayland), and audio.\n\n---\n\n[Documentation](https://distrobox.it/#distrobox) -\n[Matrix Room](https://matrix.to/#/%23distrobox:matrix.org) -\n[Telegram Group](https://t.me/distrobox_chat_new)\n\n---\n\n![overview](https://user-images.githubusercontent.com/598882/144294862-f6684334-ccf4-4e5e-85f8-1d66210a0fff.png)\n\n---\n\n\u003e [!WARNING]  \n\u003e Documentation on GitHub strictly refers to the code in the main branch. For the official documentation\n\u003e Head over [https://distrobox.it](https://distrobox.it)\n\n- [Distrobox](#distrobox)\n  - [What it does](#what-it-does)\n    - [See it in action](#see-it-in-action)\n  - [Why?](#why)\n    - [Aims](#aims)\n      - [Security implications](#security-implications)\n- [Quick Start](#quick-start)\n- [Assemble Distrobox](#assemble-distrobox)\n- [Configure Distrobox](#configure-distrobox)\n- [Installation](#installation)\n  - [Building from source](#building-from-source)\n  - [Dependencies](#dependencies)\n    - [Install Podman without root](compatibility.md#install-podman-in-a-static-manner)\n- [Compatibility](compatibility.md)\n  - [Supported container managers](compatibility.md#supported-container-managers)\n  - [Host Distros](compatibility.md#host-distros)\n    - [Install on the Steamdeck](posts/steamdeck_guide.md)\n  - [Containers Distros](compatibility.md#containers-distros)\n- [Usage](usage/usage.md)\n  - [Outside the distrobox](usage/usage.md#outside-the-distrobox)\n    - [distrobox-assemble](usage/distrobox-assemble.md)\n    - [distrobox-create](usage/distrobox-create.md)\n    - [distrobox-enter](usage/distrobox-enter.md)\n    - [distrobox-ephemeral](usage/distrobox-ephemeral.md)\n    - [distrobox-generate-entry](usage/distrobox-generate-entry.md)\n    - [distrobox-list](usage/distrobox-list.md)\n    - [distrobox-rm](usage/distrobox-rm.md)\n    - [distrobox-stop](usage/distrobox-stop.md)\n    - [distrobox-upgrade](usage/distrobox-upgrade.md)\n  - [Inside the distrobox](usage/usage.md#inside-the-distrobox)\n    - [distrobox-export](usage/distrobox-export.md)\n    - [distrobox-host-exec](usage/distrobox-host-exec.md)\n    - [distrobox-init](usage/distrobox-init.md)\n  - [Configure distrobox](#configure-distrobox)\n- [Useful tips](useful_tips.md)\n  - [Launch a distrobox from your applications list](useful_tips.md#launch-a-distrobox-from-your-applications-list)\n  - [Create a distrobox with a custom HOME directory](useful_tips.md#create-a-distrobox-with-a-custom-home-directory)\n  - [Mount additional volumes in a distrobox](useful_tips.md#mount-additional-volumes-in-a-distrobox)\n  - [Use a different shell than the host](useful_tips.md#use-a-different-shell-than-the-host)\n  - [Run the container with real root](useful_tips.md#run-the-container-with-real-root)\n  - [Run Debian/Ubuntu container behind proxy](useful_tips.md#run-debianubuntu-container-behind-proxy)\n  - [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)\n  - [Duplicate an existing distrobox](useful_tips.md#duplicate-an-existing-distrobox)\n  - [Export to the host](useful_tips.md#export-to-the-host)\n  - [Execute commands on the host](useful_tips.md#execute-commands-on-the-host)\n  - [Resolve \"Error cannot open display: :0\"](useful_tips.md#resolve-error-cannot-open-display-0)\n  - [Enable SSH X-Forwarding when SSH-ing in a distrobox](useful_tips.md#enable-ssh-x-forwarding-when-ssh-ing-in-a-distrobox)\n  - [Using init system inside a distrobox](useful_tips.md#using-init-system-inside-a-distrobox)\n  - [Using Docker inside a Distrobox](useful_tips.md#using-docker-inside-a-distrobox)\n  - [Using Podman inside a Distrobox](useful_tips.md#using-podman-inside-a-distrobox)\n  - [Using LXC inside a Distrobox](useful_tips.md#using-lxc-inside-a-distrobox)\n  - [Using Waydroid inside a Distrobox](useful_tips.md#using-waydroid-inside-a-distrobox)\n    - [Manual Installation](useful_tips.md#manual-installation)\n    - [Automated Installation](useful_tips.md#automated-installation)\n  - [Using host's Podman or Docker inside a Distrobox](useful_tips.md#using-hosts-podman-or-docker-inside-a-distrobox)\n  - [Using distrobox as main cli](useful_tips.md#using-distrobox-as-main-cli)\n  - [Using a different architecture](useful_tips.md#using-a-different-architecture)\n  - [Using the GPU inside the container](useful_tips.md#using-the-gpu-inside-the-container)\n    - [Using nvidia-container-toolkit](useful_tips.md#using-nvidia-container-toolkit)\n  - [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)\n  - [Container save and restore](useful_tips.md#container-save-and-restore)\n  - [Check used resources](useful_tips.md#check-used-resources)\n  - [Pre-installing additional package repositories](useful_tips.md#pre-installing-additional-package-repositories)\n  - [Apply resource limitation on the fly](useful_tips.md#apply-resource-limitation-on-the-fly)\n- [Posts](posts/posts.md)\n  - [Announcing the next generation of Distrobox](posts/announcing_distrobox_next.md)\n  - [Distrobox Next architecture](posts/distrobox_next_architecture.md)\n  - [Create a dedicated distrobox container](posts/distrobox_custom.md)\n  - [Execute a command on the Host](posts/execute_commands_on_host.md)\n  - [Install Podman in HOME](posts/install_podman_static.md)\n  - [Install Lilipod in HOME](posts/install_lilipod_static.md)\n  - [Install on Steamdeck](posts/steamdeck_guide.md)\n  - [Integrate VSCode and Distrobox](posts/integrate_vscode_distrobox.md)\n  - [Run Libvirt using distrobox](posts/run_libvirt_in_distrobox.md)\n  - [Run latest GNOME and KDE Plasma using distrobox](posts/run_latest_gnome_kde_hyprland_on_distrobox.md)\n- [Featured Articles](featured_articles.md)\n  - [Articles](featured_articles.md#articles)\n    - [Run Distrobox on Fedora Linux - Fedora Magazine](https://fedoramagazine.org/run-distrobox-on-fedora-linux/)\n    - [DistroBox – Run Any Linux Distribution Inside Linux Terminal - TecMint](https://www.tecmint.com/distrobox-run-any-linux-distribution/)\n    - [Distrobox: Try Multiple Linux Distributions via the Terminal - It's FOSS](https://itsfoss.com/distrobox/)\n    - [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/)\n    - [Using Distrobox To Augment The Package Selection On Clear Linux - Phoronix](https://www.phoronix.com/scan.php?page=news_item\u0026px=Distrobox-Clear-Linux)\n    - [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)\n    - [Distrobox - A great item in the Linux toolbelt - phmurphy's blog](https://phmurphy.com/posts/distrobox-toolbelt/)\n    - [Distrobox: Run (pretty much) any Linux distro under almost any other - TheRegister](https://www.theregister.com/2022/05/31/distrobox_130_released/)\n    - [Day-to-day differences between Fedora Silverblue and Ubuntu - castrojo's blog](https://www.ypsidanger.com/day-to-day-advantages-of-fedora-silverblue/)\n    - [Distrobox is Awesome - Running Window Manager and Desktop environments using Distrobox](https://cloudyday.tech.blog/2022/05/14/distrobox-is-awesome/)\n    - [Japanese input on Clear Linux with Mozc via Ubuntu container with Distrobox](https://impsbl.hatenablog.jp/entry/JapaneseInputOnClearLinuxWithMozc_en)\n    - [MID (MaXX Interactive Desktop) on Clear Linux via Ubuntu container with Distrobox](https://impsbl.hatenablog.jp/entry/MIDonClearLinuxWithDistrobox_en)\n    - [Running Other Linux Distros with Distrobox on Fedora Linux - bandithijo's blog](featured_articles.md)\n  - [Talks and Videos](featured_articles.md#talks)\n    - [Linux App Summit 2022 - Distrobox: Run Any App On Any Distro - BoF](https://github.com/89luca89/distrobox/files/8598433/distrobox-las-talk.pdf)\n    - [Opensource Summit 2022 - Distrobox: Run Any App On Any Distro](https://www.youtube.com/watch?v=eM1p47tow4o)\n    - [A \"Box\" Full of Tools and Distros - Dario Faggioli @ OpenSUSE Conference 2022](https://www.youtube.com/watch?v=_RzARte80SQ)\n    - [Podman Community Meeting October 4, 2022](https://www.youtube.com/watch?v=JNijOHL4_Ko)\n    - [Distrobox opens the Steam Deck to a whole new world (GUIDE) - GamingOnLinux](https://www.youtube.com/watch?v=kkkyNA31KOA)\n    - [CERN - Containerization as a means of extending the lifetime of HDL development tools](https://cdsweb.cern.ch/record/2859962?ln=ja)\n    - [How to Code with Distrobox on the Steam Deck](https://www.youtube.com/watch?v=qic7lmACqPo)\n    - [Why you should be running the MicroOS Desktop](https://www.youtube.com/watch?v=lKYLF1tA4Ik)\n  - [Podcasts](featured_articles.md#podcasts)\n\n---\n\n## What it does\n\nSimply put it's a fancy wrapper around `podman`, `docker`, or `lilipod` to create and start\ncontainers which are highly integrated with the hosts.\n\nThe distrobox environment is based on an [OCI image](https://github.com/opencontainers/image-spec).\nThis image is used to create a container that seamlessly integrates with the\nrest of the operating system by providing access to the user's home directory,\nthe Wayland and X11 sockets, networking, removable devices (like USB sticks),\nsystemd journal, SSH agent, D-Bus,\nulimits, /dev and the udev database, etc...\n\nIt implements the same concepts introduced by \u003chttps://github.com/containers/toolbox\u003e,\nkeeping integration and broad host compatibility as primary goals.\n\nAll the props go to them as they had the great idea to implement this stuff.\n\n`distrobox` is shipped as a single binary providing the following subcommands:\n\n- `distrobox assemble` – create and destroy containers based on a config file\n- `distrobox create` – create a container\n- `distrobox enter` – enter a container\n- `distrobox ephemeral` – create a temporary container, destroy it when exiting the shell\n- `distrobox list` (alias: `ls`) – list containers created with distrobox\n- `distrobox rm` – delete a container created with distrobox\n- `distrobox stop` – stop a running container created with distrobox\n- `distrobox upgrade` – upgrade one or more containers created with distrobox at once\n- `distrobox generate-entry` – create an entry of a created container in the applications list\n\nPlus three helpers that run inside the container:\n\n- `distrobox-init` – container entrypoint (not meant to be invoked manually)\n- `distrobox-export` – export apps and services from the container to the host\n- `distrobox-host-exec` – run commands/programs from the host while inside the container\n\nPlease check [the usage docs](usage/usage.md) and [see some handy tips on how to use it](useful_tips.md).\n\n### See it in action\n\nThanks to [castrojo](https://github.com/castrojo), you can see Distrobox in\naction in this explanatory video on his setup with Distrobox, Toolbx,\nFedora Silverblue for the [uBlue](https://github.com/ublue-os) project\n(check it out!)\n\n[![Video](https://user-images.githubusercontent.com/598882/153680522-f5903607-2854-4cfb-a186-cba7403745bd.png)](https://www.youtube.com/watch?v=Q2PrISAOtbY)\n\n## Why\n\n- Provide a mutable environment on an immutable OS, like [ChromeOS, Endless OS,\n  Fedora Atomic Desktops (e.g. Silverblue), OpenSUSE Aeon/Kalpa, Vanilla OS](compatibility.md#host-distros), or [SteamOS3](posts/steamdeck_guide.md)\n- Provide a locally privileged environment for sudoless setups\n  (e.g. company-provided laptops, security reasons, etc...)\n- To mix and match a stable base system (e.g. Debian Stable, Ubuntu LTS, Red Hat)\n  with a bleeding-edge environment for development or gaming\n  (e.g. Arch, OpenSUSE Tumbleweed, or Fedora with the latest Mesa)\n- Leverage a high abundance of curated distro images for `docker`/`podman` to\n  manage multiple environments.\n\nRefer to the compatibility list for an overview of the supported host distros\n[HERE](compatibility.md#host-distros) and container's distro [HERE](compatibility.md#containers-distros).\n\n### Aims\n\nThis project aims to bring **any distro userland to any other distro**\nsupporting `podman`, `docker`, or `lilipod`.\nIt is implemented as a single statically-linked Go binary, while the in-container\nhelpers remain POSIX shell so they keep working on any distro the binary can run.\n\nRefer [HERE](compatibility.md#supported-container-managers) for a list of\nsupported container managers and minimum supported versions.\n\nIt also aims to enter the container **as fast as possible**, every millisecond\nadds up if you use the container as your default environment for your terminal:\n\nThese are some sample results of `distrobox enter` on the same container on my\nweak laptop:\n\n```console\n~$ hyperfine --warmup 3 --runs 100 \"distrobox enter bench -- whoami\"\nBenchmark 1: distrobox enter bench -- whoami\n  Time (mean ± σ):     395.6 ms ±  10.5 ms    [User: 167.4 ms, System: 62.4 ms]\n  Range (min … max):   297.3 ms … 408.9 ms    100 runs\n```\n\n#### Security implications\n\nIsolation and sandboxing are **not** the main aims of the project, on the contrary\nit aims to tightly integrate the container with the host.\nThe container will have complete access to your home, pen drive, and so on,\nso do not expect it to be highly sandboxed like a plain\n`docker`/`podman` container or a Flatpak.\n\n⚠️ **BE CAREFUL**:⚠️  if you use `docker`, or you use `podman`/`lilipod` with the `--root/-r` flag,\nthe containers will run as root, so **root inside the rootful container can modify\nsystem stuff outside the container**,\nBe also aware that **In rootful mode, you'll be asked to set up the user's password**, this will\nensure at least that the container is not a passwordless gate to root,\nbut if you have security concerns for this, **use `podman` or `lilipod` that runs in rootless mode**.\nRootless `docker` is still not working as intended and will be included in the future\nwhen it will be complete.\n\nThat said, it is useful to read the discussion about decoupling with the host,\navailable here: [#28 Sandboxed mode](https://github.com/89luca89/distrobox/issues/28).\n\nIf you are looking for something similar to Distrobox but with sandboxing capabilities,\nthere are other options to consider which do prioritise isolation such as [Litterbox](https://github.com/Gerharddc/litterbox).\n\n---\n\n# Quick Start\n\n**Create a new distrobox:**\n\n`distrobox create -n test`\n\n**Create a new distrobox with Systemd (acts similar to an LXC):**\n\n`distrobox create --name test --init --image debian:latest --additional-packages \"systemd libpam-systemd pipewire-audio-client-libraries\"`\n\n**Enter created distrobox:**\n\n`distrobox enter test`\n\n**Add one with a [different distribution](https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#host-distros),\ne.g. Ubuntu 20.04:**\n\n`distrobox create -i ubuntu:20.04`\n\n**Execute a command in a distrobox:**\n\n`distrobox enter test -- command-to-execute`\n\n**List running distroboxes:**\n\n`distrobox list`\n\n**Stop a running distrobox:**\n\n`distrobox stop test`\n\n**Remove a distrobox:**\n\n`distrobox rm test`\n\nYou can check [HERE for more advanced usage](usage/usage.md)\nand check a [comprehensive list of useful tips HERE](useful_tips.md).\n\n# Assemble Distrobox\n\nManifest files can be used to declare a set of distroboxes and use\n`distrobox assemble` to create/destroy them in batch.\n\nHead over the [usage docs of distrobox assemble](usage/distrobox-assemble.md)\nfor a more detailed guide.\n\n# Configure Distrobox\n\nConfiguration files can be placed in the following paths, from the least important\nto the most important:\n\n- /usr/share/distrobox/distrobox.conf\n- /usr/etc/distrobox/distrobox.conf\n- /etc/distrobox/distrobox.conf\n- ${HOME}/.config/distrobox/distrobox.conf\n- ${HOME}/.distroboxrc\n\nYou can specify inside distrobox configurations and distrobox-specific Environment\nvariables.\n\nExample configuration file:\n\n```conf\ncontainer_always_pull=\"1\"\ncontainer_generate_entry=0\ncontainer_manager=\"docker\"\ncontainer_image_default=\"registry.opensuse.org/opensuse/toolbox:latest\"\ncontainer_name_default=\"test-name-1\"\ncontainer_user_custom_home=\"$HOME/.local/share/container-home-test\"\ncontainer_init_hook=\"~/.local/distrobox/a_custom_default_init_hook.sh\"\ncontainer_pre_init_hook=\"~/a_custom_default_pre_init_hook.sh\"\ncontainer_manager_additional_flags=\"--env-file /path/to/file --custom-flag\"\ncontainer_additional_volumes=\"/example:/example1 /example2:/example3:ro\"\nnon_interactive=\"1\"\nskip_workdir=\"0\"\nPATH=\"$PATH:/path/to/custom/podman\"\n```\n\n\u003e **Note — configuration files are parsed as INI, not sourced as shell.**\n\u003e The original shell distrobox *sourced* `distrobox.conf` and `${HOME}/.distroboxrc`,\n\u003e so they could contain arbitrary shell (variable expansion, command substitution,\n\u003e conditionals, `export`, etc.). The new Go implementation instead reads them as plain\n\u003e `key=value` (INI) files. As a consequence:\n\u003e\n\u003e - Values are taken **literally**: `container_user_custom_home=\"$HOME/...\"` and\n\u003e   `PATH=\"$PATH:...\"` are *not* expanded — use absolute paths. The `$HOME`/`$PATH`\n\u003e   entries in the example above illustrate the old sourcing behavior and will not\n\u003e   be expanded here.\n\u003e - Arbitrary shell logic in `.distroboxrc` is **not executed**; only recognized\n\u003e   `key=value` settings take effect.\n\u003e - The reference key `distrobox_sudo_program` is accepted (mapped onto\n\u003e   `sudo_program`).\n\nAlternatively, it is possible to specify preferences using ENV variables:\n\n- DBX_CONTAINER_ALWAYS_PULL\n- DBX_CONTAINER_CUSTOM_HOME\n- DBX_CONTAINER_IMAGE\n- DBX_CONTAINER_MANAGER\n- DBX_CONTAINER_NAME\n- DBX_CONTAINER_ENTRY\n- DBX_NON_INTERACTIVE\n- DBX_SKIP_WORKDIR\n\n---\n\n# Installation\n\nDistrobox is packaged in the following distributions, if your distribution is\non this list, you can refer to your repos for installation:\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/distrobox.svg?columns=5)](https://repology.org/project/distrobox/versions)\n\nThanks to the maintainers for their work: [M0Rf30](https://github.com/M0Rf30),\n[alcir](https://github.com/alcir), [dfaggioli](https://github.com/dfaggioli),\n[AtilaSaraiva](https://github.com/AtilaSaraiva), [michel-slm](https://github.com/michel-slm)\n\n## Building from source\n\nTo build distrobox from source, you need [Go](https://go.dev/) \u003e= 1.25 and `make`.\n\nClone the repository and build:\n\n```sh\ngit clone https://github.com/89luca89/distrobox.git\ncd distrobox\nmake build\n```\n\nThen install:\n\n```sh\nsudo make install\n```\n\nThis installs the `distrobox` binary to `/usr/local/bin` by default.\nFor a local install without sudo:\n\n```sh\nmake install PREFIX=~/.local\n```\n\n\u003e [!WARNING]\n\u003e Make sure the destination directory is in your `PATH`.\n\nTo uninstall, run `make uninstall` with the same `PREFIX` used during installation.\n\n## Standalone install script\n\nThe `install` and `uninstall` scripts at the repository root work without a\nlocal checkout. They download distrobox from GitHub and deploy it to a\nprefix.\n\nThe script defaults to the **v1** stable line (recommended for production).\nPass `--v2` to install the v2 Go release candidate instead; the script\nalso picks the v2 path automatically if `--version` points at a 2.x tag.\n\n```sh\n# v1 (default) — latest stable\ncurl -fsSL https://raw.githubusercontent.com/89luca89/distrobox/legacy/install | sh\n\n# v2 — Go release candidate\ncurl -fsSL https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --v2\n```\n\nThe same flags (`--prefix`, `--version`, `--no-color`, `--verbose`) work in\nboth modes. The companion `./uninstall` script removes whatever was\ninstalled, regardless of version.\n\n---\n\nCheck the [Host Distros](compatibility.md#host-distros) compatibility list for\ndistro-specific instructions.\n\n## Dependencies\n\nDistrobox depends on a container manager to work, you can choose to install\neither `podman`, `docker` or [`lilipod`](https://github.com/89luca89/lilipod).\n\nPlease look in the [Compatibility Table](compatibility.md#host-distros) for your\ndistribution notes.\n\nThere are ways to install\n[Podman without root privileges and in home](compatibility.md#install-podman-in-a-static-manner). Or\n[Lilipod without root privileges and in home](compatibility.md#install-lilipod-in-a-static-manner).\nThis should play well with completely sudoless setups and with devices like the Steam Deck (SteamOS).\n\n---\n\n---\n\n![distro-box](./assets/distro-box.webp)\n\n\u003csub\u003eThis artwork uses [Cardboard Box](https://skfb.ly/6Wq6q) model by [J0Y](https://sketchfab.com/lloydrostek)\nlicensed under [Creative Commons Attribution 4.0](http://creativecommons.org/licenses/by/4.0)  \nThis artwork uses [GTK Loop Animation](https://github.com/gnome-design-team/gnome-mockups/blob/master/gtk/loop6.blend)\nby [GNOME Project](https://www.gnome.org)\nlicensed under [Creative Commons Attribution-ShareAlike 3.0](https://creativecommons.org/licenses/by-sa/3.0)\nas a pre-configured scene\u003csub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F89luca89%2Fdistrobox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F89luca89%2Fdistrobox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F89luca89%2Fdistrobox/lists"}