We do often include affiliate links to earn us some pennies. See more here.

Distrobox can open up the Steam Deck to a whole new world

By - | Views: 57,974

Distrobox is a way to use pretty much any other Linux distribution in your terminal, along with full GUI apps and now it supports the Steam Deck with SteamOS too.

The update released a few days ago had some issues (#1, #2, #3), which I reported to the developer and they've since fixed up the installers and the documentation for Steam Deck. So with that in mind, I took it for a spin to see how it works and I've been thoroughly impressed with how easy it is.

It gives you a container system to install other distributions. So for the likes of SteamOS on the Steam Deck, without messing with the root filesystem, you can install something like Ubuntu and access everything it has available. Useful for software not available via Flathub (Discover) or elsewhere.

Here's a short video overview of the basic setup and running some apps from Ubuntu on Steam Deck:

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link

Guide (official link):

First up, run these install scripts one after the other in a terminal app (like Konsole on Steam Deck):

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local

Next up, we need to add the directories it uses into our .bashrc file, so we can run commands as normal in terminal. In your .bashrc file (found in your Home folder), open it in a text editor and add these to the bottom:

export PATH=$HOME/.local/bin:$PATH

export PATH=$HOME/.local/podman/bin:$PATH

Now you can install a Linux distribution with Distrobox, with Ubuntu as the example (in terminal again):

distrobox create -i ubuntu:20.04

Then once done, you can enter it:

distrobox enter ubuntu-20-04

This is where the fun begins. Now you can install or do whatever you like, inside Ubuntu. However, you also need to add this to your .bashrc file to run graphical applications / games on Steam Deck:

xhost +si:localuser:$USER

Article taken from GamingOnLinux.com.
25 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
31 comments
Page: «2/4»
  Go to:

anewson 12 Sep
how does this work? their website says it uses docker, but how does docker 'change' the kernel? WITCHCRAFT!
kokoko3k 12 Sep
Quoting: anewsonhow does this work? their website says it uses docker, but how does docker 'change' the kernel? WITCHCRAFT!
Who said that?
Samsai 12 Sep
Quoting: anewsonhow does this work? their website says it uses docker, but how does docker 'change' the kernel? WITCHCRAFT!
The simple answer is that it doesn't. All that containerized software runs on top of the existing kernel.
Lefl 12 Sep
This is it. If this works the Steam Deck has completly replaced my PC.
CZiNTrPT 12 Sep
So, is this the right tool to use for my usecase?

- I used arch/manjaro before on my system for work and play

- I'm getting annoyed by having to reinstall apps that get wiped from root on steamdeck whenever there is an update

- I'm in the beta/experimental steamdeck branch

- I'm using my steamdeck for work with clojure, python, go, node (already ran into a problem trying to compile a needed module), so I need quite a lot of additional software for more exotic packages
Supay 12 Sep
So, you also post an article about how much you're loving that Disney game. And you make the headline for this as "Distrobox can open up the Steam Deck to a whole new world". Were you singing the last part in your head while writing this?
Quoting: dziadulewicz
Quoting: Purple Library GuyI hardly ever use the terminal. The way to work like that is to use a user-friendly distro (in my case Mint) and not to try to make it do weird things. Soon as you're trying to do weird stuff, you need the power of the terminal.

I have been lately seeing this same statement in many places, forums, etc. "I hardly ever use the terminal" or even "I refuse to use the terminal".
I think that last is going a bit far. Heck, even Windows gave in and made a more or less proper terminal (and threw in a Linux one as well, right?). Terminal can do things no GUI can. All those options you can stick on a command, and stuff. I just don't normally need to do those things, but if you do (like to install this thingie) terminal is your huckleberry.
Marlock 12 Sep
Quoting: Pengling
Quoting: dziadulewiczI have been lately seeing this same statement in many places, forums, etc. "I hardly ever use the terminal" or even "I refuse to use the terminal".

It is kinda telling who has gotten to Linux and from where, how far Linux has come in user friendliness, and what is the preference to use a computer (say, after a long days work). Click click and click
Now that you mention it, I've been noticing that too, and it's nice to see that the options have gotten this good.

For me, it's "It doesn't come up often anymore." [...], though I still use it when it's the right tool for the job [...]
For me it's more like "it doesn't come up often anymore, and then only for things I wouldn't even be able to do without a terminal on windows, like making a script to automate scraping in very very specific websites.

There are already even things I can do via GUI on Linux and can't do without terminal or regedit or other horribly unfriendly methods or plain old voodoo spells and blood sacrifices on windows (eg: not hard-rebooting while applying an update while saving my work, ensuring reasonable privacy, running my collection of 16bit windows games)


Last edited by Marlock on 12 September 2022 at 8:37 pm UTC
Quoting: dziadulewicz
Quoting: Purple Library GuyI hardly ever use the terminal. The way to work like that is to use a user-friendly distro (in my case Mint) and not to try to make it do weird things. Soon as you're trying to do weird stuff, you need the power of the terminal.

I have been lately seeing this same statement in many places, forums, etc. "I hardly ever use the terminal" or even "I refuse to use the terminal".

It is kinda telling who has gotten to Linux and from where, how far Linux has come in user friendliness, and what is the preference to use a computer (say, after a long days work). Click click and click

You see strangely in my mind the terminal is much more convenient and faster to use than a UI

I mean, for example let's create a hypothetical situation that any user could run into, let's say you are managing multiple servers and you want a quick way to reference their configs so you want to create a layout similar to below:

server-a:
- etc
- home
--- user
- opt
- root
- var
server-b:
- etc
- home
--- user
- opt
- root
- var
server-c:
- etc
- home
--- user
- opt
- root
- var
server-d:
- etc
- home
--- user
- opt
- root
- var

I'm only using server/system configs as an example as it's a good way to show where you may need multiple directories that have children with the same names. This could apply to other use cases too.

Now, given the best chance and a decent GUI file manager, such as Dolphin you could via UI do it as follows:

Right click -> Create new folder and type the path "server-a/home/user" into the text box, and repeat this process through to server-d.

This will create the folders:
server-a:
- home
--- user
server-b:
- home
--- user
server-c:
- home
--- user
server-d:
- home
--- user

But you're not done yet, next you'll need create a new folder set in each server-* folder following the above right click method.

Honestly, with a GUI this will probably take at least a whole minute maybe longer depending on how many folders you need to setup.

But can we cheat and make this a whole lot faster with the terminal? Absolutely!

From your terminal you can just issue the following commands:

 
$ cd /where/you/want/those/folders
$ mkdir -p -v {'server-a','server-b','server-c','server-d'}/{'etc','home/user','opt','root','var'}


We're done, the above folder structure has been created. (You can test this if you like, it'll work )

