jmtd → log → Steam for Debian
So you can download Steam for Linux now!. Or at least Ubuntu. The 1.0.0.22-version package needs a bit of tweaking to make it installable on Debian. There's a good writeup of some of the issues in this blog post (more recent packages seem to have much more simple dependencies). I run amd64 with multiarch enabled for i386. I chose to update my libc to the version in experimental rather than embed a newer version in a private steam directory. The remaining issues are mostly package version differences between Ubuntu (who seem to be very epoch-happy, I guess they've made a lot more packaging mistakes) and Debian.
I wrote the following script to do the work. It takes two arguments: the
original steam .deb
and then the output filename to write a modified
.deb
to. Feel free to try it.
#!/bin/sh
set -u
set -e
[ $# -eq 2 ] || { echo "$0 <in-deb> <out-deb>" >&2; exit 1; }
wd=$(mktemp -td $0.XXXXXX)
trap "rm -r '$wd'" INT QUIT EXIT
dpkg-deb -x "$1" "$wd/steam"
dpkg-deb -e "$1" "$wd/steam/DEBIAN"
sed -i -e 's/\(libpulse0 (>= \)1:/\1/' -e '# remove ubuntu epoch' \
-e 's/^\(Version:.*\)$/\1+jmtd/' \
-e 's/xterm | gnome-terminal,//' -e '# seems to be an apt bug here' \
-e 's/\(multiarch-support (>= 2.15\)[^)]*/\1/' -e '# remove ubuntu epoch' \
"$wd/steam/DEBIAN/control"
mv "$wd/steam/usr/bin/steamdeps" "$wd/steam/usr/bin/steamdeps.orig"
ln -s "/bin/true" "$wd/steam/usr/bin/steamdeps"
fakeroot dpkg-deb -b "$wd/steam" "$2"
The most interesting (to me, anyway) package foible was the dependency on
xterm | gnome-terminal
. I have both installed, but neither for i386. Of
course, steam doesn't need a 32 bit terminal emulator, it can spawn the 64 bit
one perfectly well. It turns out that you can't express such a dependency at
the moment. Even changing that to a virtual package x-terminal-emulator
didn't work: aptitude
still wanted to pull in a 32 bit match and all the
supporting libraries. For this package I just delete the dependency outright.