उपलब्ध बैकपोर्ट अपग्रेड को कैसे सूचीबद्ध करें


12

मैंने मैनुअल बैकपॉट्स को सक्रिय करने के लिए उबंटू बैकपोर्ट्स का अनुसरण किया है और मेरे कुछ सवाल हैं। मैं कैसे कमांड लाइन में (उदाहरण के लिए ) apt-cacherया aptitude:

  1. उन स्थापित पैकेजों को सूचीबद्ध करें जिनमें बैकपोर्ट अपग्रेड उपलब्ध है? (इससे पहले, मैंने apt-show-versions -uअपग्रेड करने योग्य पैकेजों के लिए उपयोग किया था )
  2. सभी उपलब्ध बैकपोर्ट पैकेजों की सूची (स्थापित या नहीं)?

जवाबों:


13
  1. स्थापित पैकेजों की सूची, जिनके पास बैक अपग्रेड उपलब्ध है

    aptitude search '?and(~i, ~Araring-backports)'
    
  2. सभी उपलब्ध बैकपोर्ट पैकेजों की सूची (स्थापित या नहीं)

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

6

यह जानकारी Synaptic में उपलब्ध है, जो डिफ़ॉल्ट रूप से स्थापित नहीं है, लेकिन इसके साथ प्राप्त किया जा सकता है,

sudo apt-get install synaptic

बाएं साइडबार में उत्पत्ति का चयन पैकेजों को वे जहां-जहां से आते हैं, जैसे कि रेयरिंग-बैकस्पोर्ट्स / ब्रह्मांड, साथ ही स्थानीय रूप से स्थापित पैकेजों को ब्राउज करने की अनुमति देगा।

यदि आप इसके बजाय एक कमांड लाइन समाधान में रुचि रखते हैं, तो मैंने एक त्वरित और गंदे अजगर स्क्रिप्ट को एक साथ हैक करके बैकपोर्ट में पैकेज की सूची दी, हालांकि दुर्भाग्य से यह धीमी है।

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)

यदि यह स्थापित है, तो यह सभी उपलब्ध बैकपोर्ट पैकेज और स्थापित संस्करण को सूचीबद्ध करता है।


धन्यवाद, आपने मेरी जागरूकता को अजगर के बारे में बताया, जो निश्चित रूप से बहुत उपयोगी है। उसके लिए मैं आपको वोट दूंगा अगर मेरे प्रतिनिधि ने इसकी अनुमति दी ... लेकिन मैं कुछ अंतर्निहित चीजों की तलाश कर रहा था। जब आधिकारिक लाइन में मैनुअल बैकपोर्ट्स होते हैं, तो मुझे लगता है कि इस जानकारी को प्राप्त करने के कुछ और प्राकृतिक तरीके होने चाहिए
रिकब जूल

सिनैप्टिक विधि प्रश्न का उत्तर देगी, लेकिन मैं apt-cache / aptitude based solution (cmd line) को अधिक देख रहा था
ricab

1
या: 'एप्टिट्यूड सर्च'; (~ i, ~ एअरिंग-बैकपोर्ट्स) '; स्थापित बैकपोर्ट पैकेज पाने के लिए
जेसन कोंटी

3
सभी उत्तरों के लिए धन्यवाद। आपका अभिप्रेरित समाधान २ हल करता है। १ के लिए, मुझे पाने के लिए थोड़ा और शोध करना होगा aptitude search '~i ~Abackports ?not(~S ~i ~Abackports)'। यह 1 हल करता है (बैकस्पोर्ट संस्करण हमेशा उच्चतर होते हैं)। मैं इसे आपकी मदद के बिना नहीं मिला होगा, इसलिए यदि आप इसे एक उत्तर देना चाहते हैं और मैं इसका चयन
करूंगा

1
अपने स्वयं के उत्तर को जोड़ना और उसका चयन करना चाह सकते हैं। मैं ज्यादातर सिर्फ एप्टीट्यूड डॉक्यूमेंटेशन की ओर इशारा करता था।
जेसन कोंटी

4

संपादित करें: कुछ प्रयोग के बाद, मुझे एक समाधान मिला जो मेरे लिए पूरी तरह से काम करता है! यह केवल उन पैकेजों को सूचीबद्ध करता है जिनमें इन -पोर्ट्स रिपॉजिटरी में एक नया संस्करण है, और कुछ भी नहीं (अन्य समाधान अतिरिक्त पैकेज सूचीबद्ध हैं।

उपलब्ध बैकड्रॉप अपडेट को सूचीबद्ध करने के लिए, यह कमांड चलाएँ:

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.