Estou tentando encontrar o pacote que é instalado libnss_mdns4_minimal.so.2
usando o dpkg -S
. A saída indica no path found
quando o caminho do arquivo começa com, /usr/lib/
mas é bem-sucedido quando começa com /lib/
.
Estou usando o servidor Ubuntu 22.04.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy
Para encontrar a localização do arquivo, executei os seguintes comandos:
$ sudo updatedb
$ locate mdns4_minimal
/usr/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
Em seguida, encontrei dpkg -S
o pacote que instalou o libnss_mdns4_minimal.so.2
. A saída afirma: no path found matching pattern
.
$ dpkg -S /usr/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
dpkg-query: no path found matching pattern /usr/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
No entanto, o seguinte é bem-sucedido:
$ dpkg -S /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
libnss-mdns:amd64: /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
Percebo que /lib
é um link simbólico para /usr/lib
:
$ ls -l /lib
lrwxrwxrwx 1 root root 7 Mar 19 2023 /lib -> usr/lib
Não entendo por que no path was found
ao usar o caminho completo /usr/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
, mas tenho sucesso ao usar /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
. O arquivo não é o mesmo, não importa se estou fazendo referência pelo caminho direto ou pelo link simbólico?
Alguém pode explicar?
dpkg -S
apenas compara a entrada com a lista de caminhos especificados em seu banco de dados de pacotes.Não está olhando para caminhos ou arquivos reais em seu sistema.
Nesse caso, o pacote deb relevante especifica um caminho de
/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
, então é isso quedpkg
é usado para instalações, remoções, ... e pesquisas.