有没有一种方法或命令可以告诉我们一个软件包来自哪个软件源?
apt-cache policy <Package Name>
apt policy <Package Name>
apt-cache policy
是很好的,但有时你需要使用apt-cache showpkg
来比较软件包的MD5校验和。还可以参考debsums --changed
。 - gavenkoapolicy
选项与 sources.list
相比最有用。 - infinite-etceterafunction manually_installed { comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u) }
- DeepDeadpool看看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 <ubuntu-devel-discuss@lists.ubuntu.com>
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
...
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
trusty
软件源,然后临时将utopic
添加到我的sources.list
中以安装init-system-helpers
的1.20ubuntu3版本,然后再次从我的sources.list
中删除该存储库,apt-cache showpkg init-system-helpers
只会对原始软件包列表进行虚假描述,而apt-cache policy init-system-helpers
则只会陈述明显的事实。 - blubberdiblubapt policy <软件包名称>
命令来获得更易读的输出。这个命令也很容易记住。 - crenshaw-devapt
在 Ubuntu 16.04+ 上除了 apt-cache policy
、showpkg
和 show
,现在我们有一个更简单、易于记忆的子命令:apt
[1] [2](不要与经典的 apt-*
混淆):
apt policy <package>
apt show <package>
,以"APT-Sources:"开头的行。
描述:该软件包提供了用于搜索、管理和查询有关软件包的信息以及对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
– 编辑源信息文件
apt policy xxx
与apt-cache policy xxx
看起来完全一样,或许这本应该是个注释。或者至少提到一下,apt show
似乎需要使用-a
开关来查看其他来源的"额外记录"。 - Xen2050WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
- Reinier Postgrep -l PKG /var/lib/apt/lists/*
$ apt-cache policy
Package files:
# The default https://wiki.debian.org/DebianStable repository with a priority of 500
500 https://deb.debian.org/debian stable/main amd64 Packages
o=Debian,n=stable,l=Debian,c=main,b=amd64
origin deb.debian.org
# The repository for Debian https://wiki.debian.org/PointReleases (security and grave bug fixes ~every 2 months)
500 https://deb.debian.org/debian stable-updates/main amd64 Packages
release o=Debian,a=oldstable-updates,n=stable-updates,l=Debian,c=main,b=amd64
origin deb.debian.org
apt policy
命令并去掉换行符。dpkg -l | grep "ii" | awk '{print $2}' | xargs -n 1 -IX sh -c "apt policy X 2>/dev/null | tr '\n' ' '" | tee all_packages.txt
cat all_packages.txt | grep -v "ubuntu.com"
cat all_packages.txt | grep -v "ubuntu.com" | sed 's/:.*//g'
dpkg -l <软件包名称> | awk '/^ii/{print $3}'
。 - mchid