运行apt-get更新时,“ Ign”,“获取”或“命中”是什么意思?


68

我在sudo apt-get update的输出中有很多错误:重复的条目和404未找到错误。

我想出了这些,希望:我删除了没有与之关联的任何程序包的PPA,然后在中删除了一个重复项/etc/apt/sources.list

看来我已经把它弄糟了。现在大多数行在我说“ Ign”时说sudo apt-get update

我该如何弄清楚自己搞砸了什么?我需要摆脱Ign所有这些地方。大约有50%(眼球猜测)Ign


3
这意味着:Ign矿石
Rinzwind

Answers:


65

使用apt-get update它时,它会验证是否需要下载相同的更新索引,如果不需要,则不会再次下载相同的更新索引。

  • Hit 意味着apt检查了软件包列表中的时间戳,这些时间戳匹配并且没有更改。

  • Ign 意味着pdiff索引文件中没有任何更改,它将不再需要再次下载它。

  • Get 意味着apt检查了软件包列表中的时间戳,有更改,将被下载。

没什么好害怕的,它只是意味着您无需再下载更新的索引,因为这些索引是最新的。


AFAIK软件包列表包含在仓库中的packages.gz / bz2文件中。因此,您的答案是否意味着:击中检查packages.gz文件的时间戳及其确定。如果时间戳不匹配,则它将按实际检查我的计算机缓存中的packages.gz文件的内容,如果找到所有包,则给出Ign,否则更新该回购缓存。如果我不对,那么您能不能更具体地说明我?
heemayl 2014年

3
这似乎与superuser.com/questions/454867/…相矛盾,后者表示Ign是错误情况。
pbhj

7
我从“ apt”查看了源文件acqprogress.cc,它看起来也很矛盾:它输出“ Ign” if (Itm.Owner->Status == pkgAcquire::Item::StatDone)-StatDone表示该文件已下载(参见acquire-item.h),但是输出Ign的块是下载失败的错误处理块……这似乎超出了我的初学者编码理解。只是用superuser.com标记矛盾。
pbhj

12
这个答案是不正确的。Ign表示apt尝试下载某些内容(例如翻译或InRelease文件),但未找到,但是可以忽略。继续下一步。Hit意味着apt需要下载Release文件(由于某种原因而被删除),然后下载该文件,它检查Package文件的校验和,发现新下载的Release文件中提到的校验和与已经存在的Package文件的校验和匹配。这是一个Hit。因此,它不会Package再次下载文件。
安瓦尔

1
-1为Ign不正确。
椭圆视图

27

这个问题的正确答案是:

  • Ign表示apt尝试下载某些内容(例如翻译或InRelease文件),但未找到,但是可以忽略,因此请继续进行下一个操作。因为翻译可以是次要的优先级,并且如果InRelease找不到文件,那么它会使用其他方法进行身份验证,例如使用ReleaseRelease.gpg配对。

  • Hit意味着apt需要下载一个Release文件或InRelease文件(由于某种原因而被删除),并且一旦下载,它检查其中的索引文件的校验和,发现那里提到的校验和与已经下载的Package文件的校验和匹配。/var/lib/apt/lists。这就是为什么它是一个Hit。因此,它不会Package再次下载文件。


从以下位置找到答案:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.