Steam uses 32-bit libraries, but we're on a 64-bit system. Here is the absolute fastest guide to get you up and running in Slackware64.
Three Step Guide for Installing Steam on Slackware
- Install Slackpkg+ and Enable Multilib
slackpkg install multilib
slackpkg install steamclient
[If you do not want to install slackpkg+, then the multilib documentation can explain how to download and install the -compat32 packages (or build them yourself)]
1) To install slackpkg+ download and installpkg
from sourceforge or from AlienBOB. (It's also available at Slackware Mirrors under /slackware/slackware64-current/extra)
We make three changes to the config file /etc/slackpkg/slackpkgplus.conf
(Note that we leave ALLOW32BIT=off
)
- Uncomment the line
PKGS_PRIORITY = (multilib)
- Add (or uncomment) the multilib repo location
MIRRORPLUS['multilib']=https://slackware.nl/people/alien/multilib/current/
- Add multilib to your REPOPLUS line:
REPOPLUS=( slackpkgplus restricted multilib alienbob )
My config looks like this:
PKGS_PRIORITY=( multilib restricted )
REPOPLUS=( slackpkgplus restricted multilib alienbob )
MIRRORPLUS['multilib']=https://slackware.nl/people/alien/multilib/current/
MIRRORPLUS['alienbob']=https://slackware.nl/people/alien/sbrepos/current/x86_64
MIRRORPLUS['restricted']=https://slackware.nl/people/alien/restricted_sbrepos/current/x86_64
MIRRORPLUS['slackpkgplus']=https://slackware.nl/slackpkgplus/
SBO['current']=https://github.com/Ponce/slackbuilds
2) Now that slackpkg+ has been configured we update and install multilib packages.
slackpkg update
slackpkg install multilib
For me this was 273 packages. In my case one of them (LLVM, roughly a 200Mb file) kept timing out, so I downloaded and installed that one manually.
3) You could now build steam yourself from a SlackBuild, or just install a pre-made package courtesy of AlienBOB:
slackpkg install steamclient
You have now installed Steam. (I had to reboot for Steam to recognize my controller.)
If you neglect to install the multilib -compat32 packages, instead of games you will enjoy some errors.
Slackware warns that you may need 32-bit libraries, and Steam alerts that you are missing libGL.so.1 and libdrm.so.2. The terminal may emit some gory details:
dlmopen /home/zapwai/.local/share/Steam/ubuntu12_32/steamui.so failed: libGL.so.1: wrong ELF class: ELFCLASS64
dlmopen steamui.so failed: libGL.so.1: wrong ELF class: ELFCLASS64
Failed to load steamui.so - dlerror(): (null)
My Beloved Windows Game Refuses to Install?
In that case you should right-click the game in your library, select properties, then click the Compatibility tab. Click "Force the use of a specific Steam Play compatibility tool".
This turns on Proton Hotfix and almost always works. (For Risk of Rain 2 I had to explicitly turn on Proton 9.0)
Help! Steam Can't See My Games!
Normally when you go to Steam Settings > Storage you can click on the Local Drive button and add a new folder. Useful if you have a drive full of games.
In my case I had them installed under another Linux distribution. The files owner was username:1000
instead of username:users
, and in the terminal Steam was griping about permissions. So Steam client just ignored me if I added the location.
kf.kio.widgets: Failed to convert QUrl("file:///media/hd1/home/zapwai/snap/steam/common/.local/share/Steam/steamapps/common/Steam.dll") to canonical path
Couldn't write /boot/efi/.steam_exec_test.sh: Permission denied
Couldn't write /media/hd0/.steam_exec_test.sh: Permission denied
Couldn't write /media/hd1/.steam_exec_test.sh: Permission denied
Digging around online, I found that one cause could be not having exec set for the drive in /etc/fstab
. But my fstab settings were fine, containing the line:
/dev/nvme0n1p2 /media/hd1 ext4 rw,auto,user,exec 0 0
I attempted to create and add myself to the group 1000, with no success.
I could just chmod 777
on the path to my Steam games, but I looked for a better solution and discovered setfacl
. This allowed me to give rwx permissions to only one extra user.
setfacl -R -m u:zapwai:rwx /media/hd1/home/zapwai/snap/steam/common/.local/share/Steam
I gave myself executable permissions on the rest of the path just in case
sudo setfacl -m u:zapwai:x /media/hd1
sudo setfacl -m u:zapwai:x /media/hd1/home
sudo setfacl -m u:zapwai:x /media/hd1/home/zapwai
sudo setfacl -m u:zapwai:x /media/hd1/home/zapwai/snap [etc.]
Et Voilà, Steam can now see my preinstalled games.
A Few More Bugs
This time Straima worked, but last year I needed this in the launch options:
PROTON_USE_WINED3D=1 %command%
Dungeons of Dredmor has crackling audio. Removing this file fixes it.
~/.steam/steam/steamapps/common/Dungeons\ of\ Dredmor/x86/libopenal.so.1
Postscript
I also added Battle.net launcher as a non-steam game so I can run it without installing Wine directly.