Como posso verificar se um diretório contém arquivos empacotados?

0

Acabei de encontrar o erro . Em algum lugar, enquanto scrobbling redondo com sudo pip , parece ter knackered meu dist-packages . A solução sugerida é [re] mover /usr/local/lib/python2.7/dist-packages e iniciar novamente. Eu dei uma olhada no diretório e é bem grande. Anos de abuso.

Estou feliz de reinstalar tudo com pip , mas não quero excluir e, em seguida, substituir uma carga de caminhos empacotados. Na minha experiência, essa é uma receita para a agonia.

Eu sei que estamos falando de um diretório /usr/local/ aqui. Estes devem ser arquivos não-empacotados, mas eu gostaria de fazer uma dupla certeza ... E isso pode se aplicar a outras pessoas que estão em situações similares.

Existe uma maneira rápida de listar quais pacotes contém um diretório?

    
por Oli 14.05.2014 / 11:06

1 resposta

1

dpkg -S ... pode funcionar bem aqui. É algo que normalmente usaria para verificar de qual pacote um arquivo específico vem, mas aqui podemos usar:

$ dpkg -S /usr/local/lib/python2.7/
dpkg-query: no path found matching pattern /usr/local/lib/python2.7

Isso funciona porque os pacotes especificam seus caminhos de arquivo na íntegra. Se um contiver um arquivo /usr/bin/file , ele especificará os seguintes caminhos:

/usr
/usr/bin
/usr/bin/file

Eu olhei para ver se /usr/local/ tinha qualquer arquivos em pacote (porque realmente não deveria IMO) e encontrei:

$ dpkg -S /usr/local/
hl2250dnlpr, wine, shatter, cupswrapperhl2250dn, open-sankore: /usr/local

Que muito curioso.

    
por Oli 14.05.2014 / 11:06