
Ich möchte feststellen, welche RPM-Pakete auf meinem Fedora 25-System von den Bibliotheken libLLVM-3.8.so
und abhängen libclang-3.8.so
. Wie mache ich das?
Antwort1
Sie können dnf repoquery
dies finden, indem Sie Folgendes verwenden. Zum Beispiel:
dnf repoquery --whatrequires libLLVM-3.8.so
Auf einem x86_64-System funktioniert dies jedoch möglicherweise nicht ganz nach Ihren Wünschen. Um die x86_64-Version einer Bibliothek anzugeben (die wahrscheinlichIstwas Sie wollen), anheften ()(64bit)
, wie folgt:
dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'
( '
Jetzt ist es notwendig, die Klammern so zu gestalten, dass sie Bash nicht verwirren.)
Standardmäßig werden hier sowohl verfügbare als auch installierte Pakete aufgelistet. Um die Liste auf die aktuell installierten Pakete zu beschränken, fügen Sie das --installed
Flag wie folgt hinzu:
dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' --installed
was auf meinem System Folgendes zurückgibt:
llvm-libs-0:3.8.0-1.fc25.x86_64
mesa-dri-drivers-0:13.0.2-2.fc25.x86_64
mesa-libxatracker-0:13.0.2-2.fc25.x86_64
Wenn Sie nur Paketnamen möchten, fügen Sie hinzu --queryformat '%{name}\n'
. (Verwenden Sie dnf repoquery --querytags
, um andere Formatierungsoptionen zu erhalten.)
Antwort2
$ locate libLLVM-3.8.so
/usr/lib/libLLVM-3.8.so
/usr/lib64/libLLVM-3.8.so
$ rpm -qf /usr/lib64/libLLVM-3.8.so
llvm-libs-3.8.0-1.fc25.x86_64
$ sudo rpm -e --test llvm-libs-3.8.0-1.fc25.x86_64
error: Failed dependencies:
libLLVM-3.8.so()(64bit) is needed by (installed) clang-libs-3.8.0-2.fc25.x86_64
libLLVM-3.8.so()(64bit) is needed by (installed) mesa-dri-drivers-13.0.2-2.fc25.x86_64
libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libOpenCL-13.0.2-2.fc25.x86_64
libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libxatracker-13.0.2-2.fc25.x86_64
Gleiches gilt für die andere Datei. Oder für jede beliebige Datei.