PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bad-Interpreter Problem



MATI
06.12.04, 22:06
Hallo Allerseits,
ich versuche vergeblich Quellpakete mit der Prozedur:
./configure --> make etc etc
zu installieren.

Bei mir scheitert es bereits bei der ersten Eingabe von ./configure
mit dieser Fehlermeldung:

********************
# ./configure
bash: ./configure: /usr/bin/csh: bad interpreter: Keine Berechtigung

********************

wie ihr seht bin ich als root eingeloggt. Wenn ich allerdings eigebe
who am I kommt:

*******************
# who am I
mat pts/1 Dec 6 20:21

*******************

also bin ich doch irgendwie nicht als root eingeloggt???
Ich kann aber rechte setzen, gruppen zuteilen etc etc....eigentlich bin ich doch dann schon root???
Schreiben/Lesen kann ich an dem Ort....
Die Rechte des ÜberOrdners sind:
*************************
drwxrwxr-x 8 root users 4096 2004-12-06 22:54
*************************
Die von configure
*************************
-rwxrwxr-x 1 root users 992959 2004-12-06 22:54
*************************
Steh da irgendwie auf dem schlauch....
bin doch root....

Danke für eure Hilfe!!!

HackThor
06.12.04, 22:16
Die Zeile ist (für den Kenner) eindeutig - er will das da haben:

/usr/bin/cshDas ist die C-Shell, also wird das Script auch ein entsprechendes nicht-Bash-Script sein. Da mußt du mal schauen ob du in der Distri eine C-Shell findest (sollte eigentlich sein) und im schlimmsten Fall mal nen SymLink setzen daß er die Shell auch unter /usr/bin findet.

Dann sollte das configure auch anlaufen... und du wirst sicher die nächsten Probleme sehen die es noch zu lösen gilt :)


ciao

Michael

tictactux
06.12.04, 22:17
Hi,
es sieht aus, als würde eines der Skripte eine csh (C-Shell) benötigen,
die bei Dir nicht (oder anderswo) installiert ist.
Wenn Du eine /bin/csh hast, ist der Pfad in dem Skript falsch, am einfachsten korrigierst Du das mit:
ln -s /bin/csh /usr/bin/csh

Ansonsten installiere eine csh (oder tcsh).

Gruß,
Wolfgang

EDIT: HackThor war schneller :)

MATI
06.12.04, 22:35
Hallo,
vielen Dank erstmal für die schnelle Antwort...
wie ihr bereits bemerkt habt bin ich relativ neu auf diesem Gebiet...

also was ich jetzt gemacht habe:

1. # type csh liefert:
*******
csh is /bin/csh
*******

aufgrund dessen habe ich den pfad in der datei configure
auf
#! /bin/csh
gesetzt

wenn ich allerdings jetzt wieder ./configure eingebe kommt immer noch:
******************
bash: ./configure: /bin/csh: bad interpreter: Keine Berechtigung
******************

hätte das jetzt nicht funktionieren müssen?

P.S.: Zitat:
" ....und im schlimmsten Fall mal nen SymLink setzen daß er die Shell auch unter /usr/bin findet."

Öhm.....bitte?
:o

trotzdem Danke für eure Hilfe...zusammen schaffen wir das schon ;)

tictactux
06.12.04, 23:29
bash: ./configure: /bin/csh: bad interpreter: Keine BerechtigungEs sieht aus, als wäre das Skript ./configure selber nicht ausführbar.
Also führe aus: chmod +x ./configure
oder starte es mit sh ./configure

Wenn Du diese Dateien nicht aus einem Original-Paket (wie tar.gz)
entpackt hast, könnten noch mehr Probleme dieser Art auftreten...

" ....und im schlimmsten Fall mal nen SymLink setzen daß er die Shell auch unter /usr/bin findet."

Öhm.....bitte?
:) das bezeichnet genau das, was ich mit

ln -s /bin/csh /usr/bin/cshmeinte, und wäre dem Editieren von Original-Quellen vorzuziehen.
Gruss,
Wolfgang

MATI
07.12.04, 22:26
Hallo Wolfgang..
Danke für deine Antwort (wer weiß wie oft ich das schon gesagt habe ... ;)

