如何找出包来自哪个存储库?
是否有方法或命令可以告诉包来自哪个存储库?
需要的命令:
-
dpkg -s
– 允许您查找已安装的版本。 ( 来源 ) -
apt-cache showpkg
– 将显示可用软件包的版本列表。 对于每个版本,将以索引文件名的forms给出包的源。
如果要查找当前安装的软件包的源,则需要输出dpkg -s
。 否则,您只需通过apt-cache showpkg
查看最新版本的输出。
例:
$ dpkg -s liferea Package: liferea Status: install ok installed Priority: optional Section: web Installed-Size: 760 Maintainer: Ubuntu Developers Architecture: i386 Version: 1.6.2-1ubuntu6 ... $ apt-cache showpkg liferea Package: liferea Versions: 1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages MD5: 557b0b803b7ed864e6d14df4b02e3d26 1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status) Description Language: File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages MD5: 557b0b803b7ed864e6d14df4b02e3d26 ...
从第一个命令,我可以看到Liferea版本1.6.2-1ubuntu6已安装。 从第二个命令,我可以看到该版本列在/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
。
没有太多努力,我可以推断出源代码行包含archive.ubuntu.com
, ubuntu
, lucid
和main
。
当然,我的/etc/apt/sources.list
包含以下行。
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
使用以下命令。 它有更好的输出:
apt-cache policy
对于Ubuntu 16.04及更高版本,有一种更短的方法:
apt policy
遗憾的是,在安装包时不会记录此信息。 如果存储库仍在源列表中且存储库仍具有包,那么您可以做出正确的猜测:
grep -l PKG /var/lib/apt/lists/*
甚至突触也无法判断您是否禁用了存储库并进行了更新。
sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"
资源
apt
于Ubuntu 16.04+
除了apt-cache
参数,如policy
, showpkg
和show
,现在我们有一个更简单,易记的参数,命令: apt
(不要与经典apt-*
混淆):
apt policy
或者更多信息apt show
的替代方案,以“APT-Sources:”开头的行。
描述:该软件包提供命令行工具,用于搜索和管理以及查询有关软件包的信息,作为对libapt-pkg库的所有function的低级访问。 这些包括: apt-get
, apt-cache
, apt-cdrom
, apt-config
, apt-key
。
来自apt --help
基本命令
其他易于记忆的参数:
-
list
– 根据包名列出包 -
search
– 搜索包描述 -
show
– 显示包装细节 -
update
– 更新可用包的列表 -
install
– 安装包 -
remove
– 删除包 -
upgrade
– 通过安装/升级软件包升级系统 -
full-upgrade
– 通过删除/安装/升级软件包来升级系统 -
edit-sources
– 编辑源信息文件
这更准确一点:
apt-cache show | grep "Version:"
除非您设置了apt-pinning或明确安装了特定版本,否则通常会安装最新版本。