我刚刚按照Ubuntu Backports的步骤激活了手动后备端口,并且有几个问题。我如何在命令行中(例如apt-cacher
或aptitude
):
- 列出已安装的可用后备升级程序包?(之前,我使用
apt-show-versions -u
查看可升级的软件包) - 列出所有可用的后备程序包(已安装或未安装)?
我刚刚按照Ubuntu Backports的步骤激活了手动后备端口,并且有几个问题。我如何在命令行中(例如apt-cacher
或aptitude
):
apt-show-versions -u
查看可升级的软件包)aptitude search -t $(lsb_release -sc)-backports '~U ~Abackports'
aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'
这将显示类似于这样的内容:
nvidia-settings 331.20-0ubuntu -> 346.59-0ubuntu
screen 4.1.0~20120320 -> 4.2.1-2~ubuntu
yelp-xsl 3.10.1-1 -> 3.12.0-1~ubunt
~/.bashrc
文件中:alias apt-list-backports="aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'"
apt-list-backports
!
刚刚找到另一种方法:
apt-get upgrade -s -t $(lsb_release -sc)-backports
-V
来显示软件包将要升级到的版本。
apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
sudo apt-get install synaptic
from __future__ import print_function
import apt
def backport_version(package):
if package.versions is None:
return False
for version in package.versions:
for origin in version.origins:
if origin.archive.endswith("backports"):
return version.version
return None
with apt.Cache() as cache:
for package in cache:
version = backport_version(package)
if version is not None:
print(package.fullname, version)
if package.is_installed:
print(" Installed:", package.installed.version)
aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'
。这个解决方案解决了第一个问题(假设后备版本总是更高)。没有你的帮助,我可能无法找到答案,所以如果你愿意,可以将它作为答案,我会选择它。 - ricab
cat /dev/null
是更快的方式 /s - CervEd