Ich habe wie du vorgeschlagen hast
chmod +x ./configure eingegeben..

die rechte waren dann irgendwie gesetzt


dann sh ./configure mit folgender meldung:
****************************************
# sh ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for -p flag to install... yes
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
**********************************************

Hmm, ich vermute mal ich müsste nen C-Compiler haben. Aber ich hab doch viel installiert.... :o

Ich schau mall....ist doch die richtige vorgehensweis, oder? :o

MATI
07.12.04, 22:29
Hmm aber den gnu C-Compiler hab ich drauf...

tictactux
07.12.04, 23:05
> See `config.log' for more details.

Hmm, ich vermute mal ich müsste nen C-Compiler haben. Aber ich hab doch viel installiert.... :o
Nicht die Menge macht's :D
Die Fehlermeldung von configure sagt ja nicht, daß kein C-Compiler
gefunden wurde, sondern daß die erstellte a.out nicht ausführbar ist.

Tu doch was vorgeschlagen wird: schau in die config.log,
da stehen mehr Details (manchmal hilft es, solche Empfehlungen
wörtlich zu nehmen).

Verdacht: Du kompilierst auf einem mit -o noexec gemounteten
Dateisystem (z.B. wegen mount-Option user), oder es liegt eine
Fehlkonfiguration der glibc/ld vor. Aber schau erst in die config.log.

Gruss,
Wolfgang

citizen428
07.12.04, 23:15
# who am I
mat pts/1 Dec 6 20:21

Nicht direkt zu deinem Problem, aber trotzdem ein Hinweis: du führst hier `who` aus und nicht `whoami`. who zeigt dir in diesem Fall den User mit dem du dich angemeldet hast (um dann vermutlich via `su` root zu werden). whoami liefert nur die effektive User-ID zurück.

MATI
07.12.04, 23:32
Hmm...
naja wenn ich ehrlich bin hab ich mir die jetzt angeschaut...
leider reichen meine Kenntnisse da nicht so weit aus um das Problem zu lösen...

und mit einer auf nicht exec gemounteten Partition....
in der fstab ist zwar kein exec eingetragen.........

:confused:

MATI
07.12.04, 23:33
@ citizen..

cool, jetzt schnall ichs....
hab mich schon doof gewundert..... :o

Danke

tictactux
07.12.04, 23:39
leider reichen meine Kenntnisse da nicht so weit aus um das Problem zu lösen...
poste doch den relevanten Teil, sollte doch zu erkennen sein ?
Alternativ wird Dir auch Google "error: cannot run C compiled programs"
wohl noch andere, außer den beiden von mir genannten Möglichkeiten
liefern.

und mit einer auf nicht exec gemounteten Partition....
in der fstab ist zwar kein exec eingetragen.........
Was manchem nicht bewußt ist: eine Option "user" oder "users"
impliziert "nosuid,noexec,nodev". Das ist in "man mount" nachlesbar,
und darauf bezog sich die "Option user" in meinem Post.

Mit mount -o remount,exec,suid,dev läßt sich das bei gemountetem
Dateisystem korrigieren.

HTH
Wolfgang

MATI
07.12.04, 23:50
hier der hoffentlich relevante teil:
**************************************
## --------- ##
## Platform. ##
## --------- ##

hostname = linux
uname -m = i686
uname -r = 2.6.8-24.5-default
uname -s = Linux
uname -v = #1 Wed Nov 17 11:10:06 UTC 2004

/usr/bin/uname -p = unknown
/bin/uname -X = unknown

/bin/arch = i686
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown

PATH: /usr/sbin
PATH: /bin
PATH: /usr/bin
PATH: /sbin
PATH: /usr/X11R6/bin

## ----------- ##
## Core tests. ##
## ----------- ##

configure:1561: checking build system type
configure:1579: result: i686-pc-linux-gnu
configure:1587: checking host system type
configure:1601: result: i686-pc-linux-gnu
configure:1609: checking target system type
configure:1623: result: i686-pc-linux-gnu
configure:1670: checking for a BSD-compatible install
configure:1725: result: /usr/bin/install -c
configure:1740: checking for -p flag to install
configure:1753: result: yes
configure:1764: checking whether build environment is sane
configure:1807: result: yes
configure:1851: checking for gawk
configure:1867: found /bin/gawk
configure:1877: result: gawk
configure:1887: checking whether make sets $(MAKE)
configure:1907: result: yes
configure:2120: checking for style of include used by make
configure:2148: result: GNU
configure:2295: checking for gcc
configure:2311: found /usr/bin/gcc
configure:2321: result: gcc
configure:2565: checking for C compiler version
configure:2568: gcc --version </dev/null >&5
gcc (GCC) 3.3.4 (pre 3.3.5 20040809)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2571: $? = 0
configure:2573: gcc -v </dev/null >&5
Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.4/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux
Thread model: posix
gcc version 3.3.4 (pre 3.3.5 20040809)
configure:2576: $? = 0
configure:2578: gcc -V </dev/null >&5
gcc: `-V' option must have argument
configure:2581: $? = 1
configure:2604: checking for C compiler default output file name
configure:2607: gcc conftest.c >&5
configure:2610: $? = 0
configure:2656: result: a.out
configure:2661: checking whether the C compiler works
configure:2667: ./a.out
./configure: line 2668: ./a.out: Permission denied
configure:2670: $? = 126
configure:2679: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

