ric*_*cab 13 upgrade package-management apt backport
我刚刚按照Ubuntu Backports激活手动向后移植,我有几个问题。我怎样才能在命令行(例如apt-cacher或aptitude)中:
apt-show-versions -u可升级包)ric*_*cab 14
列出具有可用 backport 升级的已安装软件包
aptitude search '?and(~i, ~Araring-backports)'
Run Code Online (Sandbox Code Playgroud)列出所有可用的向后移植包(已安装或未安装)
aptitude search '~Abackports ?not(~S ~i ~Abackports)'
Run Code Online (Sandbox Code Playgroud)此信息在 Synaptic 中可用,默认情况下未安装,但可以通过以下方式获得,
sudo apt-get install synaptic
Run Code Online (Sandbox Code Playgroud)
在左侧边栏中选择Origin将允许按包的来源浏览包,例如 raring-backports/universe,以及本地安装的包。
如果你对命令行解决方案感兴趣,我编写了一个快速而肮脏的 python 脚本来列出 backports 中的包,但不幸的是它很慢。
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)
Run Code Online (Sandbox Code Playgroud)
它列出了所有可用的 backport 软件包,以及已安装的版本(如果已安装)。
小智 5
编辑:经过一些实验,我找到了一个非常适合我的解决方案!它仅列出 -backports 存储库中具有较新版本的软件包,仅此而已(其他解决方案列出了其他软件包。
要列出可用的向后移植更新,请运行以下命令:
aptitude search -t $(lsb_release -sc)-backports '~U ~Abackports'
Run Code Online (Sandbox Code Playgroud)
如果您希望列表也显示当前版本和更新版本,请改为运行以下命令:
aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'
Run Code Online (Sandbox Code Playgroud)
这将显示如下内容:
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
Run Code Online (Sandbox Code Playgroud)
如果您不想记住此命令,请将其添加到您的~/.bashrc:
alias apt-list-backports="aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'"
Run Code Online (Sandbox Code Playgroud)
现在你只需要写apt-list-backports!
刚刚找到了另一种方法:
apt-get upgrade -s -t $(lsb_release -sc)-backports
Run Code Online (Sandbox Code Playgroud)
这将模拟升级并列出将升级的软件包。但也包括对向后移植的升级(我认为也显示了正常升级)。
您还可以添加选项-V以显示软件包将升级到的版本。
要在 backports 中查看包的更改日志,请使用:
apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9504 次 |
| 最近记录: |