web-dev-qa-db-ja.com

利用可能なバックポートアップグレードを一覧表示する方法

buntu Backports をたどって手動バックポートを有効にしましたが、いくつか質問があります。コマンドラインで(たとえば、apt-cacherまたはaptitude):

  1. 利用可能なバックポートアップグレードがあるインストール済みパッケージをリストしますか? (以前は、アップグレード可能なパッケージにapt-show-versions -uを使用していました)
  2. 使用可能なすべてのバックポートパッケージをリストします(インストールされているかどうか)。
12
ricab
  1. 利用可能なバックポートアップグレードがあるインストール済みパッケージを一覧表示する

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. 使用可能なすべてのバックポートパッケージをリストします(インストールされているかどうかにかかわらず)

    aptitude search '~Abackports ?not(~S ~i ~Abackports)'
    
13
ricab

この情報はSynapticで利用できます。Synapticはデフォルトではインストールされませんが、次の方法で取得できます。

Sudo apt-get install synaptic

左側のサイドバーでOriginを選択すると、raring-backports/universeやローカルにインストールされたパッケージなど、パッケージの参照元を指定できます。

代わりにコマンドラインソリューションに興味がある場合は、バックポートのパッケージを一覧表示するためのクイックダーティpythonスクリプトを一緒にハッキングしましたが、残念ながらかなり遅いです。

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)

使用可能なすべてのバックポートパッケージと、インストールされている場合はインストールされているバージョンが一覧表示されます。

6
Jason Conti

編集:いくつかの実験の後、私は完璧に機能するソリューションを見つけました! -backportsリポジトリに新しいバージョンを持つパッケージのみがリストされ、それ以上はリストされません(他のソリューションは追加パッケージをリストしました。

利用可能なバックポートの更新を一覧表示するには、次のコマンドを実行します。

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
3
user180409