A mensagem de erro reclama que /usr/lib/python2.6/site-packages
é um diretório, mas deve ser um link simbólico. A explicação mais provável é que você tem alguns pacotes instalados que não estão em conformidade com a política atual de empacotamento do python (em que pacotes extras entram em /usr/lib/python2.6/dist-packages
), mas em vez disso colocam arquivos em /usr/lib/python2.6/site-packages
.
Execute dpkg -S /usr/lib/python2.6/site-packages
para ver quais pacotes você não está em conformidade com a política atual. A mensagem de erro incita você a relatar um bug contra esses pacotes.
A solução fácil é remover os pacotes ofensivos.
Outra possibilidade é que você instalou as coisas em /usr/lib/python2.6/dist-packages
sem passar pelo gerenciador de pacotes deb. Nesse caso, mova essas coisas para /usr/local/lib/python2.6/dist-packages
. De um modo geral, você não deve instalar ou alterar nada em /usr
exceto passando por dpkg
ou programas de nível superior que o chamam ( apt-get
, aptitude
, Synaptic, ...). A exceção é /usr/local
, onde você pode fazer o que quiser. Se dpkg -S /usr/lib/python2.6/site-packages
disser que nenhum pacote instalou nenhum arquivo nesse diretório, você pode simplesmente mover o diretório para onde deveria estar:
mv /usr/lib/python2.6/site-packages /usr/local/lib/python2.6/dist-packages
ou se o diretório de destino já existir:
mv -i /usr/lib/python2.6/site-packages/* /usr/local/lib/python2.6/dist-packages/
rmdir /usr/lib/python2.6/site-packages
Se você tiver pacotes de políticas antigas que deseja manter instalados, acredito que possa usar a seguinte solução alternativa:
mkdir -p /usr/local/lib/python2.6/dist-packages
mv -i /usr/lib/python2.6/site-packages/* /usr/local/lib/python2.6/dist-packages
rmdir /usr/lib/python2.6/site-packages
ln -s /usr/local/lib/python2.6/dist-packages /usr/lib/python2.6/site-packages
Se os comandos mv
reclamarem que alguns alvos já existem, isso precisa ser resolvido caso a caso.
Se você usar a solução alternativa, esteja preparado para uma considerável confusão se instalar pacotes python não-deb em /usr/local
, já que /usr/local/lib/python2.6/dist-packages
conterá alguns arquivos gerenciados pelo dpkg. Também não estou completamente certo de que isso não causará nenhum problema de gerenciamento de pacotes, como erros, se você atualizar ou remover os pacotes ofensivos posteriormente. Tente a solução alternativa somente se você estiver preparado para ter mais soluções de problemas posteriormente. Novamente, a opção segura é remover os pacotes ofensivos antes de atualizar seu pacote python
.