dpkg: erro ao processar /var/cache/apt/archives/python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--unpack)

2

Eu tive um problema ( Question 199582 ) que foi resolvido. Infelizmente estou preso neste momento agora.

Rodando

root@X100e:/var/cache/apt/archives# apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  file libexpat1 libmagic1 libreadline6 libsqlite3-0 mime-support python python-minimal python2.6 python2.6-minimal readline-common
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/5,204kB of archives.
After this operation, 19.7MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from .../python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing /var/cache/apt/archives/python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/python2.6-minimal_2.6.6-5ubuntu1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

resulta no erro acima.

Rodando

root@X100e:/var/cache/apt/archives# dpkg -i python2.6-minimal_2.6.6-5ubuntu1_i386.deb 
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--install):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 python2.6-minimal_2.6.6-5ubuntu1_i386.deb

resulta no erro acima.

Rodando

root@X100e:/var/cache/apt/archives# dpkg -i --force-depends python2.6-minimal_2.6.6-5ubuntu1_i386.deb 
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--install):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 python2.6-minimal_2.6.6-5ubuntu1_i386.deb

não é capaz de corrigir isso.

Alguma pista de como corrigir isso?

    
por udo 16.10.2010 / 11:12

1 resposta

9

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 .

    
por 16.10.2010 / 13:15