it-swarm.cn

如何找出包来自哪个存储库?

是否有方法或命令可以告诉包来自哪个存储库?

144
dfme

需要的命令:

  • 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.comubuntulucid,和main

而且,果然,我的/etc/apt/sources.list包含以下行。

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
109
Michael Crenshaw

使用以下命令。它有更好的输出:

apt-cache policy <Package Name>

对于Ubuntu 16.04及更高版本,有一种更短的方法:

apt policy <Package Name>
101
SuB

在Ubuntu 16.04+上apt

apt-cache policyshowpkgshow旁边,现在我们有一个更简单,易记的子命令:apt(不要混淆经典的apt-*):

apt policy <package> 

或者更多信息的替代apt show <package>,行以“APT-Sources:”开头。

描述:此软件包提供命令行工具,用于搜索和管理以及查询有关包的信息,作为对libapt-pkg的所有功能的低级访问图书馆。其中包括:apt-getapt-cacheapt-cdromapt-configapt-key

来自apt --help的基本命令

其他易于记忆的子命令:

  • apt list - 根据包名列出包
  • apt search - 搜索包描述
  • apt show - 显示包裹详细信息
  • apt update - 更新可用包的列表
  • apt install - 安装包
  • apt remove - 删除包
  • apt purge - 删除包 和配置文件

    删除包会删除所有打包的数据,但通常会留下小的(修改的)用户配置文件,以防删除是意外。在这种情况下,只是发出意外删除的包的安装请求将恢复其功能。另一方面,即使已经删除的包,也可以通过调用purge来清除这些剩余物。请注意,这不会影响主目录中存储的任何数据或配置。

  • apt upgrade - 通过安装/升级软件包升级系统

  • apt full-upgrade - 通过删除/安装/升级包来升级系统
  • apt edit-sources - 编辑源信息文件
8
Pablo Bianchi

遗憾的是,在安装包时不会记录此信息。如果存储库仍在源列表中且存储库仍具有包,那么您可以做出正确的猜测:

grep -l PKG /var/lib/apt/lists/*

甚至突触也无法判断您是否禁用了存储库并进行了更新。

6
kanaka
Sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

4
sBlatt

这更准确一点:

apt-cache show <packagename> | grep "Version:"

除非您设置了apt-pinning或显式安装特定版本,否则通常会安装最新版本。

1
mchid