Aqui está a saída que recebi de apt-get
:
dpkg: warning: files list file for package 'libecryptfs0' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package 'libplexus-containers1.5-java' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package 'apport' missing, assuming package has no files currently installed.
E foi assim que consertei:
-
Faça o backup do arquivo de status do dpkg:
cp /var/lib/dpkg/status{,.backup}
-
Edite o /var/lib/dpkg/status
file¹ e remova as seções dos pacotes em que apt-get
imprimiu avisos. Certifique-se de remover toda a seção sobre esses pacotes, i. e. começando com a linha Package: libecryptfs0
até a primeira linha em branco.
Como alternativa, você pode usar sed
para fazer o trabalho para você:
sed -i.backup -e '/^Package: \(libecryptfs0\|libplexus-containers1\.5-java\|apport\)$/,/^$/d' /var/lib/dpkg/status
Este comando exclui todas as seções entre e incluindo as linhas com Package: <PACKAGE_NAME>
e a próxima linha vazia. Você pode colocar qualquer nome de pacote válido entre os parênteses \(…\)
, delimitá-los com \|
e escapar dos pontos ( .
→ \.
). A opção -i.backup
edita o arquivo no lugar e cria um arquivo de backup com sufixos com .backup
(para que você possa pular a etapa 1 se usar a variante) em vez de gravar o resultado para stdout.
-
Execute sudo apt-get -f install
para configurar pacotes não configurados e (re) instalar o pacote ausente. Os pacotes estão ausentes porque os removemos do arquivo status
.
¹ Veja Como obtenho permissões para editar os arquivos de configuração do sistema? sobre como fazer isso.