Hab mir neulich Ut2004 gekauft. Nach der erfolgreichen Installation hab ich das Problem das sich das Spiel nicht starten lässt:
chris@xaver:~/Games/UnrealTournament2004> sh ut2004
ut2004: line 49: /home/chris/Games/UnrealTournament2004/System/ut2004-bin: Keine Berechtigung
ut2004: line 49: /home/chris/Games/UnrealTournament2004/System/ut2004-bin: Erfolg
chris@xaver:~/Games/UnrealTournament2004>
Habe das Spiel als root installiert, die gleiche Fehlermeldung kommt auch, wenn ich es wieder als root ausführe. Was kann ich machen um das Spiel zum laufen zu bringen?
Linux 15.070 Themen, 107.540 Beiträge
Ich würde zuerst mal die Zeile 49 in der datei "/home/chris/Games/UnrealTournament2004/System/ut2004-bin" anschauen, weil da ein fehler zu sein scheint.
vielleicht hat selbst root keine rechte, es auszuführen. ändere mal mit chmod die berechtigung der datei.
zum testen mal ein chmod 777 ut2004-bin, so hat jeder volle berechtigung für die binary. wenn es funktioniert, kannst du die berechtigungen wieder einschränken.
hth
Die Rechte zum Ausführen waren von Anfang an gesetzt, beim Ausführen des Scriptes bleibt es in zeile 49 stehen:
48: cd "${UT2004_DATA_PATH}/"
49: exec "./ut2004-bin" $*
Hast du das Shellscript geschrieben ?
Der cd Befehl wechselt in ein Unterverzeichnis, welches eventuell nicht existiert. Mit ${UT2004_DATA_PATH} ist eine Variable gemeint, Du kannst dir diese variable anzeigen lassen wenn du kurz vor dem cd Befehl
echo "${UT2004_DATA_PATH}/" einfügst.
Vielleicht existiert dieses verzeichnis nicht, in dem dann dieses Programm "./ut2004-bin" $* ausgeführt wird.
cd Befehle sollte man eigentlich nicht unbedingt in Shellscripte einfügen, weil dann das Shellscript kurz in das Unterverzeichnis wechselt und sich nach dem cd-Befehl wieder in das darüberliegenden Verzeichnis wechselt.
Ich würde solche Sachen in einer eigenen Subshell (runde Klammern) ausführen lassen:
( cd Verzeichnis ; exec Befehl )
Du kannst ja mal das Shellscript debuggen:
echo "vor cd-Befehl PWD : $PWD"
48: cd "${UT2004_DATA_PATH}/"
echo "nach cd-Befehl PWD : $PWD"
49: exec "./ut2004-bin" $*
PWD ist eine Variable in der das aktuelle Verzeichnis gespeichert ist.
Bei dieser gelegenheit kannst du gleich mal ein wenig Shellprogrammierung lernen:
http://www.tldp.org/LDP/abs/html/
Danke erstmal für deine Hilfe!
Der cd-Befehl wechselt schon in das Gewünschte Verzeichnis, ich glaube eher, dass ich diese "ut2004-bin" nicht ausführen kann:
chris@xaver:~/Games/UnrealTournament2004/System> ut2004-bin
bash: ./ut2004-bin: Keine Berechtigung
auch sh funktioniert nicht:
chris@xaver:~/Games/UnrealTournament2004/System> sh ut2004-bin
ut2004-bin: ut2004-bin: cannot execute binary file
Was sagt denn "dir -l ut2004-bin" ?
und "file ut2004-bin" ?
PS Es kann auch noch sein, das bei den Mount-Optionen in der /etc/fstab - Datei die Option "user" angegeben wurde. Diese Option schließt die Option "noexec" mit ein.
Das ist mir bei CD-ROM Laufwerken schon passiert.
Das Problem sollte mit dem mit Suse 9.3 neu eingeführten HAL/D-Bus automount System zutun haben, da CD's seit dem von Suse immer anders gemountet werden und nach der Installation das Laufwek deshalb nicht mehr gefunden werden kann. Seit dem hat fstab keinen Einfluss mehr. Durch das Anlegen einer fdi-Datei kann der gleichen Mountpoint festlegt werden. Dieser Link sollte weiterhelfen.
http://www.linux-club.de/viewtopic.php?t=31209&highlight=subfs
Möge sich jeder selbst seine Meinung über Suses selbstgemachte Probleme und die Einsteigerfreundlichkeit bilden.
