Schrift
[thread]8750[/thread]

Shell Befehl ausführen: Die *.so Dateien sind glaube ich falsch



<< >> 9 Einträge, 1 Seite
frodus
 2007-02-12 11:05
#74249 #74249
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi Leute,

habt Ihr so eine Fehlermeldung schon mal gesehen?

Code: (dl )
1
2
perl -e '$a = `ps`; print $a'
ps: relocation error: ps: symbol procps_number_version, version _3_1_14 not defined in file libproc-3.2.3.so with link time reference


Also Perl ist bei uns auf einem Netzlaufwerk installiert und ps auf den localen Linux platten.
Meine Vermutung ist, dass perl und ps nur dann zusammen funktioniern wenn sie gegen die selben libraries gelinkt werden. Ist das korrekt?

Gruss,

Frodus
Linuxer
 2007-02-12 12:44
#74250 #74250
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Funktioniert denn der direkte ps - Aufruf, oder bringt er auch die Fehlermeldung?

Ich vermute den Fehler im ps oder in den Libs? Wurde letztens mal Updates eingespielt?
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
frodus
 2007-02-12 15:15
#74251 #74251
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi,

ja der direkte Aufruf von ps funktioniert ohne Probleme. Das Problem sehen wir auch erst
seit dem die Maschine von redhat 3 auf redhat 4 umgestellt wurde.
Auf all unseren redhat 3 Maschinen funtioniert es ohne Probleme.

/Frodus
J-jayz-Z
 2007-02-12 17:56
#74252 #74252
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Was bringt bei dir die Ausgabe
Code: (dl )
ldd `which ps`
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
frodus
 2007-02-12 18:00
#74253 #74253
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi,

4.0:
Code: (dl )
1
2
3
4
ldd `which ps`
libproc-3.2.3.so => /lib/libproc-3.2.3.so (0x007de000)
libc.so.6 => /lib/tls/libc.so.6 (0x006b1000)
/lib/ld-linux.so.2 (0x00693000)

3.0:
Code: (dl )
1
2
3
4
ldd `which ps`
libproc.so.2.0.17 => /lib64/libproc.so.2.0.17 (0x0000002a9567d000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9578b000)
/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x0000002a95556000)

/Frodus
betterworld
 2007-02-13 00:59
#74254 #74254
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Das kann eigentlich gar nicht sein, dass das Verhalten von ps dermaßen davon abhaengt, ob es von Perl oder Bash ausgefuehrt wird.  Ist vielleicht perl oder ps bei Dir ein Shell-Alias (oder Shell-Funktion oder Wrapper-Script oder sonstwas)?
Gib vielleicht sicherheitshalber mal das Output von
Code: (dl )
1
2
ls -lisa "`which ps`"
perl -e 'system(q(ls -lisa "`which ps`"))'
\n\n

<!--EDIT|betterworld|1171321349-->
J-jayz-Z
 2007-02-13 10:05
#74255 #74255
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Na ja, wenn man sich die Versionsnummer der Shared Libraries ansieht, könnte man denken, man hat den Fehler gefunden. Nur erklärt das nicht, wieso es nur unter Perl nicht geht und in der Bash schon.

Wie ist das, wenn Perl im Netzlaufwerk installiert ist. Wird es dann lokal ausgeführt oder auf der installierten Maschine? Wenn die Maschine auf der Perl läuft 3.0 ist und es den ps Befehl irgendwie an die 4.0er gibt, welche aber nicht gegen die selben Libraries gelinkt sind ... So irgendwas evtl.
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
frodus
 2007-02-13 14:29
#74256 #74256
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi Leute,

hier ist der Output:
Code: (dl )
1
2
3
4
5
 ls -lisa "`which ps`"
192455 80 -r-xr-xr-x 1 root root 76936 Nov 3 2004 /bin/ps*

perl -e 'system(q(ls -lisa "`which ps`"))'
192455 80 -r-xr-xr-x 1 root root 76936 Nov 3 2004 /bin/ps


Es kann aber sein das der perl aufruf selber von einem Wrapper script
ausgeführt wird.
Da muss ich mal unseren Admin fragen wenn der aus dem Urlaub kommt.

/Frodus
frodus
 2007-02-13 14:46
#74257 #74257
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Hi Leute,

ja es ist das wrapper Script um den perl Aufruf.
Nachdem ich das wrapper Script ausgeschaltet habe funktioniert 'ps' ohne
Probleme.

Danke,

Frodus
<< >> 9 Einträge, 1 Seite



View all threads created 2007-02-12 11:05.