bad interpreter

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
alkler442
Beiträge: 34
Registriert: 08.03.2008 22:57:19
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /home/alkler

bad interpreter

Beitrag von alkler442 » 30.03.2008 15:13:45

hi!
ich hab eben versucht ein paar alte perl skripts zu starten. unter ubuntu liefen sie alle noch fehlerfrei. jetzt bekomme ich aber immer folgende meldung:

Code: Alles auswählen

bash: ./testperl: /usr/bin/perl: bad interpreter: Keine Berechtigung
das selbe auch mit python programmen:

Code: Alles auswählen

bash: ./testpy: /usr/bin/python: bad interpreter: Keine Berechtigung
das perlskript sieht so aus:

Code: Alles auswählen

#!/usr/bin/perl -w
print "bla";
das python skript so:

Code: Alles auswählen

#!/usr/bin/python
print "-- Zahlenraten Pythonversion --";
ich hab schon dos2unix versucht (obwohl die skripts ja gar nie mit dos in berührung gekommen sind)
wenn ich das perlskript mit

Code: Alles auswählen

/usr/bin/perl ./testperl
aufrufe funktioniert es.
ein /usr/bin/python ./testpy funktioniert auch...

wo ist der fehler?
I have a dream: I'm dreaming of a world, without walls and fences, without windows and gates.

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 30.03.2008 16:53:33

Kann sein, dass du keine exec Rechte auf der Partition hast, auf der das Skript liegt.
Überprüfen kannst du das z.B. mit mount.

Methusalix

bad interpreter

Beitrag von Methusalix » 30.03.2008 19:19:59

versuch mit dem Python-Script im Verzeichnis, wo das Script liegt, mal diesen Aufruf:

Code: Alles auswählen

/home/Pfad/python testpy
Funktioniert das?

Benutzeravatar
mikrokosmos
Beiträge: 225
Registriert: 26.07.2006 19:38:24

Beitrag von mikrokosmos » 30.03.2008 19:30:08

Was soll das denn bringen? Für gewöhnlich findet sich der Python-Interpreter ja in /usr/bin und nicht irgendwo unterhalb von /home. ;)
Und /usr/bin/python test.py funktioniert ja beim Fragesteller.

Methusalix

Beitrag von Methusalix » 30.03.2008 19:43:39

Was soll das denn bringen?
z.B. Fehlermöglichkeiten eingrenzen. Ich weiß nicht wie unter Ubuntu Scripte gestartet werden.
Der Aufruf /home/python namedesscriptes ist nicht ungewöhnlich.

Code: Alles auswählen

user@debbi:~/scripte$ ./namedatum.py
bash: ./namedatum.py: Keine Berechtigung
user@debbi:~/scripte$ python namedatum.py
sys:1: DeprecationWarning: Non-ASCII character '\xc.....
user@debbi:~/scripte$
Ist z.B. auch nachlesbar unter:http://wiki.python.de/FAQ#WieStarteIchSkripte :wink:

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 30.03.2008 20:05:06

@alkler442

überprüfe mal ob du für diese partition auch exec gesetzt hast (in /etc/fstab oder mount eingeben).
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 30.03.2008 20:16:43

@Matthias-GE
Matthias-GE hat geschrieben:versuch mit dem Python-Script im Verzeichnis, wo das Script liegt, mal diesen Aufruf:

Code: Alles auswählen

/home/Pfad/python testpy
das würde ich eher als Aufforderung interpretieren, folgendes zu tun:

Code: Alles auswählen

/pfad/in/dem/das/script/liegt$ /home/Pfad/python testpy
dabei hast du anscheinend das gemeint:

Code: Alles auswählen

/home/Pfad/python$ ./testpy
@alkler442
Ich bin auch dafür, daß die Mountoptionen schuld sind

Gruß
gms

alkler442
Beiträge: 34
Registriert: 08.03.2008 22:57:19
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /home/alkler

Beitrag von alkler442 » 30.03.2008 20:46:31

hi!
ich hab mal gelesen, dass es nur eine bedingung mit der fstab gibt: es darf nicht noexec drinstehen...
jetzt sieht meine fstab so aus:
/dev/hdc1 /media/disk ext3 defaults,users,exec 0 0
es funktioniert immernoch nicht... das skript liegt auf der zweiten festplatte (/media/disk). ich vermute auch, dass es nicht an den rechten liegt, weil "users" ja auch gesetzt ist.
Matthias-GE: unter ubuntu starten man ein skript, genauso wie auf jedem andern betriebsystem auch: ./skript

EDIT: Im wiki steht nur folgendes: python skript.py das ist äquivalent zu /usr/bin/python skript.py (Ich glaub es war die $PATH...)
I have a dream: I'm dreaming of a world, without walls and fences, without windows and gates.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 30.03.2008 21:03:45

alkler442 hat geschrieben:hi!
ich hab mal gelesen, dass es nur eine bedingung mit der fstab gibt: es darf nicht noexec drinstehen...
jetzt sieht meine fstab so aus:
/dev/hdc1 /media/disk ext3 defaults,users,exec 0 0
es funktioniert immernoch nicht...
verzeih mir die blöde Frage, nachdem ich dich aber nicht kenne, muß ich sie doch stellen: Hast du die Partition nachher nochmals gemountet oder das System rebootet ?

Code: Alles auswählen

mount | grep /media/disk
zeigt dir die aktuell gesetzen Optionen, wenn dort kein "noexec" steht, dann ist "exec" drinn.

Gruß
gms

alkler442
Beiträge: 34
Registriert: 08.03.2008 22:57:19
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /home/alkler

Beitrag von alkler442 » 30.03.2008 21:21:58

verdammt...
spätestens morgen hätte ich mich gewundert, wieso es plötzlich geht...
/dev/hdc1 on /media/disk type ext3 (rw,noexec,nosuid,nodev)
*schäm* :oops:
I have a dream: I'm dreaming of a world, without walls and fences, without windows and gates.

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 30.03.2008 21:44:00

warum einfach wenns auch kompliziert geht ... ;)
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Antworten