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
1. rtfm - https://docs.brew.sh/Homebrew-on-Linux
2. repeat step 1.
It will install brew packages into /home partition directory. Then update your /home/deck/.bash_profile to pulling in the brew environment (bin & library paths, etc.)
This is perfect package management alternative given:
What can be installed via brew, search at https://formulae.brew.sh/
OR list them all out at https://formulae.brew.sh/formula/ then use your browser's Ctrl+F Find.
IMHO, I foresee brew.sh & its available Ansible package will make Steam Deck Playbooks so easy peasy to distribute to non-power users.
BTW, for the Ansible haters - it's all about use-case:
Cheers. Retro
That sounds like a great idea.
enable r/w mode
pacman -S build-essential
#whatever else
disable r/w mode
then the playbook would only need to run after an OS update *IF* you're doing so brew updates/installs.
However, this is very much in the same vein as Python's `virtualenv` -- where a non-system level of python, libraries and deps are installed into a normal user space directory. They are isolated and dormant until activated:
* beforehand => `which python3` yields /usr/bin/python3
* `./activate && which python3` yields /home/username/prjpath/bin/python3
that means
* normal system installed applications are NOT broken for any user
* the userspace install can be packaged up & made portable
* activation is specific to the manually instantiated Bash shell running
so ZERO bin & lib pollution.
As a power-user who wants to minimize OS Update loss (i.e. do overs), brew.sh / homebrew satisfies my use-case where flatpaks fall flat (pun intended).
To each their own. Cheers, Retro.
This is only true if you do activate your homebrew environment manually (the documentation tells you to put it in your .profile).
Also it's not isolated in any case. The activation script retains the system paths, and it does not even touch the library path - homebrew links libraries using absolute paths, but anything relative would still be looked up in the system's lib path. That might work, but it's not what I'd call proper isolation.
And linking to absolute paths makes it hardly portable either.
I am looking forward to my Deck as my Gaming Arch use-case.
The folks who likely are using brew are not general users. They are likely folks wanting more from their CLI while not losing stuff to OS Updates on the Deck. They will have no qualms about the way they wish to execute `/home/linuxbrew/.linuxbrew/bin/brew shellenv` be it via their .bash_profile, an alias, etc.
I think there will be some Deck Community HOWTOs on an appropriate way to use Homebrew to identify the best way (and when) to instantiate it.
You are correct in that when issuing 'brew shellenv' it places the system ENVs after brew ENVs. That might be a problem for game or app if placed in a .bash_profile . For those in the community who's use-case includes using Homebrew, that will likely surface in the HOWTO (or depending on personal linux experience.)
Personally, I'll make `alias teatime="/home/linuxbrew/.linuxbrew/bin/brew shellenv"` to prevent .bash_profile persistence, making it easy to 'activate' in Bash when desired.
As for symlinks & pathing, brew appears more portable given it's using relative symlinks to files in its own directory structure. I ran the following my [debian] laptop: /home/linuxbrew$ find . -type l -ls | less
Every link was relative and to objects in the linuxbrew homedir. I seriously doubt the code base is using absolute paths being bad practice. This project been around since 2009, I'm confident there are no fully qualified paths internally. (Even its built-in ruby interpreter appears isolated enough).
https://en.wikipedia.org/wiki/Homebrew_(package_manager)
"Portable" in my original post is a relative term. I'm not expecting it be USB Flashdrive portable like Cygwin or an AppImage. Portable as in:
a) packages made for Linux x86 brew should work on other brew x86 Linux installs.
b) given all Steam Decks are architecturally identical (including read-only SteamOS OS objects - OS mounts, paths, etc.), Decks are more like a Console PC (like a x86 Chromebook). So if using a default SteamOS 3.x install, any Deck specific brew package (Bottles) or repos (Taps) should be pretty much a smooth operation.
Even if using absolute paths, SteamOS 3.x installs are identical so it doesn't matter. Only if someone re-images their Decks to main Linux distro Deck portability wouldn't matter - and then they'd be using said distros mainline repos.
And when Valve releases SteamOS 3.x for general PCs a bit later on, they should work there too as the OS drive image (pathing, etc) should be identical to the Deck.
I'm in no way advocating everyone install homebrew. That's harmful to most Deck user's experience. It's about options & use-case. brew will work for some folks (like me) and likely not for most others.
After a long day, I'll just want to play some games on the couch or just before going to sleep. Being able to brew install some SDR, pentest tools, emus, game servers for lan parties, and other desktop tools that won't get borked on OS updates will be nice. (I'll likely have to build my own Kismet). It would empower the Desktop mode even further than what flatpaks offer.
Valve actually has something to say about this:
https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource
With this whole SCO vs everyone trolling I kinda understand Valves position here.
But yeah I believe you have to be a major troll to see a GPL2 violation by simply packaging and distributing binaries.
So I see absolutly no reason (other than the 100$) why maintainers shouldn't add steampipe to their devops pipeline.
Would be great by Valve to build their own repo or give maintainers free steamworks access. Valve could make open source software more accessible , and Valve could profit from more usability on SteamOS and solve all that how to install software problems. Everyone would profit, or am I wrong?
# this is a one-time setup
$ /home/linuxbrew/.linuxbrew/bin/brew shellenv > ~/.linuxbrewenv # not to pollute the bash dot files
$ echo 'alias teatime="source ~/.linuxbrewenv"' >> ~/.bashrc # or to ~/.bash_profile
So then I can still have 'teatime' to use anything brewed.
teatime
use-brew-installed-utils || brew commands
I know there's a way to 'brew shellenv' every time all in one bash-foo way, But this allows me a way to control:
* I must always have 'teatime' before anything brew so it washes out to having one command per shell instance anyway
* control the availability of brew & its installs
* should I choose to change the ENV Pathing precedence, it will be trivial to edit ~/.linuxbrewenv
I was talking about binary dynamic links, not filesystem links. Try
For the rest: of course do what you want with your deck if you know what you're doing and/or accept the risks. My point was this is the kind of thing that has a high probability of breaking at some point, so shouldn't be done by someone who doesn't know wtf and had just wandered into this thread.