之前我曾去过这次讨论我仍然没有得到完整的答案。正如上述链接中接受的答案中提到的那样:
apt-get update
从存储库下载软件包列表并“更新”它们以获取有关软件包及其依赖项的最新版本的信息。它将对所有存储库和 PPA 执行此操作。
“下载软件包列表”到底是什么意思?如果我没记错的话,软件包列表已经存储在我的本地计算机中。我的意思是,软件包(可能是旧版本)已经在我的计算机中,当然也有列表/var/apt/lists
。
就算需要下载软件包列表,那也一定是.txt或者类似的文件,那为什么要提示这个呢?
fetching 17.6 mb from https://..mirror...
我的意思是,如果总共只有几百个包,包括所有模块和库,那么包列表怎么会这么大?
有人可以给我讲得更清楚吗?
答案1
我维护 Ubuntu Bionic 的本地镜像,以便可以向您展示文件的大小。
这是 2018 年 4 月发布的基准 18.04 版本。如您所见,压缩后的“内容”文件每个约为 37 MiB。
安全和更新内容列表大约是原来的两倍(这是bionic-updates)。
从基线解压的 Contents-amd64.gz 大小接近 600 MiB,包含 6,552,333 行。它的开头如下:
bin/afio multiverse/utils/afio
bin/archdetect utils/archdetect-deb
bin/ash universe/shells/ash
bin/autopartition admin/ubiquity
bin/autopartition-crypto admin/ubiquity
bin/autopartition-loop admin/ubiquity
bin/autopartition-lvm admin/ubiquity
bin/bash shells/bash
bin/bash-static universe/shells/bash-static
bin/block-attr admin/ubiquity
答案2
如果我没记错的话,软件包列表已经存储在我的本地计算机中,
是的。但是软件包每天都会更新。因此,您必须更新它们,以便您的软件包管理器了解新的更改,并能够使用它们apt ...
来获取软件包的最新版本。
我的意思是这个软件包怎么会这么大,可能只有大约几百个,仅包括所有的模块和库。
包裹数量如下:
$ apt list 2>/dev/null | wc -l
59913
请自行查看列表:
ls -lh /var/lib/apt/lists
请记住,如果您一段时间不更新这些列表,它们就会过时。下次您尝试更新它们时,它会获取所有这些列表。
答案3
下载软件包列表到底是什么意思?如果我没记错的话,软件包列表已经存储在我的本地计算机中了
是的,但本地存储的软件包列表指的是旧版本的软件。软件包列表就像检查更新一样:它会下载最新的 Ubuntu 软件版本列表,然后如果您执行 apt-get upgrade,它会使用新下载的软件包列表检查您安装的软件版本,以查看是否有任何更新。
我的意思是这个软件包怎么会这么大,可能只有大约几百个,仅包括所有的模块和库。
截至 Ubuntu 20.04,大约有 50,000 个软件包。
至于文件大小,您可能需要查看以下问题:apt-get 更新列表的大小太大。