got*_*nes 181 debian package-management ubuntu
在基于 Debian 的系统(包括 Ubuntu)上,如何在不实际开始下载的情况下知道将从哪个存储库下载软件包?aptitude show并且apt-cache info将显示部分(例如,元数据包,碱,图形),而不是存储库,其包属于(例如,http://ppa.launchpad.net/mactel-support/ppa/ubuntu或HTTP://我们.archive.ubuntu.com/ubuntu/)。
安装软件包时,实际存储库会在下载过程中出现(它在 apt 和类似程序的“从...下载”输出中打印出来),但是如何获取有关包含该软件包的存储库(或特定包的版本)而不先下载并安装它?
此外,如何确定已安装软件包的源存储库?
tsh*_*ang 217
我跑apt-cache policy <package name>:
$ apt-cache policy wajig
wajig:
Installed: 2.1
Candidate: 2.1
Version table:
*** 2.1 0
100 /var/lib/dpkg/status
2.0.47 0
500 file:/home/wena/.repo_bin/ squeeze/main i386 Packages
500 ftp://ftp.is.co.za/debian/ squeeze/main i386 Packages
Run Code Online (Sandbox Code Playgroud)
这意味着有三个wajig包:
已安装 ( /var/lib/dpkg/status)
可从本地存储库中获得的一个 (file:/home/wena/.repo_bin/ )
可从远程存储库 ( ftp://ftp.is.co.za/debian)获得的一个,它也恰好与本地存储库中的版本 ( 2.0.47 )具有相同的版本
此外,apt-cache madison <package name>将以表格格式显示类似的信息。
wajig | 2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe amd64 Packages
wajig | 2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe Sources
Run Code Online (Sandbox Code Playgroud)
got*_*nes 29
啊哈!显然,正确的apt命令不是apt-cache info,而是apt-cache showpkg。
$ apt-cache showpkg linux-generic
Package: linux-generic
Versions:
2.6.31.19.32 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_karmic-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages
MD5: 5d722da329763b9342d322f5a140005c
2.6.31.14.27 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages
MD5: 5d722da329763b9342d322f5a140005c
Reverse Depends:
Dependencies:
2.6.31.19.32 - linux-image-generic (5 2.6.31.19.32)
2.6.31.14.27 - linux-image-generic (5 2.6.31.14.27)
Provides:
2.6.31.19.32 -
2.6.31.14.27 -
Reverse Provides:
Run Code Online (Sandbox Code Playgroud)
该File:行在 之后提供存储库信息/var/lib/apt/lists/。
有一个错误报告aptitude无法显示源存储库,但目前该功能似乎仍在愿望清单中。
我想知道为什么没有人提到aptitude。我用它所有的时间。
资质是:
默认情况下随许多基于 Debian 的发行版一起提供。可以通过sudo apt install aptitude.
不需要管理权限(至少对于下面的命令)。
ncurses确实有一个很好的GUI(但大部分时间都没有它)。
提供了一个非常漂亮的输出。要显示软件包的版本,请使用aptitude versions命令:
me@wheezy:~$ aptitude versions kde-standard
Package kde-standard:
i A 5:77+deb7u1 stable 500
p A 5:84 testing,unstable 130
Run Code Online (Sandbox Code Playgroud)
没有超级牛的力量。
每个串前的字母表示封装的状态,我已安装并p吹扫(或从未安装),稳定,测试和不稳定是存储库的定义,在端的数量是一个销优先权。
关于最近版本的 aptitude 值得一提的一个警告:默认情况下,它显示所有包,其中包括您搜索的名称,因此请稍微使用正则表达式魔术来按严格名称进行搜索,例如aptitude versions ^kde-workspace$.
这对我有用(显示 2vcard 包的位置):
$ grep 2vcard /var/lib/apt/lists/* | grep "Filename:"
/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-i386_Packages:Filename: pool/universe/2/2vcard/2vcard_0.5-3_all.deb
Run Code Online (Sandbox Code Playgroud)
如果有多个版本可用,您可以应用额外的过滤来检查版本等。
小智 6
遗憾的是,在软件包安装过程中没有记录此信息。如果存储库仍在源列表中并且存储库仍然具有包,您可以做出合理的猜测:
grep -l PKG /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)
apt-cache showpkg 正在显示来自存储库数据库的数据(不是安装的数据),因此它是来自 grep 的相同信息的另一种形式。
甚至突触也无法判断(在 Origin 屏幕中)您是否禁用了存储库并进行更新。
| 归档时间: |
|
| 查看次数: |
77981 次 |
| 最近记录: |