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