Created
December 7, 2012 07:53
-
-
Save grindars/4231563 to your computer and use it in GitHub Desktop.
Steam installer for Debian
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Steam installer for Debian wheezy (32- and 64-bit) | |
# | |
# Place into empty directory and run. | |
# | |
download() { | |
local url="$1" | |
local filename="$(basename "$url")" | |
if [ ! -f "$filename" ]; then | |
wget -c "$url" -O "$filename.part" | |
mv "$filename.part" "$filename" | |
fi | |
} | |
package() { | |
local url="$1" | |
local target="$2" | |
download "$url" | |
mkdir -p "$target" | |
ar p "$(basename "$url")" data.tar.gz | tar xz -C "$target" | |
} | |
set -e | |
package http://media.steampowered.com/client/installer/steam.deb "${PWD}/tree" | |
STEAMPACKAGE="steam" | |
STEAMCONFIG="${HOME}/.steam" | |
STEAMDATALINK="${STEAMCONFIG}/${STEAMCONFIG}" | |
STEAMBOOTSTRAP="steam.sh" | |
LAUNCHSTEAMDIR="$(readlink -eq "${STEAMDATALINK}" || echo)" | |
LAUNCHSTEAMPLATFORM="ubuntu12_32" | |
LAUNCHSTEAMBOOTSTRAPFILE="${PWD}/tree/usr/lib/steam/bootstraplinux_${LAUNCHSTEAMPLATFORM}.tar.xz" | |
STEAM_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} | |
CLASSICSTEAMDIR="$HOME/Steam" | |
DEFAULTSTEAMDIR="$STEAM_DATA_HOME/Steam" | |
STEAMDIR="${DEFAULTSTEAMDIR}" | |
if [ ! -d "$STEAMCONFIG" ]; then | |
mkdir "$STEAMCONFIG" | |
fi | |
echo "Setting up Steam content in $STEAMDIR" | |
mkdir -p "${STEAMDIR}" | |
tar xJf "${LAUNCHSTEAMBOOTSTRAPFILE}" -C "${STEAMDIR}" | |
cat > "${STEAMDIR}/steam_on_debian.sh" <<EOF | |
#!/bin/sh | |
STEAMDIR="\$(readlink -f "\$(dirname "\$0")")" | |
if [ -z "\${LD_LIBRARY_PATH}" ]; then | |
LD_LIBRARY_PATH="\${STEAMDIR}/compat_libraries/lib/i386-linux-gnu" | |
else | |
LD_LIBRARY_PATH="\${STEAMDIR}/compat_libraries/lib/i386-linux-gnu:\${LD_LIBRARY_PATH}" | |
fi | |
export LD_LIBRARY_PATH | |
exec "\${STEAMDIR}/steam.sh" "\$@" | |
EOF | |
chmod +x "${STEAMDIR}/steam_on_debian.sh" | |
echo "Installing Ubuntu packages" | |
mkdir -p "${STEAMDIR}/compat_libraries" | |
package http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.2_i386.deb "${STEAMDIR}/compat_libraries" | |
echo "Installing desktop files" | |
mkdir -p "${STEAM_DATA_HOME}/applications" | |
sed "s!/usr/bin/steam!${STEAMDIR}/steam_on_debian.sh!" tree/usr/share/applications/steam.desktop > "${STEAM_DATA_HOME}/applications/steam.desktop" | |
cp -R tree/usr/share/icons "${STEAM_DATA_HOME}" | |
echo "Adding Steam to PATH" | |
MAGIC_LINE="[[ -f \"${STEAMDIR}/setup_debian_environment.sh\" ]] && source \"${STEAMDIR}/setup_debian_environment.sh\"" | |
cat > "${STEAMDIR}/setup_debian_environment.sh" <<EOF | |
if ! which steam > /dev/null 2>&1; then | |
PATH="${STEAMDIR}/debian_bin:${PATH}" | |
export PATH | |
fi | |
EOF | |
mkdir -p "${STEAMDIR}/debian_bin" | |
cat > "${STEAMDIR}/debian_bin/steam" <<EOF | |
#!/bin/sh | |
exec "${STEAMDIR}/steam_on_debian.sh" "$@" | |
EOF | |
chmod +x "${STEAMDIR}/debian_bin/steam" | |
if ! grep -qxF "${MAGIC_LINE}" "${HOME}/.bashrc"; then | |
echo "$MAGIC_LINE" >> "${HOME}/.bashrc" | |
echo | |
echo "Steam was added to your profile. Please relogin or source ~/.bashrc." | |
echo | |
fi | |
echo "To uninstall:" | |
echo "rm -rf ${STEAM_DIR}" | |
echo "rm -f everything steamish from ${STEAM_DATA_HOME}/applications" | |
echo "remove ${MAGIC_LINE} from ${HOME}/.bashrc" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
If, after running this and sourcing .bashrc, running 'steam' you get this error:
Error: You are missing the following 32-bit libraries, and Steam may not run:
libGL.so.1
Setup multiarch (as root)
dpkg --add-architecture i386
Install mesa-glx for 32 bits (as root)
apt-get install libgl1-mesa-glx:i386
Most probably libGL.so.1 is at /usr/lib/mesa-diverted/i386-linux-gnu/ now, so LD_LIBRARY_PATH that before running steam
$ LD_LIBRARY_PATH=/usr/lib/mesa-diverted/i386-linux-gnu/ steam
Cheers,