我的问题与 apt-get 的建议功能有关。当我们输入错误的软件包名称时,apt-get 会建议类似的软件包名称。apt-get 也会存储所有软件包和库的名称列表本地存储库中是否可用?当我们在添加一些第三方存储库后执行“sudo apt-get update”时,它会更新具有名称列表的文件吗?
答案1
apt
不仅存储所有启用的存储库中每个可用包的名称,还存储大量相关信息!
你可以用任何编辑器查看其列表,因为它们是纯文本文件。只需浏览目录
/var/lib/apt/lists
在您的本地机器上。每个文件代表一个存储库,文件名通常由存储库的地址、分布、部分和体系结构组成。一些示例文件名:
archive.canonical.com_ubuntu_dists_vivid_partner_binary-i386_Packages
archive.canonical.com_ubuntu_dists_vivid_partner_i18n_Translation-en
ftp-stud.hs-esslingen.de_ubuntu_dists_vivid_main_binary-i386_Packages
ppa.launchpad.net_libreoffice_ppa_ubuntu_dists_vivid_Release
请注意,如果文件名以 结尾.gpg
,则它不是包索引文件,而是用于验证包的 GPG 密钥。
这些索引文件基本上包含其代表的存储库中可用的每个包的列表。每个包条目的结构或多或少类似于我的以下示例片段ftp-stud.hs-esslingen.de_ubuntu_dists_vivid_main_binary-i386_Packages
。所包含的数据字段可能因包而异,因为其中许多是可选的。
Package: apt
Priority: important
Section: admin
Installed-Size: 3743
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: APT Development Team <[email protected]>
Architecture: i386
Version: 1.0.9.7ubuntu4
Replaces: manpages-it (<< 2.80-4~), manpages-pl (<< 20060617-3~), openjdk-6-jdk (<< 6b24-1.11-0ubuntu1~), sun-java5-jdk (>> 0), sun-java6-jdk (>> 0)
Depends: libapt-pkg4.12 (>= 1.0.9.7ubuntu4), libc6 (>= 2.15), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.9), ubuntu-keyring, gnupg
Suggests: aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), apt-doc, python-apt
Conflicts: python-apt (<< 0.7.93.2~)
Breaks: manpages-it (<< 2.80-4~), manpages-pl (<< 20060617-3~), openjdk-6-jdk (<< 6b24-1.11-0ubuntu1~), sun-java5-jdk (>> 0), sun-java6-jdk (>> 0)
Filename: pool/main/a/apt/apt_1.0.9.7ubuntu4_i386.deb
Size: 1007526
MD5sum: bae83438d0e7650003c06cd07fa315d9
SHA1: 8db49e516b515be90149ec7292abb2b7c496efb8
SHA256: 3461fc57d9d2389bb50927ce2f5341b6a8680a1c4f00b699391ee58fead04779
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Build-Essential: yes
Origin: Ubuntu
Supported: 9m
Task: minimal
仅供参考:
如果您想强制apt
完全重新读取所有软件包索引,您可以删除此文件夹的内容,然后apt-get
再次下载文件。请注意,根据您的互联网连接速度,这可能需要几分钟,因为这个文件夹很容易占用大约 100MB 的磁盘空间……
sudo rm -r /var/lib/apt/lists/ && sudo apt-get update
答案2
是的,所有可用的包都存储在本地,
sudo apt-get update
更新该列表。