Estou acostumado dpkg -S /path/to/file
a descobrir de onde veio algo no Debian. O ~novo"tudo em usr"A política de usrmerge também conhecida como política de usrmerge geralmente quebra isso. Apenas por exemplo:
> dpkg -S /bin/systemd
systemd: /bin/systemd
> readlink -f /bin/systemd
/usr/lib/systemd/systemd
> dpkg -S /usr/lib/systemd/systemd
dpkg-query: no path found matching pattern /usr/lib/systemd/systemd
Isso é uma droga porque o executável real em execução é /usr/lib/systemd/systemd, então é muito mais provável que eu queira saber de qual pacote veio em qualquer uso do dpkg -S
. Existe outro substituto compatível com usrmerge que dpkg -S
eu possa usar para rastrear de maneira fácil e confiável um executável de volta ao seu pacote?
Responder1
Não conheço nenhum /usr
-merge-aware equivalente a dpkg -S
, mas há uma maneira de evitar esse problema: dpkg -S
não precisa de um caminho completo, então
dpkg -S lib/systemd/systemd
e
dpkg -S bin/systemd
lhe dará a(s) resposta(s) que você procura. Se você quiser evitar listar todos os arquivos que correspondem aos padrões fornecidos como substrings, adicione *
:
dpkg -S '*lib/systemd/systemd' '*bin/systemd'
Veja tambémdpkg-query: nenhum caminho encontrado correspondente ao padrão /usr/bin/bash, eesta descrição da /usr
fusão(escrito pelo dpkg
mantenedor) que explica algumas das restrições envolvidas e lista uma série de dpkg
recursos que são quebrados pela usrmerge
abordagem do pacote (incluindo dpkg -S
).