我对 APT 包管理器有一些疑问。
据我了解,我们的存储库网址/etc/apt/sources.list
位于/etc/apt/sources.list.d/*
当apt-get update
被调用时,apt 会尝试连接文件中指定的所有存储库并下载有关这些存储库的信息,例如有哪些程序可用等等。
它将所有检索到的数据缓存在本地,以便以后使用,而无需向存储库发出互联网请求。
当apt-get install
被调用时,它会从可用的存储库中搜索本地缓存包列表,如果找不到包,它除了显示错误外不执行任何操作。
apt-get search
还会查看本地缓存并且不会向互联网发出任何请求。
我说得对吗?我不确定发出请求而不是在本地缓存中搜索数据的命令。
apt-cache search
另外,和之间有什么区别apt search
?我猜它们都使用本地缓存。
答案1
您说得对,apt-get update
从源(在线)和其他命令中读取apt-get search
,并apt-get install
从缓存的信息中读取。来自man apt
:
update (apt-get(8))
update is used to download package information from all configured
sources. Other commands operate on this data to e.g. perform
package upgrades or search in and display details about all
packages available for installation.
apt search <package>
和之间的区别apt-cache search <package>
在于 的输出apt search
更精美(有颜色、按字母顺序排列、有良好的行分隔,便于阅读),因为 apt 是一个精美的新界面。这在关于 apt 和 apt-get 之间区别的答案
但是,搜索并不是 apt-cache 能做的唯一事情:
Usage: apt-cache [options] command
apt-cache [options] show pkg1 [pkg2 ...]
apt-cache queries and displays available information about installed
and installable packages. It works exclusively on the data acquired
into the local cache via the 'update' command of e.g. apt-get. The
displayed information may therefore be outdated if the last update was
too long ago, but in exchange apt-cache works independently of the
availability of the configured sources (e.g. offline).
Most used commands:
showsrc - Show source records
search - Search the package list for a regex pattern
depends - Show raw dependency information for a package
rdepends - Show reverse dependency information for a package
show - Show a readable record for the package
pkgnames - List the names of all packages in the system
policy - Show policy settings
这是info
来自apt-cache
apt
apt-get
结合了和中的命令apt-cache
,因此你可以从任何命令中获得相同或略微更漂亮/整洁的输出apt-cache [option] <package>
,apt [option] <package>
例如
apt show gimp
显示几乎完全相同
apt-cache show gimp