Hallo Jan,
ich konnte das besagte Script nicht mehr finden. Aus diesem Grund habe ich ein perl-Script zusammengenagelt, das Dir eventuell weiterhilft. Bei Fragen hierzu bitte fragen:
-----------------8<-------------------- #!/usr/bin/env perl use strict; use warnings; use 5.010; ############################################################### # # WARNING: This script calls 'ldd' on the given file. # This MAY be a security risk. Look at manual pages of 'ldd'. # # Use this script on our own risk. Keine Gewähr. NO WARRANTY. # ###############################################################
die "ERROR: You have to supply path to executable." unless(@ARGV);
my %found; getlibs($ARGV[0], %found, 0);
foreach my $file (values %found) { next unless $file; say $file; }
sub getlibs { my ($binary, $foundref, $level) = @_;
$level++; die "ERROR: Too deep recursion." if($level > 10);
my $ausgabe = `ldd "$binary"`; die "ERROR: Can't get ldd information from '$binary'." if $?;
my @new; my @lines = split "\n", $ausgabe;
for my $line (@lines) { next if $line =~ /statically/; $line =~ s/^\t*//; $line =~ s/\s*(0x.*$//; my ($library, $path) = split /\s*=>\s*/, $line, 2; next unless defined $library; next if exists $foundref->{$library}; $foundref->{$library} = $path; push @new, $path if $path; }
foreach my $path (@new) { getlibs($path, $foundref, $level); }
} -----------------8<--------------------
Das Script analysiert die Ausgabe von ldd und steigt dann für jede weitere Library weiter ab. Am Ende werden die Pfade zu den Libraries ausgegeben. Beachte: Das sind meistens symbolische Links, so dass die Zieldateien selbst auch noch kopiert werden müssen. Zusammen mit LD_LIBRARY_PATH solltest Du damit eine passende Laufzeitumgebung zusammenstellen können.
Einen interessanten Link zur Thematik noch:
https://amir.rachum.com/blog/2016/09/17/shared-libraries/#runtime-search-pat...
Viel Spaß! ;-)
Gruß Andreas
-----Ursprüngliche Nachricht----- Von: CentOS-de centos-de-bounces@centos.org Im Auftrag von Handwerker, Jan (IMK) Gesendet: Mittwoch, 17. April 2019 11:14 An: centos-de@centos.org Betreff: Re: [CentOS-de] Probleme mit QT-Bibliotheken
Hallo Andreas,
zunächst bitte ich um Entschuldigung für die PM zwischendurch. Anfängerfehler. (Obwohl ich eigentlich nicht Anfänger beim Mailen bin.)
Am 16.04.19 um 15:40 schrieb Andreas Mock:
ich kenne Deinen Kenntnisstand nicht, daher kann man als Ratgebender nur ins Fettnäpfchen tappen, wenn man Sachen vorschlägt, bei denen das Gegenüber nur die Augen rollt und sich denkt: Ja, ja, da bin ich schon durch.
Also ich bin erst einmal froh, dass Du/dass jemand überhaupt reagiert hat. Natürlich kennst Du meine Erfahrungen nicht. Dem wäre auch so, wenn ich hier nicht neu wäre. Meiner Meinung nach steht da kein Fettnapf für Dich bereit. Das sehe ich wie in der ersten Hilfe: Wer hilft kann nichts falsch machen. Nur nicht helfen ist (dort) falsch.
a) Ich habe zu der besagtem dynamischen Library unter RHEL/Centos nichts gefunden.
Ich auch nicht. Es ist schon strange... Wo hat der Softwarehersteller nur die libQtSolutions.so her?
b) Ich habe für die Erzeugung eines Jails mal ein Skript geschrieben, dass sich via ldd die dynamischen Abhängigkeiten rausfischt und diese rekursiv auflöst.
Das klingt schon mal spannend. Eine Rekursionsstufe habe ich schnell selbst gebastelt, aber wenn Dein Skript das systematisch kann, wäre ich erfreut, Du überliesest es mir :-).
Und wenn Du mir dann noch genauer erklärst (oder einen Pointer gibst), wie ich ein Jail konstruiere, würde ich das auch versuchen.
Damit bekommst Du den gesamten Abhängigkeitsbaum heraus. Das nur noch als Tipp am Rande.
Bin gespannt, ob Du es noch zum Fliegen bringst.
Wenn alle Stricke reißen, wird ein Notebook mit altem CentOS hingestellt. Aber genau das wollte ich eigentlich vermeiden.
Herzlichen Dank für die Unterstützung.
Liebe Grüße Jan -- _________________________________________________________________ Jan Handwerker http://www.imk-tro.kit.edu/jan.handwerker.php