apt-get upgrade falhando em debianutils

2

Usando o apt-get dist-upgrade para atualizar o software em um servidor, recebo o seguinte erro:

Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 28575 files and directories currently installed.)
Preparing to replace debianutils 2.8.4 (using .../debianutils_2.30_i386.deb) ...
Unpacking replacement debianutils ...
dpkg: error processing /var/cache/apt/archives/debianutils_2.30_i386.deb (--unpack):
 trying to overwrite '/usr/sbin/add-shell', which is also in package passwd
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/debianutils_2.30_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu recebi um erro similar alguns minutos antes com outro pacote, então eu usei o apt-get remove para remover o pacote e então o apt-get upgrade que parecia passar desse primeiro pequeno problema ... Até atingir o próximo. Eu não posso usar o apt-get remove para remover debianutils, pois este é um pacote principal e irá quebrar o sistema se removido.

Qualquer indicação de onde ir a partir daqui?

    
por Stacey Richards 13.06.2009 / 09:37

3 respostas

4

O problema é que ambos debianutils e passwd contêm o mesmo arquivo (/ usr / sbin / add-shell). Estou um pouco confuso sobre como você tem o 2.8.4 instalado, já que não está em nenhuma versão lançada do Debian e foi criado em 2004. Você está tentando atualizar de uma caixa do sarge? Você deve estar atualizando para etch, então lenny. A atualização entre mais de uma versão não é suportada.

Isso pode acabar mal, mas você pode corrigir isso executando:

# dpkg -i --force-overwrite /var/cache/apt/archives/debianutils_2.30_i386.deb

mas você pode acabar com mais problemas. Eu acho que você deveria reconsiderar porque você está atualizando uma versão antiga primeiro.

    
por 13.06.2009 / 09:59
1

Experimente o aptitude, é o novo apt-get, mas com melhor resolução de problemas.

    
por 14.06.2009 / 11:54
-4

Por favor, leia os comentários de Stephen para esta resposta sobre não ser para o novato e fazer o backup antes de tentar isso.

Ahhh, encontrei o que procurava:

dpkg -r --force all passwd
apt-get -f install

Tanto quanto eu posso dizer, isso irá remover o pacote passwd que normalmente iria quebrar o sistema e não deve ser considerado levemente.

Nesta situação particular, no entanto, foi necessário porque o pacote passwd estava em conflito com outro, provavelmente devido à atualização do sarge para o lenny (que não deveria ser feito), ao invés de atualizar do sarge para o etch e depois para o lenny . Depois que o dist-upgrade inicial foi tentado, e falhou, o sources.list foi alterado de stable para etch para tentar dist-upgrade do sistema para etch, então uma edição adicional de sources.list, alterando etch para lenny, e então dist A atualização novamente resolveria o problema. Isso não aconteceu. O dano já foi feito.

O último recurso foi tentar algo que normalmente não deveria ser feito.

Eu fiz isso.

Funcionou.

É verdade que eu não sabia, e ainda não sei exatamente o que aconteceu sob o capô. Eu só posso supor que o antigo pacote passwd conflitante foi removido (sem remover dependências?) Deixando o sistema instável, então o novo pacote passwd foi instalado restaurando o sistema instável de volta à sanidade.

Encontrei a solução em um site que mostrava o erro que encontrei na íntegra. Havia uma grande lista de posts de usuários agradecendo ao autor pela correção explicando que havia funcionado para eles, e nenhum comentário foi deixado dizendo que não (OK, então isso não significa que ele nunca tenha falhado). Como eu estava preso a um sistema quebrado e não atualizável, este foi um último recurso.

Obrigado aos caras que apontaram que essa é uma idéia "muito ruim". Nessa situação, no entanto, com esse erro exato, posso informar que isso resolveu o problema.

    
por 13.06.2009 / 09:54

Tags