Como listar pacotes RPM que dependem de uma biblioteca específica?

Como listar pacotes RPM que dependem de uma biblioteca específica?

Gostaria de determinar quais pacotes RPM no meu sistema Fedora 25 dependem das bibliotecas libLLVM-3.8.soe libclang-3.8.so. Como é que eu?

Responder1

Você pode usar dnf repoquerypara encontrar isso. Por exemplo:

dnf repoquery --whatrequires libLLVM-3.8.so

entretanto, em um sistema x86_64, isso pode não fazer exatamente o que você deseja; para especificar a versão x86_64 de uma biblioteca (que provavelmenteéo que você quer), acrescente ()(64bit), assim:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' 

( 'Agora é necessário evitar que os parênteses confundam o bash.)

Por padrão, isto lista os pacotes disponíveis e instalados; para restringir aos que estão instalados atualmente, adicione o --installedsinalizador, assim:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'  --installed

que no meu sistema retorna:

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

Se você quiser apenas nomes de pacotes, adicione --queryformat '%{name}\n'. (Use dnf repoquery --querytagspara obter outras opções de formatação.)

Responder2

$ 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

Da mesma forma para o outro arquivo. Ou qualquer arquivo.

informação relacionada