#!/bin/bash # Programm: steam-ubuntu.sh # Autor: exmethix (mail@tuxfuture.de) # Datum: 01.02.2009 # Version: 0.5 # Lizenz: Creative Commons Attribution-ShareAlike 3.0 Germany # # Beschreibung: Das Script installiert die Packete "wine","wine-gecko" und "msttcorefonts" per APT, erstellt mit WINEPREFIX eine eigene Umgebung für Steam, läd die Schriftart "tahoma.ttf" sowie die aktuelle "SteamInstall.msi" aus dem Internet und installiert Steam mit wine. Es werden in Steams Wineordner die winecolours modifiziert und an das Ubuntu Human Theme angepasst. Es wird ein 48x48 großes Icon nach "/usr/share/pixmaps" kopiert und ein Starter ins Gnome-Menü unter Anwendungen -> Internet angelegt. Natürlich bietet "steam-ubuntu.sh" auch die Option Steam vollständig zu entfernen indem es das Icon, den Starter, das "steam" Startscript und "~/.wine/Steam" rekursiv löscht. Die Daten aus "~/.wine" (und somit alle anderen mit wine installierten Programme) bleiben dabei unberührt! In Version 0.5 wurden Fixes eingebaut, die bei Problemen mit dem Erststart von Steam helfen. ############### # Auswahlmenü # ############### function menu { AUSWAHL=`zenity --list --radiolist --width=750 --height=250 --text "Bitte wähle die auszuführende Aktion:" --title "$scriptver" --column="" --column Aktion --column Beschreibung \ \"\" install "Hauptfunktion - hiermit wird Steam installiert." \ \"\" uninstall "Hauptfunktion - hiermit wird Steam deinstalliert." \ \"\" startscript "nach der Installation - Steam Startscript bearbeiten." \ \"\" msfonts "zusätzliche Microsoft Schriftarten installieren." \ \"\" fix1 "Updateprobleme - Steam mit angepassten Parametern starten." \ \"\" fix2 "Updateprobleme - Gefixte Daten in Steam Ordner integrieren." \ ` ######################### # Auswerten der Auswahl # ######################### if [ -z "$AUSWAHL" ];then rm -r tmp && exit elif [ "$AUSWAHL" = install ];then auswahl_install elif [ "$AUSWAHL" = uninstall ];then auswahl_uninstall elif [ "$AUSWAHL" = startscript ];then auswahl_startscript elif [ "$AUSWAHL" = msfonts ];then auswahl_msfonts elif [ "$AUSWAHL" = fix1 ];then auswahl_fix1 elif [ "$AUSWAHL" = fix2 ];then auswahl_fix2 fi } #################################################### ## Hauptfunktion - hiermit wird Steam installiert ## #################################################### function auswahl_install { echo echo 'Installiere wine und wine-gecko...' xterm -title "Paketinstallation" -e 'sudo apt-get install wine wine-gecko' echo echo 'Icon, Starter und Startscript werden kopiert...' cd tmp sudo cp steam /usr/local/bin sudo cp steam.png /usr/share/pixmaps sudo cp steam.desktop /usr/share/applications sudo chmod a+rx /usr/local/bin/steam sudo chmod a+r /usr/share/pixmaps/steam.png echo echo 'Ordnerstruktur und eigene Umgebung für Steam wird erstellt...' wineprefixcreate 2> /dev/null wineprefixcreate --prefix ~/.wine/Steam 2> /dev/null && sleep 5 cat ~/.wine/Steam/user.reg | sed -e '4d' > ~/.wine/Steam/user.reg.new mv -f ~/.wine/Steam/user.reg.new ~/.wine/Steam/user.reg cat winecolours >> ~/.wine/Steam/user.reg echo echo 'Tahoma Schriftart wird heruntergeladen und integriert...' wget http://fonts.appliedlanguage.com/fonts/tahoma.ttf 2> /dev/null mv tahoma.ttf ~/.wine/Steam/drive_c/windows/fonts echo echo 'Steam wird heruntergeladen und installiert...' echo 'Bitte den Anweisungen folgen!' wget http://steampowered.com/download/SteamInstall.msi 2> /dev/null WINEDEBUG=-all WINEPREFIX=~/.wine/Steam wine msiexec /a SteamInstall.msi 2> /dev/null echo echo 'Es wird bereinigt...' rm SteamInstall.msi rm ~/Desktop/Steam.lnk rm ~/Desktop/Steam.desktop killall Steam.exe cd ~ clear zenity --info --width=300 --title "$scriptver" --text "Steam wurde erfolgreich installiert.\n\n\nDu findest es unter:\n\nAnwendungen -> Internet -> Steam" menu } ###################################################### ## Hauptfunktion - hiermit wird Steam deinstalliert ## ###################################################### function auswahl_uninstall { echo echo 'Es wird aufgeräumt...' sudo rm /usr/local/bin/steam sudo rm /usr/share/pixmaps/steam.png sudo rm /usr/share/applications/steam.desktop sudo rm -r ~/.wine/Steam clear zenity --info --width=300 --title "$scriptver" --text "Steam wurde komplett entfernt.\n\n\nErhalten bleiben evtl. noch die Pakete:\n\nwine, wine-gecko, msttcorefonts und unzip\n\nDiese Pakete können mit:\n\nsudo apt-get remove paketname\n\nauch noch entfernt werden." menu } ########################################################## ## nach der Installation - Steam Startscript bearbeiten ## ########################################################## function auswahl_startscript { echo echo 'Das Startscript wird mit vollen Rechten bearbeitet...' gksudo gedit /usr/local/bin/steam echo echo 'Rechte werden gesetzt...' sudo chmod a+rx /usr/local/bin/steam clear menu } ##################################################### ## zusätzliche Microsoft Schriftarten installieren ## ##################################################### function auswahl_msfonts { echo echo 'Installiere msttcorefonts...' xterm -title "Paketinstallation" -e 'sudo apt-get install msttcorefonts' echo echo 'Konfiguriere msttcorefonts...' xterm -title "Schrifen neu einlesen" -e 'sudo dpkg-reconfigure fontconfig' clear zenity --info --width=300 --title "$scriptver" --text "Microsoft Schriften wurden eingerichtet." menu } ############################################################### ## Updateprobleme - Steam mit angepassten Parametern starten ## ############################################################### function auswahl_fix1 { echo echo 'Starte Steam...' cd ~/.wine/Steam/drive_c/Programme/Steam nice -n 19 wine Steam.exe 2> /dev/null cd ~ clear zenity --info --width=300 --title "$scriptver" --text "Steam sollte nun gestartet worden sein.\n\nFalls das Update dennoch nicht geklappt hat probiere Fix 2." menu } ################################################################ ## Updateprobleme - Gefixte Daten in Steam Ordner integrieren ## ################################################################ function auswahl_fix2 { echo echo 'Installiere unzip...' xterm -title "Paketinstallation" -e 'sudo apt-get install unzip' echo echo 'Downloade und installiere reparierte Steam Programmdaten...' cd ~/.wine/Steam/drive_c/Programme/Steam wget http://media.steampowered.com/Steam/SteamFull.zip 2> /dev/null unzip -o SteamFull.zip 2> /dev/null cd ~ clear zenity --info --width=300 --title "$scriptver" --text "Fix 2 wurde erfolgreich angewendet. Probiere bitte jetzt Steam zu starten.\n\n\nHINWEIS:\n\nSollte beim ersten Start ein Fehler auftreten bitte auf Abbrechen klicken und Steam nochmal starten.\nDann läuft es in der Regel." menu } ##################################### # Start (erster Aufruf des Scripts) # ##################################### # Variabeln: scriptver="steam-ubuntu Version 0.5" sysversion=`sed -n s/DISTRIB_DESCRIPTION=//p /etc/*release` # Temporäre Daten holen und entpacken echo echo 'Hole und entpacke steam-ubuntu Dateien...' wget http://tuxfuture.de/steam-ubuntu/0.5/tmp.tar.gz tar xfvz tmp.tar.gz rm tmp.tar.gz clear # Einleitungsfenster: zenity --info --title="$scriptver" --text "Hallo $USER,\n\nHerzlich willkommen zu steam-ubuntu 0.5.\n\nDiese Version wurde erfolgreich auf Ubuntu 8.10 getestet!\n\nErkennung deines Systems: $sysversion\n\n\nFunktionsweise:\n\nDieses Bashscript automatisiert die Installation der Steam Spieleplattform unter Ubuntu GNU/Linux.\n\nEs löst Abhängigkeiten selbstständig auf und installiert diese ggf. über die Paketverwaltung nach.\nDer aktuelle Windowsinstaller wird direkt vom Hersteller heruntergeladen und in einer seperaten Umgebung von Wine installiert.\nSteam läuft auf diese Weise getrennt von der vorhandenen Wineinstallation und lässt sich hinterher über dieses Script problemlos wieder entfernen.\nBekannte Tweaks, die eine reibungslose Installation und Ausführung von Steam ermöglichen sind integriert." menu