Saya ingin mendapatkan daftar paket yang diinstal pada satu sistem dan menginstal semuanya pada sistem lain.
Saya tahu itu dpkg --get-selections
bisa memberi saya daftar semua paket yang diinstal yang saya dapat pipa ke dpkg --set-selections
sistem target. Namun, beberapa paket yang diinstal adalah paket yang saya buat sendiri secara lokal (menggunakan misalnya checkinstall) dan tidak tersedia dari repositori. The dpkg --set-selections
Proses akan gagal ketika tidak dapat menemukan paket ini di repositori.
Jadi adakah cara saya bisa memfilter daftar yang dihasilkan dpkg --get-selections
sehingga hanya berisi paket-paket yang versi instalasinya tersedia di repositori saya saat ini?
sumber
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
Gunakan perintah berikut
itu akan membuat file yang disebut instal-perangkat lunak di direktori home Anda
pada sistem baru
ini akan membaca seleksi dan menginstal
sumber