Cara mendaftar upgrade backport yang tersedia

12

Saya baru saja mengikuti Ubuntu Backports untuk mengaktifkan backports manual dan saya punya beberapa pertanyaan. Bagaimana saya bisa, di baris perintah (misalnya apt-cacheratau aptitude):

  1. daftar paket yang diinstal yang memiliki upgrade backport yang tersedia? (Sebelumnya, saya duluapt-show-versions -u paket yang dapat diupgrade)
  2. daftar semua paket backport yang tersedia (diinstal atau tidak)?
ricab
sumber

Jawaban:

14
  1. daftar paket yang diinstal yang memiliki upgrade backport yang tersedia

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. daftar semua paket backport yang tersedia (diinstal atau tidak)

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

Informasi ini tersedia dalam Synaptic, yang tidak diinstal secara default tetapi dapat diperoleh dengan,

sudo apt-get install synaptic

Memilih Asal di bilah sisi kiri akan memungkinkan paket untuk diramban berdasarkan dari mana asalnya, seperti raring-backports / universe, serta paket yang dipasang secara lokal.

Jika Anda bukan tertarik pada solusi baris perintah, saya meretas skrip python cepat dan kotor untuk mendaftar paket di backports, meskipun sayangnya agak lambat.

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)

Ini mencantumkan semua paket backport yang tersedia, dan versi yang diinstal jika diinstal.

Jason Conti
sumber
Terima kasih, Anda meningkatkan kesadaran saya untuk menggunakan python, yang jelas sangat berguna. Untuk itu saya akan memilih Anda jika perwakilan saya mengizinkannya ... Tapi saya lebih suka mencari sesuatu yang built-in. Ketika jalur resmi memiliki backports manual, saya kira pasti ada beberapa cara yang lebih alami untuk mendapatkan info ini
ricab
metode sinaptik akan menjawab pertanyaan, tetapi saya mencari lebih banyak untuk solusi berbasis apt-cache / aptitude (cmd line)
ricab
1
Atau: pencarian aptitude '? Dan (~ i, ~ Araring-backports)'; untuk menginstal paket backport
Jason Conti
3
terima kasih atas semua balasannya. Solusi bakat Anda memecahkan 2. Untuk 1, saya harus meneliti sedikit lebih untuk sampai ke: aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'. Ini menyelesaikan 1 (dengan asumsi versi backports selalu lebih tinggi). Saya tidak akan mendapatkannya tanpa bantuan Anda, jadi jika Anda ingin menjawabnya dan saya akan memilihnya
ricab
1
Mungkin ingin menambahkan jawaban Anda sendiri dan memilihnya. Saya kebanyakan hanya menunjukkan dokumentasi bakat.
Jason Conti
4

EDIT: Setelah beberapa percobaan, saya menemukan solusi yang bekerja sempurna untuk saya! Ini hanya mencantumkan paket yang memiliki versi yang lebih baru di repositori -backports, dan tidak lebih dari itu (solusi lain mencantumkan paket tambahan.

Untuk daftar pembaruan backports yang tersedia, jalankan perintah ini:

aptitude search -t $(lsb_release -sc)-backports '~U ~Abackports'

Jika Anda ingin daftar juga menampilkan versi saat ini dan yang lebih baru, jalankan perintah ini sebagai gantinya:

aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'

Ini akan menampilkan sesuatu seperti ini:

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

Jika Anda tidak ingin mengingat perintah ini, tambahkan ini ke ~/.bashrc:

alias apt-list-backports="aptitude search -t $(lsb_release -sc)-backports -F '%p %v -> %V' '~U ~Abackports'"

Sekarang Anda hanya perlu menulis apt-list-backports!


Jawaban asli

Baru saja menemukan cara lain:

apt-get upgrade -s -t $(lsb_release -sc)-backports

Ini akan mensimulasikan peningkatan dan daftar paket apa yang akan ditingkatkan. Tetapi upgrade ke backports juga disertakan (saya pikir upgrade normal juga ditampilkan).

Anda juga dapat menambahkan opsi -Vuntuk menunjukkan versi paket yang akan ditingkatkan.


Untuk melihat daftar perubahan paket di backports, gunakan:

apt-get changelog -t $(lsb_release -sc)-backports PACKAGE_NAME

sumber