Installationshilfe-Skript

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche

Dieses Script vereinfacht die Installation von fehlenden Multimedia-Funktionen. Den Inhalt des Scriptes in eine Datei kopieren und ausführbar machen. Danach kann das Script ausgeführt werden.

#! /bin/bash
#
# Autor: Sebastian Vahl <deadbabylon@fedoraforum.de>
# Lizenz: GPL
#
# Version: 0.4.0


# Variablendefinition
VERSION=0.4.0
TMPDIR=/tmp/fedoraforum.de-installer
XTERM="xterm -fg white -bg black +sb"

# Urls zu oft ändernden Paketen
url_flash_release=http://linuxdownload.adobe.com/adobe-release/adobe-release-1.0-0.noarch.rpm
url_adobe=ftp://ftp.adobe.com/pub/adobe/reader/unix/7x/7.0.9/deu/AdobeReader_deu-7.0.9-1.i386.rpm
url_livna_6=http://rpm.livna.org/livna-release-6.rpm
url_livna_7=http://rpm.livna.org/livna-release-7.rpm
url_opera=http://netmirror.org/mirror/opera/linux/923/final/en/i386/shared/opera-9.23-20070809.6-shared-qt.i386-en.rpm
url_realplayer=https://helixcommunity.org/download.php/2152/RealPlayer-10.0.8.805-20060718.i586.rpm
url_virtualbox_i586=http://www.virtualbox.org/download/1.4.0/VirtualBox-1.4.0_21864_fedora7-1.i586.rpm.run
url_virtualbox_x86_64=http://www.virtualbox.org/download/1.4.0/VirtualBox-1.4.0_21864_fedora7-1.x86_64.rpm.run

# Versionsnummern (fürs Update)
adobereader_version=7.0.9-1
opera_version=9.21-20070510.6
realplayer_version=10.0.8.805-20060718
virtualbox_version=1.4.0_21864_fedora7-1


# GPG-Keys zur Überprüfung von Signaturen
GPG_LIVNA=/etc/pki/rpm-gpg/RPM-GPG-KEY-livna
GPG_FLASH=http://macromedia.rediris.es/FEDORA-GPG-KEY


############################### kdialog für KDE / zenity für alle anderen ####################
# FIXME: Rausfinden, wie $KDE_FULL_SESSION auch bei consolehelper erhalten bleibt
KDE_FULL_SESSION=NO

# Nutze kdialog, wenn KDE als volle Session läuft
#if [ $KDE_FULL_SESSION = true ];then
#	DIALOG=kdialog
#       DIALOG_QUESTION="kdialog --yesno"
#	ERROR_MESSAGE="kdialog --error"
#	INFO_MESSAGE="kdialog --msgbox"
#	GETFILENAME="kdialog --getopenfilename $HOME"
#	TERMINAL=konsole
# Ansonsten nutze zenity
#else
	DIALOG=zenity
        DIALOG_QUESTION="zenity --question --text"
	ERROR_MESSAGE="zenity --error --text"
	INFO_MESSAGE="zenity --info --text"
	GETFILENAME="zenity --file-selection"
	TERMINAL=gnome-terminal
#fi


############################### Temporäres Verzeichnis anlegen ###############################

mkdir -p $TMPDIR

############################### Begrüßung ########################################

function info_welcome {

# Ein paar Hinweise, die direkt im gestarteten Terminal erscheinen:
echo "DEBUG: Version der Fedoraforum.de-Installationshilfe: $VERSION"
echo "DEBUG: Installationshilfe wurde gestartet von: $USER"
echo ""
echo "DEBUG: In diesem Terminal werden alle Meldungen der durchgeführten Operationen"
echo "DEBUG: angezeigt. Falls etwas nicht funktionieren sollte, finden sich hier"
echo "DEBUG: wahrscheinlich ein paar Hinweise."
echo 'DEBUG: Meldungen, die mit "DEBUG:" eingeleitet werden, kommen dabei direkt'
echo "DEBUG: vom Skript."
echo ""

$INFO_MESSAGE \
"Willkommen zur Installationshilfe von Fedoraforum.de und Fedorawiki.de.

Das folgende Skript soll Einsteigern dabei helfen, schnell und einfach zu einem lauffähigen System mit Multimedia- und Grafikkartenunterstützung zu kommen. Es werden dabei allerdings jeweils nur die einzelnen Schritte aus der jeweiligen Seite im Fedorawiki.de abgearbeitet. Diese ist vor der Installation des jeweiligen Paketes in dem Informationstext mit angegeben und sollte auf jedenfall besucht werden.

ACHTUNG: Dies ist nur für den schnellen Einstieg nach der Installation von Fedora gedacht und geeignet. Es soll dabei keinen Ersatz für yum oder pirut darstellen, sondern lediglich die benötigten Pakete für Multimedia etwas erklären. 

Viel Spass mit Fedora

Fedoraforum.de: http://www.fedoraforum.de
Fedorawiki.de:  http://www.fedorawiki.de"

# Warnhinweis auf die Entwicklerversion
$ERROR_MESSAGE \
"Achtung, dies ist noch eine Entwicklungsversion. Falls Euer PC danach irgendwelche komischen Sachen macht, kommt nicht zu mir. :)

Bei Aufruf aus dem Menü wird zusätzlich noch ein Terminal aufgerufen, dass im Zweifelsfalle Fehlermeldungen enthält."

}

############################### Auswahlmenü #################################################

function menu {

if [ $DIALOG = kdialog ];then

# FIXME: geometry überprüfen

# Extra-Menü für KDE
AUSWAHL=`kdialog --geometry 600x300  --title "Fedoraforum.de Installationshilfe" --radiolist "Welche Pakete sollen nachinstalliert werden?" \
ATI                     "ATI - Installation des proprietären Treibers für ATI-Grafikkarten" FALSE \
NVIDIA                  "NVIDIA - Installation des proprietären Treibers für NVIDIA-Grafikkarten" FALSE \
NTFS                    "NTFS - Benötigte Pakete zur Einbindung von NTFS-Partitionen" FALSE \
Multimedia-Codecs       "Multimedia-Codecs - Benötigte Pakete für Unterstützung von MP3, MPEG2 und anderen" FALSE \
Java                    "Java - Installation von Suns Java RE" FALSE \
Flash                   "Flash - Flash-Plugin für Webbrowser (Firefox, Konqueror, Opera)" FALSE \
"Adobe Reader"		"Adobe Reader - Installation des Adobe Readers" FALSE \
"Real Player"		"Installation des Real Players" FALSE \
Opera			"Opera - Der Webbrowser" FALSE \
Virtualbox		"Die virtulle Maschine Virtualbox" FALSE \
"Hilfeseiten im Fedorawiki.de"	"Hilfe zum Fedoraforum.de-Installer im Fedorawiki.de" FALSE \
WikiDownload			"Wiki runterladen" FALSE \
`

else

# Menü für alle anderen
AUSWAHL=`zenity --list --radiolist --width=800 --height=450 --text "Welche Pakete sollen nachinstalliert werden?" --title "Fedoraforum.de Installationshilfe" --column="" --column Punkt --column Beschreibung \
\"\" ATI				"Installation des proprietären Treibers für ATI-Grafikkarten" \
\"\" NVIDIA				"Installation des proprietären Treibers für NVIDIA-Grafikkarten" \
\"\" NTFS				"Benötigte Pakete zur Einbindung von NTFS-Partitionen" \
\"\" Multimedia-Codecs			"Benötigte Pakete für Unterstützung von MP3, MPEG2 und anderen" \
\"\" Java                       "Installation von Suns Java RE" \
\"\" Flash				"Flash-Plugin für Webbrowser (Firefox, Konqueror, Opera)" \
\"\" "Adobe Reader"			"Installation des Adobe Readers" \
\"\" "Real Player"			"Installation des Real Players" \
\"\" Opera				"Opera - Der Webbrowser" \
\"\" Virtualbox				"Installation der virtuellen Maschine VirtualBox" \
\"\" "Hilfeseiten im Fedorawiki.de"	"Hilfe zum Fedoraforum.de-Installer im Fedorawiki.de" \
\"\" "Download des Fedorawiki.de"	"Download einer Auswahl von Artikeln des Fedorawiki.de als PDF" \
`

fi

# Auswahl des Folgemenüs

if [ -z "$AUSWAHL" ];then
	rm -rf $TMPDIR
	echo "Bis zum nächsten Mal."
elif [ "$AUSWAHL" = NVIDIA ];then
	install_nvidia
elif [ "$AUSWAHL" = ATI ];then
	install_ati
elif [ "$AUSWAHL" = NTFS ];then
	install_ntfs
elif [ "$AUSWAHL" = Multimedia-Codecs ];then
	install_multimedia_codecs
elif [ "$AUSWAHL" = Java ];then
	install_java
elif [ "$AUSWAHL" = Flash ];then
	install_flash
elif [ "$AUSWAHL" = "Adobe Reader" ];then
	install_adobereader
elif [ "$AUSWAHL" = "Real Player" ];then
	install_realplayer
elif [ "$AUSWAHL" = "Opera" ];then
	install_opera
elif [ "$AUSWAHL" = "Virtualbox" ];then
	install_virtualbox
elif [ "$AUSWAHL" = "Hilfeseiten im Fedorawiki.de" ];then
	open_help
elif [ "$AUSWAHL" = "Download des Fedorawiki.de" ];then
	wiki_download
fi

}

