[CentOS-de] Probleme mit QT-Bibliotheken
Andreas Mock
andreas.mock at drumedar.de
Mi Apr 17 10:54:13 UTC 2019
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-path
Viel Spaß! ;-)
Gruß
Andreas
> -----Ursprüngliche Nachricht-----
> Von: CentOS-de <centos-de-bounces at centos.org> Im Auftrag von Handwerker,
> Jan (IMK)
> Gesendet: Mittwoch, 17. April 2019 11:14
> An: centos-de at 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
Mehr Informationen über die Mailingliste CentOS-de