Debian: “update-command-not-found” IOError: Não é um arquivo gzipado

1

Eu corri um comando aleatório no terminal e recebi esta resposta:

Could not find the database of available applications, run update-command-not-found as root to fix this

Naturalmente, corro

update-command-not-found

como root, e ele começa a buscar os seguintes arquivos:

http://http.debian.net/debian/dists/jessie/main/Contents-i386.gz
http://http.debian.net/debian/dists/jessie/contrib/Contents-i386.gz
http://http.debian.net/debian/dists/jessie/non-free/Contents-i386.gz

No entanto, o comando não foi completamente finalizado, mas sim jogando esse erro

I: Writing data for ftp.us.debian.org_debian_dists_jessie_main_Contents-i386.gz ...
Traceback (most recent call last):
File "/usr/sbin/update-command-not-found", line 95, in <module> write_db_apt_file()
File "/usr/sbin/update-command-not-found", line 72, in write_db_apt_file write_db_core(fobj)
File "/usr/sbin/update-command-not-found", line 39, in write_db_core for i in text:   File "/usr/lib/python2.7/gzip.py", line 462, in readline c = self.read(readsize)
File "/usr/lib/python2.7/gzip.py", line 268, in read self._read(readsize)
File "/usr/lib/python2.7/gzip.py", line 303, in _read self._read_gzip_header()
File "/usr/lib/python2.7/gzip.py", line 197, in _read_gzip_header raise IOError, 'Not a gzipped file' 
IOError: Not a gzipped file

Estou preso. Procurando por update-command-not-found não produziu resultados positivos para resolver este problema, enquanto procurava por IOError: Não um arquivo gzipado relaciona o problema com a programação em Python, que Eu não entendo um pouco.

Existe alguma solução alternativa para resolver este problema? Este é um novo Debian Jessie instalado (8), ele foi instalado minimamente e eu adicionei / removi alguns DE e pacotes mais tarde.

resultado de uname -a

Linux debian 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u1 (2015-12-14) i686 GNU/Linux

resultado de lsb_release -rd

Description: DebianEdu/Skolelinux Release: 8.2

Obrigado por qualquer ajuda.

    
por th.sigit 05.01.2016 / 18:16

1 resposta

1

Resolvi meu próprio problema.

Descobri que update-command-not-found baixou um punhado de arquivos Contents-i386.gz em / var / cache / apt / apt- diretório arquivo / . De alguma forma, os arquivos baixados estão com defeito, o tamanho do arquivo não corresponde ao original. Por que esse problema surgir, ainda permanece um mistério para mim. Eu tive que baixar manualmente usando o wget (com a opção -O para renomear os arquivos baixados) como abaixo:

Aqui está o comando (para fins de copiar e colar):

wget http://ftp.us.debian.org/debian/dists/jessie/main/Contents-i386.gz -O /var/cache/apt/apt-file/ftp.us.debian.org_debian_dists_jessie_main_Contents-i386.gz

E faça o mesmo para o resto dos arquivos:

wget http://http.debian.net/debian/dists/jessie/main/Contents-i386.gz -O /var/cache/apt/apt-file/http.debian.net_debian_dists_jessie_main_Contents-i386.gz
wget http://http.debian.net/debian/dists/jessie/contrib/Contents-i386.gz -O /var/cache/apt/apt-file/http.debian.net_debian_dists_jessie_contrib_Contents-i386.gz
wget http://http.debian.net/debian/dists/jessie/non-free/Contents-i386.gz -O /var/cache/apt/apt-file/http.debian.net_debian_dists_jessie_non-free_Contents-i386.gz

Agora que / var / cache / apt / apt-file / contém os arquivos corretos, posso executar update-command-not-found com -n para evitar que este comando faça downloads e sobrescreva os arquivos corretos os defeituosos.

root@debian:/var/cache/apt# update-command-not-found -n
I: Writing data for ftp.us.debian.org_debian_dists_jessie_main_Contents-i386.gz ... . done
I: Writing data for http.debian.net_debian_dists_jessie_contrib_Contents-i386.gz ... . done
I: Writing data for http.debian.net_debian_dists_jessie_main_Contents-i386.gz ... . done
I: Writing data for ftp.us.debian.org_debian_dists_jessie-updates_main_Contents-i386.gz ... . done
I: Writing data for http.debian.net_debian_dists_jessie_non-free_Contents-i386.gz ... . done

NB: Eu tive que excluir security.debian.org_dists_jessie_updates_main_Contents-i386.gz do diretório /var/cache/apt/apt-file/ porque o wget anterior resulta em ERROR 404: Not Found .

Espero que possa ajudar alguém.

    
por 07.01.2016 / 03:04