############################### Check für installierte Pakte ################################

function check_installed {

PAKETNAME=$1
VERSION=none
installed=no

if [ $PAKETNAME = flash ];then
rpm -q flash-plugin adobe-release > /dev/null
  if [ $? = 0 ];then
	$INFO_MESSAGE "Das Flash-Plugin ist schon installiert. Aktualisierungen werden automatisch über yum/pup eingespielt."
	installed=yes
  fi

elif [ $PAKETNAME = virtualbox ];then
  rpm -q VirtualBox > /dev/null
  if [ $? = 0 ];then
    $INFO_MESSAGE "Dieses Skript ist noch nicht für eine Aktualisierung von VirtualBox vorgesehen."
    installed=yes
  fi

else 

if [ $PAKETNAME = adobereader ];then PAKETNAME=AdobeReader_deu && VERSION=$adobereader_version;fi
if [ $PAKETNAME = opera ];then VERSION=$opera_version;fi
if [ $PAKETNAME = realplayer ];then PAKETNAME=RealPlayer && VERSION=$realplayer_version;fi
if [ $PAKETNAME = virtualbox ];then PAKETNAME=VirtualBox && VERSION=$virtualbox_version;fi

rpm -q $PAKETNAME > /dev/null
if [ $? = 0 ];then
  if [ `rpm -q --qf "%{version}-%{release}\n" $PAKETNAME` = $VERSION ];then

    $INFO_MESSAGE "Das Paket $PAKETNAME ist bereits in der aktuellsten Version installiert."
    installed=yes
  else 
    $INFO_MESSAGE "Aktualisiere das Paket $PAKETNAME."
  fi
fi

fi

}

############################### Hinweis auf längeren Download ###############################

function downloadinfo {

$INFO_MESSAGE \
"Je nach Paketgröße und Geschwindigkeit der Internetanbindung kann der folgende Schritt etwas dauern."

}

############################### Fehlermeldung ################################################
## Erstmal nur ein Platzhalter

function info_error {

# Erstmal nicht viel drin
$ERROR_MESSAGE "Ein Fehler ist aufgetreten. In Zukunft wird hier hoffentlich etwas mehr Information stehen, für den Moment muss aber die Ausgabe im Terminal reichen."

exit 1

}

############################### Livna ########################################################

function install_livna {

$DIALOG_QUESTION \
"Für die Funktionalität dieser Installationshilfe wird das Repository von rpm.livna.org (oder kurz: Livna) benötigt. Damit ist der Zugriff auf verschiedene Multimediapakete möglich, die nicht in Fedora enthalten sind.
Livna sollte dabei nicht mit den anderen Third-Party-Repositories rpmforge und/oder freshrpms kombiniert werden.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Repository
http://fedorawiki.de/index.php/Serverlisten

Achtung: Dadurch, dass der GPG-Key zur Überprüfung der Livna-RPMs sich im noch zu installierenden Release-RPM befindet, erscheint bei der Installation eine Warnung. Diese kann dabei aber ignoriert werden.

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then

# Fedora Release überprüfen
if [ `rpm -q --qf "%{version}\n" fedora-release` = 6 ];then
	echo "DEBUG: Fedora-Version ist FC6"
	url_livna=$url_livna_6
elif [ `rpm -q --qf "%{version}\n" fedora-release` = 7 ];then
	echo "DEBUG: Fedora-Version ist F7"
	url_livna=$url_livna_7
fi
	echo "DEBUG: livna-release herunterladen"
	wget -nv -P $TMPDIR "$url_livna" || info_error
	system-install-packages $TMPDIR/livna-release-*.rpm
	echo "DEBUG: Nochmalige Überprüfung, ob Livna aktiviert ist."
	rpm -q livna-release > /dev/null || exit 1
	echo "DEBUG: Installation des GPG-Keys von Livna"
	rpm --import $GPG_LIVNA
else 
	echo "Ohne das Repository von Livna ist dieses Skript nicht funktionsfähig."
	exit 1

fi

}

############################### ATI #############################

function install_ati {

$DIALOG_QUESTION \
"Im folgenden Schritt wird der proprietäre Treiber von ATI für den aktuellen Kernel installiert. 

Nach der Installation ist normalerweise keine weitere Konfiguration nötig - dies erledigt das Paket von alleine. Nach dem nächsten Neustart wird der Treiber dabei automatisch eingebunden.

Heruntergeladen werden dabei drei Pakete: kmod-fglrx, xorg-x11-drv-fglrx und livna-config-display. Diese sind für die Installation notwendig.


Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Ati

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then

  # Livna wird benötigt  
  rpm -q livna-release > /dev/null || install_livna

  if [ `rpm -q --qf "%{version}\n" fedora-release` = 7 ];then

    $INFO_MESSAGE "Livna bietet momentan leider keine Treiber für ATI-Karten für Fedora 7 an, da diese noch nicht mit Xorg 7.3 funktionieren."

  else

    echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
    yumdownloader --destdir=$TMPDIR kmod-fglrx xorg-x11-drv-fglrx livna-config-display || info_error
    system-install-packages $TMPDIR/kmod-fglrx*.rpm $TMPDIR/xorg-x11-drv-fglrx*.rpm $TMPDIR/livna-config-display*.rpm
  fi

fi

menu

}

############################### Nvidia #############################

