मैं रिपॉजिटरी में उपलब्ध पैकेजों के लिए "dpkg --get-selections" को कैसे फ़िल्टर कर सकता हूं?


9

मैं एक सिस्टम पर स्थापित पैकेजों की एक सूची प्राप्त करना चाहता हूं और उन सभी को किसी अन्य सिस्टम पर स्थापित करना चाहता हूं।

मुझे पता है कि dpkg --get-selectionsमुझे उन सभी स्थापित पैकेजों की एक सूची दी जा सकती है जिन्हें मैं dpkg --set-selectionsलक्ष्य प्रणाली पर पाइप कर सकता हूं । हालाँकि, कुछ स्थापित पैकेज ऐसे हैं, जिन्हें मैंने स्थानीय स्तर पर बनाया है (उदाहरण के लिए चेक-इन का उपयोग करके) और रिपॉजिटरी से उपलब्ध नहीं हैं। dpkg --set-selectionsप्रक्रिया विफल हो जाएगा जब यह खजाने में इन पैकेजों को खोजने में असमर्थ है।

तो क्या कोई ऐसा तरीका है dpkg --get-selectionsजिससे मैं जनरेट की गई सूची को फ़िल्टर कर सकता हूं ताकि इसमें केवल ऐसे पैकेज हों जिनके वर्तमान में स्थापित संस्करण मेरे वर्तमान रिपॉजिटरी में उपलब्ध हो?

जवाबों:


9

मेरा मानना ​​है कि सॉफ्टवेयर सेंटर में इन दिनों कंप्यूटर के बीच समन्वय करने की सुविधा है। यदि वह लापता पैकेज को सही ढंग से संभालता है, तो यह आपकी समस्या को हल कर सकता है।

यहाँ समस्या यह है कि dpkgरिपॉजिटरी के बारे में पता नहीं है, केवल स्थापित पैकेज। आप पता लगा सकते हैं कि कोई पैकेज रिपॉजिटरी में उपलब्ध है या नहीं apt-cache policy $package। यदि आप में एक भंडार देखते हैं Version Table, तो यह वहां उपलब्ध है।

तो, यह कैसे के बारे में ?. यह धीमा है, लेकिन काम करना चाहिए:

dpkg --get-selections '*' \
  | while read line; do
    apt-cache policy $(echo "$line" | cut -f1 ) \
      | grep -q 'http://' \
      && echo "$line"
done

यह प्रगति दिखाएगा और एक फाइल में लिखेगा:total=$(dpkg --get-selections '*'|wc -l); i=0; dpkg --get-selections '*' | while read line; do i=$(($i+1)); apt-cache policy $(echo "$line" | cut -f1 ) | grep -q 'http://' && echo "$i/$total $line"; echo $line>>/var/tmp/dpkg-selection.list; done
rubo77

-4

निम्न आदेश का उपयोग करें

dpkg --get-selections > installed-software

यह आपके होम डायरेक्टरी में इंस्टॉल-सॉफ्टवेयर नामक एक फाइल बनाएगा

नई व्यवस्था पर

dpkg --set-selections < installed-software

यह चयन को पढ़ेगा और इंस्टॉल करेगा


3
मुझे नहीं लगता कि आप सवाल पढ़ते हैं।
रयान सी। थॉम्पसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.