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

5

Eu gostaria de determinar quais pacotes RPM no meu sistema Fedora 25 dependem das bibliotecas libLLVM-3.8.so e libclang-3.8.so . Como eu faço?

    
por Brenton Horne 17.12.2016 / 09:22

2 respostas

5

Você pode usar dnf repoquery para encontrar isso. Por exemplo:

dnf repoquery --whatrequires libLLVM-3.8.so

no entanto, 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), adicione ()(64bit) , assim:

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

(Com ' agora necessário para impedir que os parênteses confundam bash.)

Por padrão, isso lista os pacotes disponíveis e instalados; para restringir aos que estão atualmente instalados, adicione o --installed flag, 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 --querytags para obter outras opções de formatação).

    
por 19.12.2016 / 21:33
0
$ 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

Similarmente para o outro arquivo. Ou qualquer arquivo.

    
por 19.12.2016 / 21:02