首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian:“更新命令找不到”IOError:不是gzipped文件

Debian:“更新命令找不到”IOError:不是gzipped文件
EN

Unix & Linux用户
提问于 2016-01-05 17:16:26
回答 1查看 2K关注 0票数 1

我在终端中运行了一个随机命令,得到了这样的响应:

无法找到可用应用程序的数据库,请以root用户身份运行update命令not以修复此问题。

很自然,我跑

更新-命令-找不到

作为root,它将开始获取以下文件:

代码语言:javascript
复制
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

但是,命令没有完全完成,而是抛出了这个错误。

代码语言:javascript
复制
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

我被卡住了。在搜索IOError时,搜索update命令not并没有产生积极的结果来解决这个问题:没有一个压缩文件将问题与programming联系起来,我对此一点也不了解。

有什么办法解决这个问题吗?这是在一个新安装的Debian (8)上,它是最少安装的,我后来添加/删除了一些DE和软件包。

从未命名-a得到的结果

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

lsb_release -rd的结果

描述: DebianEdu/Skolelinux发行版: 8.2

谢谢你的帮助。

EN

回答 1

Unix & Linux用户

发布于 2016-01-07 02:04:49

我发现更新命令下载了一些内容-i386.gz文件到/var/cache/apt/apt/目录中。不知何故,下载的文件是错误的,文件大小与原始文件不匹配。为什么会出现这个问题,对我来说仍然是个谜。我不得不使用wget手动下载(使用-O开关重命名下载的文件),如下所示:

下面是命令(用于复制和粘贴目的):

代码语言:javascript
复制
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

对剩下的文件做同样的事情:

代码语言:javascript
复制
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

既然/var/cache/apt/apt/包含了正确的文件,我就可以使用update-command-not-found开关运行-n,以防止这个命令下载,并用错误的文件覆盖正确的文件。

代码语言:javascript
复制
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

注意:我不得不从security.debian.org_dists_jessie_updates_main_Contents-i386.gz目录中删除/var/cache/apt/apt-file/,因为以前的wget导致了ERROR 404: Not Found

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/253441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档