function install_nvidia {

$DIALOG_QUESTION \
"Im folgenden Schritt wird der proprietäre Treiber von Nvidia für den aktuellen Kernel installiert. Dieser ist neben der 3D-Beschleunigung auch für die Benutzung von AIGLX und Compiz oder Beryl nötig. 

Nach der Installation ist normalerweise keine weitere Konfiguration nötig - dies erledigt das Paket von alleine. Nach dem nächsten Neustart wird der Treiber dabei automatisch eingebunden.

Weitere Hinweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Nvidia-Installation_(yum)

Soll mit der Installation fortgefahren werden?"

if [ $DIALOG = kdialog ];then

# Extra-Menü für KDE
AUSWAHL_NVIDIA=`kdialog --geometry 600x300  --title "Fedoraforum.de Installationshilfe" --radiolist "Welcher Treiber soll installiert werden?" \
nvidia        "nvidia - Der normale Treiber für die neueren NVidia-Karten (mit Aiglx-Unterstützung)" FALSE \
nvidia-96xx   "nvidia-96xx - Treiber für Geforce 3 und 4 (mit Aiglx-Unterstützung)" FALSE \
nvidia-legacy "nvidia-legacy - Legacy-Treiber von Nvidia für ältere Karten (ohne Aiglx-Unterstützung)" FALSE \
`

else

# Menü für alle anderen
AUSWAHL_NVIDIA=`zenity --list --radiolist --width=700 --height=200 --text "Welcher Treiber soll installiert werden?" --title "Fedoraforum.de Installationshilfe" --column="" --column Punkt --column Beschreibung \
\"\" nvidia		"Der normale Treiber für die neueren NVidia-Karten (mit Aiglx-Unterstützung)" \
\"\" nvidia-96xx	"Treiber für Geforce 3 und 4 (mit Aiglx-Unterstützung)" \
\"\" nvidia-legacy	"Legacy-Treiber von Nvidia für ältere Karten (ohne Aiglx-Unterstützung)" \
`

fi

# Bei Abbruch wirklich abbrechen
if [ $? != 1 ];then
  
  # Livna wird benötigt
  rpm -q livna-release > /dev/null || install_livna

  if [ $AUSWAHL_NVIDIA = nvidia ];then
    echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
    yumdownloader --destdir=$TMPDIR kmod-nvidia xorg-x11-drv-nvidia livna-config-display || info_error
    system-install-packages $TMPDIR/kmod-nvidia-1*.rpm $TMPDIR/xorg-x11-drv-nvidia-1*.rpm  $TMPDIR/livna-config-display*.rpm
  elif [ $AUSWAHL_NVIDIA = nvidia-96xx ];then
    echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
    yumdownloader --destdir=$TMPDIR kmod-nvidia-96xx xorg-x11-drv-nvidia-96xx livna-config-display || info_error
    system-install-packages $TMPDIR/kmod-nvidia-96xx*.rpm $TMPDIR/xorg-x11-drv-nvidia-96xx*.rpm $TMPDIR/livna-config-display*.rpm
  elif [ $AUSWAHL_NVIDIA = nvidia-legacy ];then
    echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
    yumdownloader --destdir=$TMPDIR kmod-nvidia-legacy xorg-x11-drv-nvidia-legacy livna-config-display || info_error
    system-install-packages $TMPDIR/kmod-nvidia-legacy*.rpm $TMPDIR/xorg-x11-drv-nvidia-legacy*.rpm $TMPDIR/livna-config-display*.rpm
  fi

fi

menu

}


############################### NTFS ###############################

function install_ntfs {

# Infotext

$DIALOG_QUESTION \
"Um Zugriff auf NTFS-Partitionen zu bekommen, sind zwei Wege möglich: 
- kmod-ntfs
- ntfs-3g

kmod-ntfs stellt ein Kernelmodul bereit, welches ausschließlich lesenden Zugriff auf NTFS-Partitionen erlaubt, ntfs-3g ermöglicht auch das Beschreiben
In beiden Fällen muss danach die Datei /etc/fstab händisch angepasst werden, damit die NTFS-Partition auch beim Systemstart eingebunden werden können.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/NTFS

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then

  # Livna wird benötigt
  rpm -q livna-release > /dev/null || install_livna

  # check ob eines von beiden schon installiert ist
  rpm -q kmod-ntfs > /dev/null && NTFS_RPM=kmod-ntfs
  rpm -q ntfs-3g   > /dev/null && NTFS_RPM=ntfs-3g

  if [ $NTFS_RPM ]; then
  $ERROR_MESSAGE \
"Das Paket $NTFS_RPM stellt schon die Möglichkeiten für das Einbinden von NTFS-Partitionen bereit. Es ist dabei nicht empfohlen, beide Pakete gleichzeitig installiert zu haben.
Falls das andere Paket installiert werden soll, muss $NTFS_RPM vorher über den Paketmanager entfernt werden."

  else

  # Paket auswählen lassen
  AUSWAHL_NTFS=`zenity --list --radiolist --width=450 --height=200 --title "NTFS-Variante auswählen" --column=aktiv --column=Paketname --column=Beschreibung \
  \"\" kmod-ntfs 	"nur Lesezugriff" \
  \"\" ntfs-3g 		"Lese- und Schreibzugriff"
`
  # Extra Abfrage, ob AUSWAHL_NTFS gefüllt ist, um Fehler bei Abbruch zu vermeiden
    if [ $? = 0 ];then

	if [ $AUSWAHL_NTFS = kmod-ntfs ];then
		echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
		yumdownloader --destdir=$TMPDIR kmod-ntfs ntfs-kmod-common || info_error
		system-install-packages $TMPDIR/kmod-ntfs-*.rpm $TMPDIR/ntfs-kmod-common*.rpm

	elif [ $AUSWAHL_NTFS = ntfs-3g ];then
		echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
		yumdownloader --destdir=$TMPDIR ntfs-3g || info_error
		system-install-packages $TMPDIR/ntfs-3g*.rpm
	fi
    fi

  fi

fi

menu

}

############################### Multimedia-Codecs ###############################

