ฉันต้องการรับรายการแพ็คเกจที่ติดตั้งในระบบเดียวและติดตั้งทั้งหมดในระบบอื่น
ฉันรู้ว่า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