如何列出所有包我已经安装了来自 ubuntu / debian 中的某个存储库,无需使用任何外来命令,甚至是aptitude
基本命令,例如apt list --installed
或 来自这里:
列出您当前的所有存储库:
apt-cache policy | sed -n 's/.*o=\([^,]\+\).*/\1/p' | uniq
和这里,
for p in $(dpkg -l | awk '/ii/{ print $2 }'); do for i in $(apt-cache policy "$p" | awk '/Installed/{ print $2}'); do apt-cache policy "$p" | grep -A1 '\*\*\*\ '$i'' | if grep -q jessie; then echo $p; fi; done; done
并不是说后者是解决方案,因为连作者都承认这是“相当丑陋”,但是只使用基本工具的方法是好的。
或者,也许最好的方法是编写awk
脚本来解析一些apt
安装日志?
顺便说一句,为什么我想知道——这里是我当前的所有存储库:
LP-PPA-myid,a=focal
cloudsmith/myid/repo,a=bullseye
Docker,a=bullseye
Google LLC,a=stable
Debian,a=oldstable
Debian,a=testing
Debian Backports,a=bullseye-backports
Debian,a=stable-security
Debian,a=stable
但不知何故,我不知道为什么 Nodejs 存储库不在列表中:
$ apt-cache policy nodejs
nodejs:
Installed: 16.18.1-deb-1nodesource1
Candidate: 16.19.0-deb-1nodesource1
Version table:
16.19.0-deb-1nodesource1 500
500 https://deb.nodesource.com/node_16.x bullseye/main amd64 Packages
*** 16.18.1-deb-1nodesource1 100
100 /var/lib/dpkg/status
12.22.12~dfsg-1~deb11u1 500
500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
12.22.5~dfsg-2~11u1 500
500 http://deb.debian.org/debian bullseye/main amd64 Packages