function install_multimedia_codecs {

$DIALOG_QUESTION \
"Fedora kommt von Haus aus ohne Unterstützung für MP3 und andere Multimediacodecs, die entweder nicht frei oder patentbelastet sind. Für die meisten Programme gibt es jedoch Plugins, durch die diese Funktionalität nachgerüstet werden kann. Die Installation dieser Plugins wird hier angeboten.

Weitere Hinweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Fehlende_Multimediafunktionen_nachrüsten

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then

  # Livna wird benötigt
  rpm -q livna-release > /dev/null || install_livna

# Test, ob Paket schon installiert ist

rpm -q audacious-plugins-nonfree-aac 	> /dev/null && AUDACIOUS_AAC="[bereits installiert]"
rpm -q audacious-plugins-nonfree-alac 	> /dev/null && AUDACIOUS_ALAC="[bereits installiert]"
rpm -q audacious-plugins-nonfree-lame 	> /dev/null && AUDACIOUS_LAME="[bereits installiert]"
rpm -q audacious-plugins-nonfree-mms 	> /dev/null && AUDACIOUS_MMS="[bereits installiert]"
rpm -q audacious-plugins-nonfree-mp3 	> /dev/null && AUDACIOUS_MP3="[bereits installiert]"
rpm -q audacious-plugins-nonfree-tta 	> /dev/null && AUDACIOUS_TTA="[bereits installiert]"
rpm -q audacious-plugins-nonfree-wma 	> /dev/null && AUDACIOUS_WMA="[bereits installiert]"
rpm -q gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-ffmpeg	 > /dev/null && GSTREAMER="[bereits installiert]"
rpm -q gstreamer-plugins-ugly 	 	> /dev/null && GSTREAMER_UGLY="[bereits installiert]"
rpm -q k3b-extras-nonfree 		> /dev/null && K3B="[bereits installiert]"
rpm -q kdemultimedia-extras-nonfree 	> /dev/null && KDEMULTIMEDIA="[bereits installiert]"
rpm -q lame 				> /dev/null && LAME="[bereits installiert]"
rpm -q totem-xine			> /dev/null && TOTEM_XINE_INSTALLED="[bereits installiert]"
rpm -q xine-lib-extras-nonfree 		> /dev/null && XINE="[bereits installiert]"
rpm -q xmms-mp3 			> /dev/null && XMMS="[bereits installiert]"

# Auswahl des/der zu installierenden Pakete(s)

if [ $DIALOG = kdialog ];then

# FIXME: geometry überprüfen

# Extra-Menü für KDE
AUSWAHL_MULTIMEDIA_CODECS=`kdialog --geometry 800x300 --title "Fedoraforum.de Installationshilfe" --checklist "Erweiterungspaket für Multimedia auswählen" --separate-output \
audacious-plugins-nonfree-aac	"Abspielen von AAC-Dateien in audacious $AUDACIOUS_AAC" FALSE \
audacious-plugins-nonfree-alac	"Abspielen von ALAC-Dateien (Apple Lossless Audio Codec) für audacious $AUDACIOUS_ALAC" FALSE \
audacious-plugins-nonfree-lame	"MP3s schreiben mit audacious $AUDACIOUS_MP3" FALSE \
audacious-plugins-nonfree-mms	"Abspielen von MMS-Streams in audacious $AUDACIOUS_MP3" FALSE \
audacious-plugins-nonfree-mp3	"Abspielen von MP3-Dateien in audacious $AUDACIOUS_MP3" FALSE \
audacious-plugins-nonfree-tta	"Abspielen von TTA-Dateien in audacious $AUDACIOUS_MP3" FALSE \
audacious-plugins-nonfree-wma	"WMA für audacious $AUDACIOUS_WMA" FALSE \
gstreamer-plugins		"Weitere Codecs (MP3, MPEG2, Quicktime) für die u.a. von totem und rhythmbox genutzte gstreamer-Engine" FALSE \
k3b-extras-nonfree		"k3b-extras-nonfree - Direktes Brennen von MP3s für k3b $K3B" FALSE \
kdemultimedia-extras-nonfree	"kdemultimedia-extras-nonfree - Weitere MP3-Unterstützung für KDE-Programme $KDEMULTIMEDIA" FALSE \
lame				"lame - Der MP3-Encoder lame $LAME" FALSE \
xine-lib-extras-nonfree		"xine-lib-extras-nonfree - MP3 und weitere für xine (und damit amarok, kaffeine und andere) $XINE" FALSE \
xmms-mp3			"MP3-Unterstützung für den Dinosaurier $XMMS" FALSE
`
else

# Menü für alle anderen
AUSWAHL_MULTIMEDIA_CODECS=`zenity --list --separator=" " --checklist --width=1000 --height=500 --title "Erweiterungspakete für Multimedia auswählen (Mehrfachauswahl möglich)" --column="" --column=Paketname --column=Beschreibung \
\"\" audacious-plugins-nonfree-aac	"Abspielen von AAC-Dateien in audacious $AUDACIOUS_AAC" \
\"\" audacious-plugins-nonfree-alac	"Abspielen von ALAC-Dateien (Apple Lossless Audio Codec) für audacious $AUDACIOUS_ALAC" \
\"\" audacious-plugins-nonfree-lame	"MP3s schreiben mit audacious $AUDACIOUS_MP3" \
\"\" audacious-plugins-nonfree-mms	"Abspielen von MMS-Streams in audacious $AUDACIOUS_MP3" \
\"\" audacious-plugins-nonfree-mp3	"Abspielen von MP3-Dateien in audacious $AUDACIOUS_MP3" \
\"\" audacious-plugins-nonfree-tta	"Abspielen von TTA-Dateien in audacious $AUDACIOUS_MP3" \
\"\" audacious-plugins-nonfree-wma	"WMA für audacious $AUDACIOUS_WMA" \
\"\" gstreamer-plugins			"Weitere Codecs (MP3, MPEG2, Quicktime) für die u.a. von totem und rhythmbox genutzte gstreamer-Engine $GSTREAMER" \
\"\" k3b-extras-nonfree			"Direktes Brennen von MP3s in k3b $K3B" \
\"\" kdemultimedia-extras-nonfree	"Weitere MP3-Unterstützung für KDE-Programme $KDEMULTIMEDIA" \
\"\" lame				"Der MP3-Encoder lame $LAME" \
\"\" totem-xine				"Totem mit der xine-lib anstatt gstreamer $TOTEM_XINE_INSTALLED" \
\"\" xine-lib-extras-nonfree		"MP3 und weitere für xine (und damit amarok, kaffeine und andere) $XINE" \
\"\" xmms-mp3				"MP3-Unterstützung für den Dinosaurier $XMMS"
`

fi

# Bei Abbruch wirklich abbrechen
if [ $? != 1 ];then

  # Zuerst einmal alle evtl. existierenden Pakete ohne Rücksicht löschen und das Verzeichnis neu anlegen
  rm -rf $TMPDIR/MP3
  mkdir -p $TMPDIR/MP3

  # Ein riesen Aufwand um totem durch totem-xine zu ersetzen.
  CHECK_RPMDB=no
  TOTEM=no
  TOTEM_PLPARSER=no
  TOTEM_XINE=no
  TOTEM_DEVEL=no
  TOTEM_MOZPLUGIN=no

  echo "$AUSWAHL_MULTIMEDIA_CODECS" | grep totem-xine > /dev/null && TOTEM_XINE=yes

  if [  $TOTEM_XINE = yes ];then
    echo "DEBUG: totem-xine soll installiert werden. Prüfe, ob totem schon installiert ist."
    rpm -q totem > /dev/null && TOTEM=yes && echo "DEBUG: totem ist schon installiert."
    echo "DEBUG: totem-xine soll installiert werden. Prüfe, ob totem-plparser allein installiert ist."
    rpm -q totem-plparser > /dev/null && TOTEM_PLPARSER=yes && echo "DEBUG: totem-plparser ist schon installiert."


    if [ $TOTEM = yes -o $TOTEM_PLPARSER = yes ];then
      echo "DEBUG: totem und/oder totem-plparser ist installiert und soll durch totem-xine/totem-xine-plparser ersetzt werden. Nachfragen."

      $DIALOG_QUESTION \
"Das Paket totem-xine/totem-xine-plparser steht mit dem normalen Paket totem/totem-plparser in Konflikt. Daher wird dieses vorher entfernt werden. Um kein defektes Paketsystem zu riskieren, kann eine Installation nur erfolgen, wenn keine weiteren Pakete vom installierten totem/totem-plparser abhängig sind.

Soll trotzdem mit der Installation von totem-xine fortgefahren werden?"

      if [ $? = 0 ];then
        # Fülle $TOTEM_PAKETE
        TOTEM_PAKETE=
        rpm -q totem-plparser > /dev/null && TOTEM_PAKETE=totem-plparser
        rpm -q totem > /dev/null && TOTEM_PAKETE="$TOTEM_PAKETE totem"

        # Prüfe, ob zusätzlich noch totem-devel und totem-mozplugin installiert sind
        rpm -q totem-devel > /dev/null && TOTEM_PAKETE="$TOTEM_PAKETE totem-devel" && TOTEM_DEVEL=yes
        rpm -q totem-mozplugin > /dev/null && TOTEM_PAKETE="$TOTEM_PAKETE totem-mozplugin" && TOTEM_MOZPLUGIN=yes

        echo "DEBUG: Versuche, die folgenden Pakete zu entfernen: $TOTEM_PAKETE"
        rpm -e $TOTEM_PAKETE
        if [ $? != 0 ];then
          # FIXME: Wollen wir das wirklich?
	  $DIALOG_QUESTION \
"totem und/oder totem-plparser konnten leider nicht entfernt werden. Wenn trotzdem fortgefahren werden soll, wird versucht, totem/totem-plparser mit der Option --nodeps zu entfernen.

HINWEIS: Mit den gstreamer-plugins ist es auch bei dem normalen totem möglich, die meisten Multimediadateien abzuspielen. totem-xine bietet dabei nur den Vorteil, eine andere Engine zu nutzen.

ACHTUNG: Dieses kann das Paketsystem inkonsistent machen und wird nur erfahrenen Benutzern empfohlen. Das Fortfahren geschieht auf eigene Gefahr!

ACHTUNG: Die Installation darf später nicht abgebrochen werden!

Soll totem trotzdem ersetzt werden?"

	  if [ $? = 0 ];then
	    echo "DEBUG: Reiße folgende Pakete aus dem Paketsystem heraus: $TOTEM_PAKETE"
	    rpm -e --nodeps $TOTEM_PAKETE
	    # Prüfe im Anschluss die Paketdatenbank auf Inkonsistenz
	    CHECK_RPMDB=yes

	    # Füge totem-xine-plparser und xine-lib-extras-nonfree zur Auswahl hinzu (wird sowieso immer gebraucht)
	    echo "DEBUG: Füge totem-xine-plparser zur Auswahl hinzu (nur F7)."
	    AUSWAHL_MULTIMEDIA_CODECS="`echo $AUSWAHL_MULTIMEDIA_CODECS | sed 's/totem-xine/totem-xine totem-xine-plparser/g'`"

	    if [ -z "$XINE" ];then
	      echo "DEBUG: Füge ebenfalls xine-lib-extras-nonfree hinzu."
	      AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS xine-lib-extras-nonfree"
  	    fi


  	    # Falls totem-devel installiert war, installiere totem-xine-devel
	    if [ $TOTEM_DEVEL = yes ];then
	      echo "DEBUG: Installiere ebenfalls totem-xine-devel"
	      AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS totem-xine-devel"
	    fi
	    # Falls totem-mozplugin installiert war, installiere totem-xine-mozplugin
	    if [ $TOTEM_MOZPLUGIN = yes ];then
	      echo "DEBUG: Installiere ebenfalls totem-xine-mozplugin"
	      AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS totem-xine-mozplugin"
	    fi
	  else
            # Installation von totem-xine abgewählt, da --nodeps nicht erwünscht
	    echo "DEBUG: Entferne totem-xine aus der Auswahl."
	    $INFO_MESSAGE "totem-xine wurde aus der Auswahl entfernt. Fahre mit der restlichen Auswahl fort."
	    AUSWAHL_MULTIMEDIA_CODECS="`echo $AUSWAHL_MULTIMEDIA_CODECS | sed 's/totem-xine//g'`"
	  fi
        else
	  # totem/totem-plparser ließ sich normal entfernen
	  # Füge totem-xine-plparser zur Auswahl hinzu (wird sowieso immer gebraucht)
	  echo "DEBUG: Füge totem-xine-plparser zur Auswahl hinzu (nur F7)."
	  AUSWAHL_MULTIMEDIA_CODECS="`echo $AUSWAHL_MULTIMEDIA_CODECS | sed 's/totem-xine/totem-xine totem-xine-plparser/g'`"

	  if [ -z "$XINE" ];then
	    echo "DEBUG: Füge ebenfalls xine-lib-extras-nonfree hinzu."
	    AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS xine-lib-extras-nonfree"
	  fi
	  # Falls totem-devel installiert war, installiere totem-xine-devel
	  if [ $TOTEM_DEVEL = yes ];then
	    echo "DEBUG: Installiere ebenfalls totem-xine-devel"
	    AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS totem-xine-devel"
	  fi
	  # Falls totem-mozplugin installiert war, installiere totem-xine-mozplugin
	  if [ $TOTEM_MOZPLUGIN = yes ];then
	    echo "DEBUG: Installiere ebenfalls totem-xine-mozplugin"
	    AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS totem-xine-mozplugin"
	  fi
	fi
      else
         # Installation von totem-xine abgewählt, da generelle Deinstallation nicht gewünscht
	echo "DEBUG: Entferne totem-xine aus der Auswahl."
	$INFO_MESSAGE "totem-xine wurde aus der Auswahl entfernt. Fahre mit der restlichen Auswahl fort."
	AUSWAHL_MULTIMEDIA_CODECS="`echo $AUSWAHL_MULTIMEDIA_CODECS | sed 's/totem-xine//g'`"
      fi
    elif [ $TOTEM = no -a $TOTEM_PLPARSER = no ];then
      # totem und totem-plparser waren nicht installiert. Installation ist also problemlos
      echo "DEBUG: totem und totem-plparser sind nicht installiert."
      echo "DEBUG: Füge totem-xine-plparser Auswahl hinzu (nur F7)."
      AUSWAHL_MULTIMEDIA_CODECS="`echo $AUSWAHL_MULTIMEDIA_CODECS | sed 's/totem-xine/totem-xine totem-xine-plparser/g'`"
	
      # Falls xine-lib-extras-nonfree noch nicht installiert ist, füge es ebenfalls hinzu
      if [ -z "$XINE" ];then
        echo "DEBUG: Füge ebenfalls xine-lib-extras-nonfree hinzu."
	AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS xine-lib-extras-nonfree"
      fi
    fi

  fi

  # gstreamer-plugins aufsplitten
  echo "$AUSWAHL_MULTIMEDIA_CODECS" | grep gstreamer-plugins > /dev/null

  if [ $? = 0 ];then
    GSTREAMER_PLUGINS=
    rpm -q gstreamer-ffmpeg > /dev/null || GSTREAMER_PLUGINS=gstreamer-ffmpeg
    rpm -q gstreamer-plugins-bad > /dev/null || GSTREAMER_PLUGINS="$GSTREAMER_PLUGINS gstreamer-plugins-bad"
    rpm -q gstreamer-plugins-ugly > /dev/null || GSTREAMER_PLUGINS="$GSTREAMER_PLUGINS gstreamer-plugins-ugly"
    AUSWAHL_MULTIMEDIA_CODECS="$AUSWAHL_MULTIMEDIA_CODECS $GSTREAMER_PLUGINS"
    echo "DEBUG: Installiere nur fehlende gstreamer-plugins: $GSTREAMER_PLUGINS"
  fi

  # Mache nur weiter, wenn etwas ausgewählt wurde
  if [ "$AUSWAHL_MULTIMEDIA_CODECS" ];then

  echo "DEBUG: Lade Paketauswahl mit yumdownloader herunter."
  yumdownloader --destdir=$TMPDIR/MP3 $AUSWAHL_MULTIMEDIA_CODECS || info_error
  system-install-packages $TMPDIR/MP3/*.rpm

  # Prüfe Paketdatenbank mit package-cleanup, falls das angefragt wurde
  if [ $CHECK_RPMDB = yes ];then
    $INFO_MESSAGE \
"Durch das Herausreißen von totem aus der Paketdatenbank kann diese inkonsistent geworden sein. Dieses wird nun mithilfe von package-cleanup überprüft. Das Ergebnis davon findet sich im geöffneten Terminal.

Falls dabei fehlende Abhängigkeiten auftreten, kann mit yum danach gesucht werden: 
 yum provides libtotem-plparser.so.1

Eines der dort angezeigten Pakete sollte dann installiert werden:
 (Fedora 7): yum install totem-plparser
 (Fedora 6): yum install totem
" 

    echo "DEBUG: Prüfe Paketdatenbank auf Inkonsistenz."
    package-cleanup --problems

  fi

  # Scheinbar ist nichts mehr ausgewählt
  else
    echo "DEBUG: Diese Meldung kommt, wenn nur totem-xine ausgewählt wurde, diese aber nicht installiert werden soll."
    $INFO_MESSAGE "Keine Pakete mehr ausgewählt. Zurück zum Menü."
  fi

fi

fi

menu

}

############################### Java ###############################

function install_java {

$DIALOG_QUESTION \
"Fedora bringt keine Installationsquelle für das Java von Sun mit. Dieses wurde aus lizenzrechtlichen Gründen bisher nicht in die Distribution integriert. Alle in Fedora enthaltenen Javaprogramme laufen dabei mit dem unter der GPL stehenden gcj - einer freien Nachbildung von Suns Java.

Hier wird der Tarball von Suns Java installiert und so konfiguriert, dass er die gcj-Implementation ersetzt.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Java_Runtime_Environment

ACHTUNG: Es ist leider kein direkter automatischer Download möglich, deswegen müsst Ihr es selbst von der Downloadseite von Sun herunterladen. Geht dazu auf die unten angegebene Seite und wählt das Paket für i386 oder x64 aus. Wenn Ihr in diesem Hinweisfenster auf OK klickt, öffnet sich ein Dateidialog, bei dem Ihr das heruntergeladene Paket auswählen müsst. Der Rest geschieht dann (fast) von alleine.

Downloadseite von Sun: 
http://java.com/de/download/linux_manual.jsp

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then

# Downloadseite öffnen
# FIXME: Gibt es eine Möglichkeit, dieses als User und nicht als root zu machen?

$DIALOG_QUESTION \
"Soll die Downloadseite von Sun jetzt in einem Browser geöffnet werden?"

  if [ $? = 0 ]; then
    if [ -x /usr/bin/xdg-open ]; then
	xdg-open http://java.com/de/download/linux_manual.jsp
    elif [ -x /usr/bin/htmlview ];then
	htmlview http://java.com/de/download/linux_manual.jsp
    elif [ -x /usr/bin/firefox ];then
	firefox http://java.com/de/download/linux_manual.jsp
    else
	$ERROR_MESSAGE "Browser konnte nicht gefunden werden."
    fi
  fi

# Dateiname und Versionsnummer bestimmen

JAVA=`$GETFILENAME`
#JAVA_VERSION=`echo $JAVA | cut -d \- -f 2 | sed 's/_/./1' | sed 's/_/./1'`


# Totalabbruch, da es scheinbar keine Möglichkeit eines "breaks" gibt
if [ -z $JAVA ];then  
	$ERROR_MESSAGE "Keine Datei ausgewählt. Dieses Skript wird jetzt beendet."
	exit 1
fi

$INFO_MESSAGE \
'In dem geöffneten Terminal wird der Lizenztext von Suns Java angezeigt, den Ihr bis zum Ende durchlesen und mit der Eingabe von "yes" bestätigen müsst. Die Rest geschieht dann automatisch.'

# Archiv extrahieren
cd /opt/ && sh $JAVA

# Variable $JAVA_DIR für später anlegen // FIXME: ordentlich machen
export JAVA_DIR_TMP=`find /opt -name "jre*" -type d`
echo "DEBUG: JAVA_DIR_TMP: $JAVA_DIR_TMP"
export JAVA_DIR=`echo $JAVA_DIR_TMP | awk ' { print $1 } '`
echo "DEBUG: JAVA_DIR: $JAVA_DIR"

# Profil anlegen
echo "DEBUG: Profildatei für Java anlegen"
echo "export J2RE_HOME=$JAVA_DIR" > /etc/profile.d/java.sh 
echo 'export PATH=$J2RE_HOME/bin:$PATH' >> /etc/profile.d/java.sh 
source /etc/profile.d/java.sh 

# Alternatives konfigurieren
echo "DEBUG: Konfiguriere das Alternatives-System"
/usr/sbin/alternatives --install /usr/bin/java java $JAVA_DIR/bin/java 2 
/usr/sbin/alternatives --set java $JAVA_DIR/bin/java 

# Falls 64bit, keine Installation des Browser-Plugins
if [ `rpm -q --queryformat "%{arch}\n" firefox | head -n 1` = i386 ]; then
	echo "DEBUG: Browserplugin verlinken"
	ln -sf /opt/jre$JAVA_VERSION/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so
fi

echo "DEBUG: Teste auf Java-Version"
java -version

if [ $? = 0 ];then

$INFO_MESSAGE 'Java wurde scheinbar erfolgreich installiert.'

else

$ERROR_MESSAGE "Irgendetwas ist schief gegangen. Im geöffneten Terminal stehen ein paar mehr Informationen."

fi

fi

menu

}

############################### Flash ###############################

function install_flash {

check_installed flash

if [ $installed = no ]; then

$DIALOG_QUESTION \
"Im folgenden Schritt wird das Flash-Plugin von Macromedia für die gängigen Webbrowser installiert.
Das Flash-Plugin ist dabei allerdings nur für die Architektur i386 verfügbar. Wer eine 64bit-Version oder die PPC-Variante von Fedora verwendet, muss leider auf Flash verzichten.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Flash

Soll mit der Installation fortgefahren werden?"

  if [ $? = 0 ];then
	echo "DEBUG: Installiere Flash-Repository von Macromedia"
	rpm -Uvh "$url_flash_release" || info_error
	echo "DEBUG: Importiere GPG-Key für Flash-Plugin"
	rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux || info error
	echo "DEBUG: Lade RPM für das flash-plugin aus dem Repository von Macromedia herunter"
	yumdownloader --destdir=$TMPDIR flash-plugin
	system-install-packages $TMPDIR/flash-plugin-*.rpm
  fi
fi

menu

}


############################### Adobe Reader ###############################

function install_adobereader {

check_installed adobereader

if [ $installed = no ];then

$DIALOG_QUESTION \
"Im folgenden Schritt wird der Adobe Reader installiert.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/Fehlende_Multimediafunktionen_nachrüsten#Adobe_Reader

ACHTUNG: Da das RPM vom Adobe Reader nicht signiert ist, wird bei der Installation eine Warnung erscheinen.

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then
	echo "DEBUG: Lade Adobe Reader herunter"
	wget -P $TMPDIR "$url_adobe"
	system-install-packages $TMPDIR/AdobeReader*.rpm
fi

fi

menu

}

############################### Real Player ###############################

function install_realplayer {

check_installed realplayer

if [ $installed = no ];then

$DIALOG_QUESTION \
"Im folgenden Schritt wird der Real Player installiert.

Weitere Hnweise finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/RealPlayer

ACHTUNG: Da das RPM vom Real Player nicht signiert ist, wird bei der Installation eine Warnung erscheinen.

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then
	echo "DEBUG: Lade Real Player herunter"
	# irgendwie wird das RPM manchmal nicht ins $TMPDIR heruntergeladen, umgehe dies //FIXME
	cd $TMPDIR
	wget -P $TMPDIR "$url_realplayer"
	cd $OLDPWD
	system-install-packages $TMPDIR/RealPlayer*.rpm
fi

fi

menu

}

############################### Opera ###############################

function install_opera {

check_installed opera 

if [ $installed = no ]; then

$DIALOG_QUESTION \
"Im folgenden Schritt wird der proprietäre Webbrowser Opera installiert.

ACHTUNG: Da das RPM von Opera nicht signiert ist, wird bei der Installation eine Warnung erscheinen.

Soll mit der Installation fortgefahren werden?"

if [ $? = 0 ];then
	echo "DEBUG: Lade Opera herunter"
	wget -P $TMPDIR "$url_opera"
	system-install-packages $TMPDIR/opera-*.rpm
fi

fi

menu

}

############################### Virtualbox ###############################

function install_virtualbox {

check_installed virtualbox

if [ $installed = no ]; then

$DIALOG_QUESTION \
"VirtualBox ist eine sogenannte virtuelle Maschine, die das Ausführen von fremden Betriebssystemen im laufenden Betrieb durch Emulation einer Hardwareschicht erlaubt. Als Gastsysteme werden neben den verschiedenen Linuxdistributionen auch Windows unterstützt.
Hier wird das fertige RPM für VirtualBox installiert, das im Gegensatz zu der nur im Quelltext vorliegenden Open Source Edition (OSE) unter einer proprietären Lizenz steht. Im geöffneten Terminal erscheint dabei die Lizenz, die am Ende mit [yes] bestätigt werden muss.

ACHTUNG: Da das RPM von VirtualBox nicht signiert ist, wird bei der Installation eine Warnung erscheinen.

Weitere Informationen zu der Installation von VirtualBox finden sich im deutschen Fedorawiki:
http://fedorawiki.de/index.php/VirtualBox

Soll mit der Installation von VirtualBox fortgefahren werden?"

  if [ $? = 0 ];then
	echo "DEBUG: Lade Virtualbox herunter"
	ARCH=`rpm -q --qf "%{arch}\n" kernel`
	if [ $ARCH = i686 -o $ARCH = i586 ];then
		wget -P $TMPDIR "$url_virtualbox_i586"
	elif [ $ARCH = x86_64 ];then
		wget -P $TMPDIR "$url_virtualbox_x86_64"
	fi
	echo "DEBUG: Entpache RPM."
	cd $TMPDIR
	sh VirtualBox-*.rpm.run
	cd $OLDPWD
	system-install-packages $TMPDIR/VirtualBox-*.rpm

    if [ $? = 0 ];then
	$DIALOG_QUESTION \
'Im nächsten Schritt müssen die Benutzer, die Virtual Box benutzen sollen, zur Gruppe "vboxusers" hinzugefügt werden.
Falls noch nicht vorhanden, wird die Gruppe dabei auch gleich angelegt.

Die Benutzer müssen dann anhand ihres Benutzernamens im folgenden Dialog angegeben werden. Der Benutzer, der die Fedoraforum.de-Installationshilfe gestartet hat ist dabei schon eingetragen, weitere müssen, getrennt durch ein Leerzeichen, angegeben werden. Anschließend müssen sich diese Benutzer neu anmelden, um die Gruppenzugehörigkeit zu aktualisieren.

Falls auf "Abbrechen" gedrückt wird, wird das Anlegen der Gruppe und das Hinzufügen der Benutzers übersprungen und die Installation von Virtualbox ist abgeschlossen (obwohl es wahrscheinlich ohne weitere Konfiguration nicht benutzbar ist).'

      if [ $? = 0 ];then
	# Schauen, ob Gruppe "vboxusers" existiert, falls nicht, anlegen
	grep vboxusers /etc/group > /dev/null
	if [ $? = 1 ];then
		echo "DEBUG: Anlegen der Gruppe vboxusers"
		groupadd vboxusers
	fi 
	
	# Benutzer zur Gruppe vboxusers hinzufügen
	VBOXUSERS=`zenity --entry --text="Benutzernamen eingeben, die zur Gruppe vboxusers hinzugefügt werden sollen" --entry-text=$USER`
	for users in $VBOXUSERS; do
		echo "DEBUG: Füge folgenden Benutzer zur Gruppe vboxusers hinzu: $users"
		lgroupmod -M $users vboxusers
	done
      fi

    # Kernelmodul
      if [ ! -e /lib/modules/`uname -r`/misc/vboxdrv.ko ];then
	echo "DEBUG: Prüfe, ob die für das Compilieren des Kernelmoduls nötigen Pakete installiert sind."
	rpm -q gcc gcc-c++ kernel-devel > /dev/null
	if [ $? != 0 ];then
		echo "DEBUG: Installiere die Pakete gcc gcc-c++ kernel-devel"
		echo "DEBUG: Schon installierte Pakete werden dabei nicht nochmals installiert."
		yum -y install gcc gcc-c++ kernel-devel
	fi
	echo "DEBUG: Compiliere das Kernelmodul für VirtualBox."
	/etc/init.d/vboxdrv setup
      else
	echo "DEBUG: Starte den Systemdienst für VirtualBox." 
	/etc/init.d/vboxdrv start
      fi

    fi

	echo "DEBUG: Installation abgeschlossen."
  fi


fi

menu

}

function wiki_download {

$DIALOG_QUESTION \
"Im Fedorawiki.de besteht die Möglichkeit, einzelne Seiten als PDF-Dateien herunterzuladen. Die Fedoraforum.de-Installationshilfe bietet dabei an, einzelne, ausgewählte Seiten in einem Ordner nach Wahl herunterzuladen. 
Wird Fortgefahren, wird nach dem Ordner gefragt, in den die PDF-Dateien heruntergeladen werden. Es wird innerhalb dieses Ordners dabei eine Ordnerstruktur erstellt, die an die Übersichtsseiten des Fedorawiki.de angelehnt ist.

Sollen die Artikel heruntergeladen werden?"

if [ $? = 0 ];then
	cd /home/$USER
	DOWNLOADDIR=`zenity --file-selection --directory`


### pdf-wiki.sh

 # Variablen 
 URL="http://fedorawiki.de/index.php?title=Spezial:PdfPrint&page=" 
 WORKDIR="$DOWNLOADDIR"
 
 # Installation und Systemupgrade (0-20) 
 page[0]=Fedora_für_Umsteiger 
 page[1]=Download_von_Fedora 
 page[2]=Fedora_7 
 page[3]=Fedora_Core_6 
 page[4]=Fedora_7-LiveCDs 
 page[5]="Installation_über_http/ftp" 
 page[6]=Systemupgrade_über_yum 
 page[7]=Systemupgrade_über_anaconda 
 page[8]=Boot-Optionen_für_die_Installation 
 page[9]=Partitionierung_unter_Linux 
 page[10]=Linux-Partitionen 
 page[11]=Windows-Partitionen_mounten 
 page[12]=NTFS 
 page[13]=GRUB-Wiederherstellung 
 page[14]=Dualboot_mit_Windows 
 page[15]=Fehlende_Multimediafunktionen_nachrüsten 
 page[16]=Fedora_ISO-Images_unter_Windows_brennen 
 
 # Hardware und Treiber (21-40) 
 page[21]=NVIDIA 
 page[22]="Nvidia-Installation_(yum)" 
 page[23]="Nvidia-Installation_(manuell)" 
 page[24]=ATI 
 page[25]=SATA 
 page[26]=WLAN 
 page[27]=Atheros_Karten 
 page[28]=Intel_Pro_Wireless_Adapter 
 page[29]=RaLink_WLAN-Karten 
 page[30]=Texas_Instruments 
 page[31]=Zydas_ZD1211_USB_WLAN-Adapter 
 page[32]=WLAN-Karten_mit_ndiswrapper 
 page[35]=Übersicht_WLAN-Chipsätze 
 
 # Paketverwaltung (41-60) 
 page[41]=Installation_von_Software_unter_Fedora 
 page[42]=Yum 
 page[43]=Pirut 
 page[44]=RPMs_manuell_installieren 
 page[45]=Update 
 page[46]=Repository 
 page[47]=Kompatibilität_der_verschiedenen_Repositories 
 page[48]=Liste_der_Repositories 
 page[49]=Yum_mit_Proxy 
 page[50]="Pakete_in_Repositories_explizit_ausschließen/einschließen" 
 page[51]=Yum-Plugins 
 page[52]=Yum-utils 
 
 # System (61-80) 
 page[61]=Grub-rhgb 
 page[62]=Systemtools 
 page[63]=Programme_automatisch_starten 
 page[64]=Reboots_unter_Linux 
 page[65]=Gnome-Mount 
 page[66]=Bash 
 page[67]=Nano 
 page[68]=Pfade_anpassen 
 page[69]=Root 
 
 # Netzwerk und Server (81-100) 
 page[81]=NFS 
 page[82]=SAMBA 
 page[83]=Samba_Freigaben_anlegen 
 page[84]=Samba_Freigaben_einbinden 
 page[85]=Einrichtung_eines_Funknetzwerks_unter_Fedora 
 page[86]=Wpa_supplicant 
 page[87]=Router 
 
 # Sicherheit (101-120) 
 
 # Grafische Oberfläche (121-140) 
 page[121]=Wechsel_des_Standarddesktops_und_Loginmanagers 
 
 # Weiteres (141-200)
 page[199]=Fedoraforum.de-Installationshilfe
 page[200]=Workarounds 
 
 
 
if [ -d "$WORKDIR" ];then

  # Ins Arbeitsverzeichnis wechseln
  cd "$WORKDIR" 
 
  # Index auf 0 setzen 
  i=0 
  # $count setzen für die Prozentzahl im Progressdialog von zenity
  count=1 
  # Gesamtzahl der Seiten einlesen
  pages=${#page[@]}

  echo "DEBUG: Downloadverzeichnis für die PDF-Dateien: $WORKDIR"
  echo "DEBUG: Anzahl der herunterzuladenen PDF-Dateien: $pages"

  # Starte zenity mit Progressbar
  exec 3> >(zenity --progress --title="Download des Fedorawiki.de" --percentage=0 --auto-close --width=400)

  # Schleife zum herunterladen 
  while [ $i -le 200 ] 
  do 
    if [ "${page[$i]}" ]; then 
 
     # Wechsle ins richtige Verzeichnis 
     if [ $i -ge 0 -a $i -le 20 ];then
       echo "# Artikel des Bereichs: Installation und Systemupgrade" >&3;
       mkdir -p "$WORKDIR/Installation und Systemupgrade" 
       cd "$WORKDIR/Installation und Systemupgrade" 
     elif [ $i -ge 21 -a $i -le 40 ];then 
       echo "# Artikel des Bereichs: Hardware und Treiber" >&3;
       mkdir -p "$WORKDIR/Hardware und Treiber" 
       cd "$WORKDIR/Hardware und Treiber" 
     elif [ $i -ge 41 -a $i -le 60 ];then 
       echo "# Artikel des Bereichs: Paketverwaltung" >&3;
       mkdir -p "$WORKDIR/Paketverwaltung" 
       cd "$WORKDIR/Paketverwaltung" 
     elif [ $i -ge 61 -a $i -le 80 ];then 
       echo "# Artikel des Bereichs: System" >&3;
       mkdir -p "$WORKDIR/System" 
       cd "$WORKDIR/System" 
     elif [ $i -ge 81 -a $i -le 100 ];then 
       echo "# Artikel des Bereichs: Netzwerk und Server" >&3;
       mkdir -p "$WORKDIR/Netzwerk und Server" 
       cd "$WORKDIR/Netzwerk und Server" 
     elif [ $i -ge 101 -a $i -le 120 ];then 
       echo "# Artikel des Bereichs: Sicherheit" >&3;
       mkdir -p "$WORKDIR/Sicherheit" 
       cd "$WORKDIR/Sicherheit" 
     elif [ $i -ge 121 -a $i -le 140 ];then 
       echo "# Artikel des Bereichs: Grafische Oberfläche" >&3;
       mkdir -p "$WORKDIR/Grafische Oberfläche" 
       cd "$WORKDIR/Grafische Oberfläche" 
     elif [ $i -gt 140 ];then 
       echo "# Artikel des Bereichs: Weiteres und Workarounds" >&3;
       cd "$WORKDIR" 
     fi 
 
   name=`echo "${page[$i]}" | sed 's/_/ /g' | sed 's/\//_/g'` 
   echo "DEBUG: Lade Wikiartikel als PDF herunter: $name" 
   curl -s "$URL${page[$i]}" > "$name.pdf" 


  echo $(($count*100/$pages)) >&3;
  count=$[ $count + 1 ];

   fi 
  i=$[ $i + 1 ]; 
 
  done

# Setze Rechte (FC6: abgefragter Benutzer oder 777 / F7: $USER)
if [ `rpm -q --qf "%{version}\n" fedora-release` = 6 ];then
	echo "DEBUG: Fedora-Version ist FC6"
	echo "DEBUG: Frage explizit nach dem Benutzer"
	OWNER=`zenity --entry --text="Welchem Benutzer sollen die PDF-Dateien gehören?"`
	if [ $OWNER ];then
	  chown -R $OWNER:$OWNER $WORKDIR
	else
	  echo "DEBUG: Setze Rechte auf 777 (unschön)"
	  chmod -R 777 $WORKDIR
	fi
else
  echo "DEBUG: Setze Rechte auf Benutzer $USER"
  chown -R $USER:$USER $WORKDIR
fi

fi

fi

menu

}



############################### Hilfe öffnen #############################

function open_help {

echo "DEBUG: Öffne Hilfeseiten im Fedorawiki.de (als User $USER)"

if [ -x /usr/bin/xdg-open ];then
	su -c "xdg-open http://fedorawiki.de/index.php/Fedoraforum.de-Installationshilfe" $USER
elif [ -x /usr/bin/htmlview ];then
	su -c "htmlview http://fedorawiki.de/index.php/Fedoraforum.de-Installationshilfe" $USER
elif [ -x /usr/bin/firefox ];then
	su -c "firefox http://fedorawiki.de/index.php/Fedoraforum.de-Installationshilfe" $USER
else
	$ERROR_MESSAGE "Browser konnte nicht gefunden werden."
fi

menu

}
	

##############################################################################################

# Der eigentliche Start

info_welcome
menu 

Das Script kann auch von hier heruntergeladen werden.

Persönliche Werkzeuge