Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
If you use https://github.com/ValShaped/rwfus to install stuff from Arch, you should not have that problem as it allows for a r/w OverlayFS of the pacman and /usr directory.
1. It does NOT require you to r/w your rootfs
2. If you did a fully system update, it would fail to update /boot as you should not have removed the r/w protection.
I started to use rwfus but then switched to Distrobox with their extras script to install podman-static:
With distrobox/podman-static, I've a GUI/X11 install of Alpine Linux, Debian, and Arch on both my Steam Deck (and Mint Linux laptop). I can use pretty much use anything I want and not mess up my Steam OS as they are all containers.
Cheers, retro.
Ideally you want to keep Valve's work SteamOS untouched, and have access to your tools with the minimal overhead and I'm very satisfied of what I did instead to benefit everything from Arch Linux
Here I have Arch Linux and its repo installed in a chroot created in /home/deck/CHROOT
chroot created by a tool already provided by SteamOS and pacman called pacstrap
This will install Arch Linux base system into the dir and then you access it with arch-chroot /dir command, swap repos for arch linux inside, import keystores, and you are all set to install whatever
In case you wonder, I tested deeply, it works very well and there is no real risk to mix up system lib with steamos lib with this setup, graphical and libs are separated and the bridge is dbus, this is what I have done here
- the chroot hosts all the app I'm using normally on a real Arch Linux system
- a bind mount /steamos inside allows to access base SteamOS system
- desktop files Exec changed to pkexec chroot and to convert %F for the chrooted app
- you dont chroot X11/wayland or anything graphical, this is a DBUS environment variable redirecting to the display 0
So do you have instructions on how to bind the /steamos because it keeps telling me that directory doesn't exist lol. And im pretty sure binding / is probably a bad idea lol
This mount it once but will not persist until reboot, if you need it to persist you need to add
sudo nano /etc/fstab
If it helps, here are all the lines I added to /etc/fstab, the lines under ARCH-CHROOT are all the mount made by the script arch-chroot, to have the mounts made once, then you can just call chroot /dir , instead of arch-chroot /dir
Not sure what is the magic behind, but even the system on read only mode, we have RW access to /etc/fstab so we can persist all the boring tasks like that
https://steamcommunity.com/sharedfiles/filedetails/?id=2877026756
i must have borked something because in chroot i keep getting this error when trying to use pacman in the chroot env:
core.db failed to download
error: failed retrieving file 'core.db' from steamdeck-packages.steamos.cloud : Could not resolve host: steamdeck-packages.steamos.cloud
warning: too many errors from steamdeck-packages.steamos.cloud, skipping for the remainder of this transaction
error: failed to synchronize all databases (invalid url for server)
This means you forgot to restore the defaut /etc/pacman.d/mirrorlist, keep in my that by building a chroot from the base system, it exports some of its SteamOS settings that you have to restore to Arch Linux defaults.
You can use the following mirrorlist generator
https://archlinux.org/mirrorlist/
Here is the content of my /etc/pacman.d/mirrorlist
Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch
Server = https://archlinux.mailtunnel.eu/$repo/os/$arch
Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch
Server = http://mirrors.celianvdb.fr/archlinux/$repo/os/$arch
Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = http://archlinux.mailtunnel.eu/$repo/os/$arch
Server = https://mirrors.celianvdb.fr/archlinux/$repo/os/$arch
Server = http://archlinux.datagr.am/$repo/os/$arch
Server = https://mirroir.labhouse.fr/arch/$repo/os/$arch
Server = http://mirroir.labhouse.fr/arch/$repo/os/$arch
Server = https://mirror.sysa.tech/archlinux/$repo/os/$arch
Server = https://mirror.ibakerserver.pt/Arch/$repo/os/$arch
Server = https://mirror.thekinrar.fr/archlinux/$repo/os/$arch
Server = https://mirrors.eric.ovh/arch/$repo/os/$arch
Server = http://mir.archlinux.fr/$repo/os/$arch
Server = https://mirror.wormhole.eu/archlinux/$repo/os/$arch
Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch
Server = http://mirrors.gandi.net/archlinux/$repo/os/$arch
Server = https://mirrors.gandi.net/archlinux/$repo/os/$arch
Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch
Server = http://mirrors.standaloneinstaller.com/archlinux/$repo/os/$arch
Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch
Also ensure the file /etc/pacman.conf as the following block at the end
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[sublime-text]
Server = https://download.sublimetext.com/arch/stable/x86_64
What I would like to do is, instead of modifying the system image, I would like to expand the installed system with executables in a seamless way, that not only the Desktop Mode can seamlessly access these applications, but even the Game Mode could benefit from, while also system upgrade can be done without a hitch or unnecessary loss of changes. I do not mind if I loose these installed applications while transitioning, but I do not want to loose the state of my library at any point. These changes include additional capsule images I've applied and external games from other sources.
From what I gather, what I would really need is rwfus. Distrobox sounds an overkill for my needs (but certainly interesting), and by the sound of it pacstrap requires more steps to implement. Also maybe the most certain way to install it, is to wait for a system upgrade, and then start installing it. Did I understood correctly? Is there any caveats I need to be mindful of?
Why do you think it's overkill? Distrobox or something like it will pretty much become standard for all immutable distros. Containers have desktop use cases. I am looking at microos and fedora silverblue. Both distro recommend distrobox or another containerized environment.
https://en.opensuse.org/Distrobox
https://github.com/openSUSE/microos-toolbox
https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/
I assume that a distro comes with its own configuration, package manager and configured packages, so for example Ubuntu configures the system differently for Gnome, than openSUSE for KDE, and while I'm not that familiar with Arch, it is also possibly different. So in order to install a different distro on top of another, a lot of thing needs to be replicated, and if two package manager manages the same executable, that could break things, therefore it must be duplicated. Considering that the only thing I want is install a handful of apps, to expand this Arch installation, I really do not see the benefit of installing another distro on top SteamOS. (I don't want to develop anything for these distros from the Steam Deck.) The rest I could get from flatpak, or maybe homebrew, if I must. (I maybe should also consider to switch installing these application to be managed by Homebrew. I never considered using it before.) Are my assumption wrong here?