In my mind, this is a lot more efficient and less cumbersome than trying to navigate through a UI to accomplish the same task.

Naturally I'm not suggesting people should give up their UIs, and if they're comfortable with it that's perfectly okay. But I think some people may find it useful if they take the time to learn it as opposed to simply holding the poor (imo) attitude of "I refuse to use the terminal".

It's a very powerful tool to have at your fingertips, so it's always worth picking up a few tricks!


Last edited by BlackBloodRum on 13 September 2022 at 12:50 am UTC
Pengling 13 Sep
Quoting: BlackBloodRumNow, given the best chance and a decent GUI file manager, such as Dolphin you could via UI do it as follows:

Right click -> Create new folder and type the path "server-a/home/user" into the text box, and repeat this process through to server-d.

This will create the folders:
server-a:
- home
--- user
server-b:
- home
--- user
server-c:
- home
--- user
server-d:
- home
--- user

But you're not done yet, next you'll need create a new folder set in each server-* folder following the above right click method.

Honestly, with a GUI this will probably take at least a whole minute maybe longer depending on how many folders you need to setup.
You can probably save a marginal amount of time by creating the first one and then copying it and renaming that as many times as necessary, but it's probably not enough of a time-save to make any real difference, especially if you're creating a large number of folders.

Quoting: BlackBloodRumBut can we cheat and make this a whole lot faster with the terminal? Absolutely!

From your terminal you can just issue the following commands:

 
$ cd /where/you/want/those/folders
$ mkdir -p -v {'server-a','server-b','server-c','server-d'}/{'etc','home/user','opt','root','var'}


We're done, the above folder structure has been created. (You can test this if you like, it'll work )
I checked the man page to learn what exactly this command is doing since I haven't seen the -p and -v flags before, and I didn't even know that this was a thing that could be done - thanks for this one, it ought to come in handy at some point! This is one of those things that falls under my "right tool for the job" criteria.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone with no article paywalls. We also don't have tons of adverts, there's also no tracking and we respect your privacy. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.