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


12

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

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

回答:


14
  1. 利用可能なバックポートアップグレードがあるインストール済みパッケージのリスト

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

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

6

この情報は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)

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


おかげで、あなたはpythonでaptに私の意識を高めました。そのため、担当者が許可した場合は投票します...しかし、私はむしろ組み込みのものを探していました。公式ラインが手動のバックポートを持つ場合、この情報を取得するためのより自然な方法があるはずだと思います
-ricab

シナプス法が質問に答えますが、私はapt-cache / aptitudeベースのソリューション(cmd行)をもっと探していました
ricab

1
または:aptitude search '?and(〜i、〜Araring-backports)'; インストールされたバックポートパッケージを取得するには
ジェイソンコンティ

3
すべての返信に感謝します。あなたのaptitudeソリューションは2を解決します。1については、以下に到達するためにもう少し研究する必要がありましたaptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'。これにより1が解決されます(バックポートのバージョンが常に高いと仮定します)。私はあなたの助けがなければそれを得なかっただろうので、あなたがそれを答えにしたいなら、私はそれを選択します
-ricab

1
独自の回答を追加して選択することもできます。ほとんどの場合、aptitudeのドキュメントを指摘しました。
ジェイソンコンティ

4

編集:いくつかの実験の後、私は完璧に動作するソリューションを見つけました!-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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.