## ---------------- ##
## Cache variables. ##
## ---------------- ##
....
....
**************************************

tictactux
08.12.04, 00:05
configure:2661: checking whether the C compiler works
configure:2667: ./a.out
./configure: line 2668: ./a.out: Permission denied
Da haben wir's. Schau Dir die a.out mal an (die permissions, mit
ls -lF a.out, oder mit Midnight Commander).
Prüfe die Rechte des Verzeichnisses in dem Du die Kompilierung
vornimmst (sollte mindestens 0775 sein oder -rwxrwxr-x).

Wenn obiges ok ist, poste die genaue mount-Zeile für das Dateisystem
(den Grund sagte ich bereits).

EDIT: hast Du vielleicht eine komische umask ?
was sagt umask ?

MATI
08.12.04, 16:28
Hi Wolfgang,

irgendwie hab ich Probleme die Datei a.out zu finden.
Ist mir zwar peinlich aber jegliche Suchfunktion unter KDE liefert kein Ergebnis...

umask liefert 0022

die partition der fstab :

************
/dev/hdc5 /windows/F vfat users,gid=users,umask=0002,iocharset=utf8 0 0
************

Dank an Deine Geduld.....

tictactux
08.12.04, 16:37
/dev/hdc5 /windows/F vfat users,gid=users,umask=0002,iocharset=utf8 0 0
Kopiere doch das Paket auf eine echte Unix-Partition und kompiliere es da.
Wie vermutet hast Du users als Mountoption, was noexec impliziert.
Weiterhin können allerhand komische Seiteneffekte auf vfat auftreten,
da es Unix-spezifische Attribute für Dateien nur bis zum nächsten mount
behält (dazu gehören auch Verzeichnisrechte).
Gruss,
Wolfgang

(die a.out ist wohl als Temporärdatei gelöscht worden)

MATI
08.12.04, 16:51
ES FUNZT!!!
Vielen Dank für deine Tipps Wolfgang!

Ich würde jetzt irgendwie gerne verstehen wo das Problem liegt/lag.
Hängt es wirklich mit dem Dateisystem zusammen???
Oder mit dem mount Optionen...?

Danke Dir

tictactux
08.12.04, 17:16
Ich würde jetzt irgendwie gerne verstehen wo das Problem liegt/lag.
Hängt es wirklich mit dem Dateisystem zusammen???
Oder mit dem mount Optionen...?
Mit beiden. Wie in meinem letzten Post gesagt, kann vfat nicht alle
Unix-Rechte und Features (z.B. links, sockets), dazu kam die Option users.

Zu Bedenken ist in diesem Zusammenhang auch, daß auch Kopieren von
Dateien von einer Unix-Partition (oder Entpacken aus einem tar-Archiv)
Rechte oder Informationen verlorengehen können (wie der erste erwähnte
Fehler mit ./configure, oder Hard- und Symlinks, Dateinamen).
Schön daß es nun klappt,
Gruß,
Wolfgang