사용 가능한 백 포트 업그레이드를 나열하는 방법 따라 수동

방금 Ubuntu Backports 를 따라 수동 백 포트를 활성화했으며 몇 가지 질문이 있습니다. 명령 줄에서 어떻게해야합니까 (예 : apt-cacher또는 aptitude) :

  1. 사용 가능한 백 포트 업그레이드가 설치된 설치된 패키지를 나열합니까? (이전 apt-show-versions -u에 업그레이드 가능한 패키지에 사용 했습니다)
  2. 사용 가능한 모든 백 포트 패키지 (설치 여부)를 나열합니까?


답변

  1. 사용 가능한 백 포트 업그레이드가있는 설치된 패키지 나열

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. 사용 가능한 모든 백 포트 패키지 나열 (설치 여부)

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

답변

이 정보는 Synaptic에서 사용할 수 있으며 기본적으로 설치되지 않지만 다음과 같이 얻을 수 있습니다.

sudo apt-get install synaptic

왼쪽 사이드 바에서 원점 을 선택하면 로컬로 설치된 패키지뿐만 아니라 raring-backports / universe와 같이 패키지가 제공되는 위치를 기준으로 패키지를 찾아 볼 수 있습니다.

대신 커맨드 라인 솔루션에 관심이 있다면, 빠르고 더러운 파이썬 스크립트를 해킹하여 백 포트에 패키지를 나열했습니다. 불행히도 다소 느립니다.

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)

사용 가능한 모든 백 포트 패키지와 설치된 버전이 나열됩니다.


답변

편집 : 약간의 실험 후, 나는 나에게 완벽하게 작동하는 솔루션을 찾았습니다! -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