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:
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
But a complete lx(c|d) system is all that I wanted to get my deck to be 100% useful for my work.
First up, run these install scripts one after the other in terminal:
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), add these to the bottom:
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
Only curious for absolute new comers who may not know what "terminal" is; is it in practice possible to do all this without a terminal? If so, how most effectively?
LSL?
Joking aside, this looks useful!
I'd say probably not, no.First up, run these install scripts one after the other in terminal:
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), add these to the bottom:
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
Only curious for absolute new comers who may not know what "terminal" is; is it in practice possible to do all this without a terminal? If so, how most effectively?
I 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 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
I 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
Tbh, I prefer not to use the terminal where possible as I'm just lazy... But I often end up back in the terminal to do stuff anyway to work around bugs in gui software.
There are also Podman Desktop and Pods if you need finer management.
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".Now that you mention it, I've been noticing that too, and it's nice to see that the options have gotten this good.
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
For me, it's "It doesn't come up often anymore." (I moved over to Linux when laptop WiFi support reached the point where you had to bring it up/down manually after boot or sleep with ifup/ifdown, because that was fine by me and I knew it'd get even better from there), though I still use it when it's the right tool for the job (I recently had to fix the permissions on some old backups, for example, and that's markedly faster using a terminal, and I like to compile RetroPie for desktop use, for which terminal usage is essential) or when I want to play around with stuff like fortune or BSD Games.
I'm sure that I can't be the only one in that group!
how does this work? their website says it uses docker, but how does docker 'change' the kernel? WITCHCRAFT!Who said that?
how 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.
- 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
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.I 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".
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.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".Now that you mention it, I've been noticing that too, and it's nice to see that the options have gotten this good.
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
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 [...]
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
I 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
Now, given the best chance and a decent GUI file manager, such as Dolphin you could via UI do it as follows: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.
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!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.
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 )
See more from me