是否有方法或命令可以判断包来自哪个存储库?
答案1
使用以下命令。它有更好的输出:
apt policy <Package Name>
在 Ubuntu 16.04 之前,命令是:
apt-cache policy <Package Name>
答案2
编辑:
查看 SuB回答。看上去简单一点!
原来的:
所需命令:
dpkg -s <package>
- 允许您找到已安装的版本。(来源)apt-cache showpkg <package>
- 将显示可用软件包的版本列表。对于每个版本,将以索引文件名的形式提供软件包的来源。
如果要查找当前安装的软件包的来源,则需要 的输出dpkg -s <package>
。否则,您可以简单地查看 的最新版本输出apt-cache showpkg <package>
。
例子:
$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <[email protected]>
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
答案3
apt
在 Ubuntu 16.04+ 上
除了和 之外apt-cache policy
,现在我们有一个更简单、易于记忆的子命令:showpkg
show
apt
[1] [2](不要与经典混淆apt-*
):
apt policy <package>
或者提供更多信息的替代方案apt show <package>
,以“APT 来源:”。
描述:此软件包提供命令行工具,用于搜索和管理以及查询有关软件包的信息,以及对 libapt-pkg 库所有功能的低级访问。这包括:apt-get
、、、、。apt-cache
apt-cdrom
apt-config
apt-key
警告:apt
没有稳定的 CLI 界面。在脚本中请谨慎使用。
基本命令来自apt --help
其他也容易记住的子命令:
apt list
– 根据包名称列出包apt search
– 在包描述中搜索apt show
– 显示包裹详情apt update
– 更新可用软件包列表apt install
– 安装软件包apt remove
– 删除软件包apt purge
– 删除软件包和配置文件:删除软件包会删除所有软件包数据,但通常会留下一些小的(经过修改的)用户配置文件,以防意外删除。在这种情况下,只需对意外删除的软件包发出安装请求即可恢复其功能。另一方面,即使对已删除的软件包调用 purge 也可以清除这些残留文件。请注意,这不会影响存储在主目录中的任何数据或配置。
到删除残留包:
sudo apt purge $(dpkg -l | grep "^rc" | awk '{print $2}')
apt upgrade
– 通过安装/升级软件包来升级系统apt full-upgrade
– 通过删除/安装/升级软件包来升级系统apt edit-sources
– 编辑源信息文件
答案4
sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"