मैं उन सभी पैकेजों को कैसे सूचीबद्ध कर सकता हूं जिन्हें मैंने किसी विशेष भंडार से स्थापित किया है?


51

मैं उन सभी पैकेजों को कैसे सूचीबद्ध कर सकता हूं जिन्हें मैंने किसी विशेष भंडार से स्थापित किया है?

मैं उन सभी स्थापित पैकेजों को कैसे सूचीबद्ध कर सकता हूं जो मुख्य उबंटू अभिलेखागार से उपलब्ध नहीं हैं, और यह भी देखें कि वे कौन से रिपॉजिटरी से आए थे? (अगर मुझे इस प्रश्न का उत्तर पता था, तो मैं अपने प्रश्न के उत्तर का पता लगाने के लिए एक विशेष पीपीए नाम के लिए उस सूची को प्राप्त कर सकता हूं।)


चूँकि इसके लिए कोई मौजूदा कमांड-लाइन टूल नहीं लगता है (दुख की बात है), मैं GUI उत्तरों में से एक को स्वीकार करूँगा।
मारियस गेदमिनस

जवाबों:


24

Ubuntu सॉफ़्टवेयर सेंटर में "इंस्टॉल किए गए सॉफ़्टवेयर" आइटम का विस्तार करें। आपको उन सभी विभिन्न रिपॉजिटरी की सूची दिखाई देगी जो आपने सक्षम की हैं। रेपो पर क्लिक करने से आपको आपके द्वारा इंस्टॉल किए गए पैकेज दिखाई देंगे।

वैकल्पिक शब्द


मुझे डर है कि विकल्प केवल उबंटू 10.10 में उपलब्ध है या क्या मुझे कुछ याद आ रहा है? मेरा सॉफ़्टवेयर केंद्र उस मेनू के नीचे स्रोत प्रदर्शित नहीं करता है।
लवलीनलक्स

2
मेरे संस्करण में मेरे पास शीर्ष पर "इंस्टॉल किया गया" ड्रॉपडाउन है। जब मैं उस विकल्प का चयन करता हूं, तो मैं विभिन्न स्रोतों (कोर, पर्स, पीपीए के लिए चुन सकता हूं ...)
एलेक्सिस विल्के

Ubuntu 16.04 में, यह पृष्ठ उपलब्ध नहीं है। हालांकि, सिनैप्टिक में एक समान विशेषता है - नीचे-बाएं में "उत्पत्ति" पर क्लिक करें।
जोश

26

एक स्थापित पैकेज की उत्पत्ति का कोई रिकॉर्ड नहीं लगता है ।

यदि आप ठीक हैं, जहां से उसी स्थान का पैकेज प्राप्त होता है, जहां से उसी नाम का एक पैकेज डाउनलोड किया जाएगा, तो यह उपलब्ध है apt-cache policy। निम्नलिखित (बल्कि बदसूरत) स्क्रिप्ट मेरे लिए चाल है:

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
  | fgrep ':install ok installed' \
  | cut -d: -f1 \
  | (while read pkg; do 
       inst_version=$(apt-cache policy $pkg \
                                | fgrep Installed: \
                                | awk '{ print $2 }'); 
       origin=$(apt-cache policy "$pkg" \
                          | fgrep " *** ${inst_version}" -C1 \
                          | tail -n 1 \
                          | cut -c12-); 
       echo $pkg $origin; 
     done)

ध्यान दें कि यह काफी नाजुक है, क्योंकि यह आउटपुट के बारे में धारणा बनाता है apt-cache policy, जो संस्करणों में बदल सकता है ...


हाँ, यह मूल रूप से खरोंच से एक उपकरण लिखने का मतलब होगा। और मुझे लगता है कि पर्ल या पायथन के साथ पार्सिंग / var / lib / apt / सूचियां तेज और अधिक मजबूत होंगी।
मारियस गेदमिनस

सामान्य रूप से यहां काम करता है, 2018 में :) धन्यवाद!
N0rbert

मैंने उबंटू और डेबियन पर एक समान समाधान विकसित किया।
पारिवारिक प्रकरण

23

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


4

यह स्क्रिप्ट उन पैकेजों को सूचीबद्ध करती है जो PPA में स्थापित और उपलब्ध हैं:

#!/bin/sh
# Give PPA name as an argument, e.g. ppa:oibaf/graphics-drivers

name1="$(echo "$1"|cut -d: -f2|cut -d/ -f1)"
name2="$(echo "$1"|cut -d/ -f2)"

awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' \
/var/lib/apt/lists/*"$name1"*"$name2"*Packages |
xargs dpkg-query -W -f='${Status} ${Package}\n' 2>/dev/null  | awk '/^[^ ]+ ok installed/{print $4}'

मैंने इसे लागू किया

BTW उपयोग से PPA को हटाने के लिए, ppa-purge प्रोग्राम का उपयोग करें; मैंने इसका एक उन्नत संस्करण यहाँ बनाया है


3

क्वांटल (12.10) के तहत, मूल रेखा में स्थान को हटाने की आवश्यकता है।

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
 | fgrep ':install ok installed' \
 | cut -d: -f1 \
 | (while read pkg; do 
   inst_version=$(apt-cache policy $pkg \
                            | fgrep Installed: \
                            | cut -d: -f2-); 
   origin=$(apt-cache policy "$pkg" \
                      | fgrep " ***${inst_version}" -C1 \
                      | tail -n 1 \
                      | cut -c12-); 
   echo $pkg $origin; 
 done)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.