আমি একটি সিস্টেমে ইনস্টল হওয়া প্যাকেজগুলির একটি তালিকা পেতে এবং সেগুলি অন্য সিস্টেমে ইনস্টল করতে চাই।
আমি জানি যে 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