Saya hanya menambahkan beberapa masalah dengan server virtual Debian saya dan saya tambahkan untuk menginstal ulang semuanya dari awal. Namun, saya masih memiliki akses ke versi lama dan saya bisa mengambil daftar paket yang diinstal.
Untuk memfasilitasi proses memulihkan server virtual di masa mendatang, saya ingin membuat daftar paket khusus untuk masing-masing server saya.
Untuk lebih menjelaskan apa yang ingin saya capai. Saya sudah memiliki proses otomatis untuk membuat server virtual baru dengan beberapa paket dasar dan konfigurasi yang digunakan di mana-mana. Sekarang saya ingin menyimpan delta dengan "kerangka" ini untuk memudahkan instalasi ulang server tertentu.
Nilai plus nyata adalah juga untuk menyimpan file konfigurasi yang diubah dari default, tetapi saya hanya bisa hidup dengan daftar paket.
Singkatnya, saya ingin cara membuat daftar paket yang diinstal pada host tetapi tidak pada yang lain.
Akan sangat bagus jika daftar hanya berisi paket yang diinstal secara manual dan bukan daftar semua dependensi.
Jika Anda memiliki beberapa alat yang sudah ada yang dirancang untuk mencapai tugas khusus ini, jangan ragu untuk mengusulkannya, tetapi saya ingin menjaga ketergantungan sekecil mungkin. Sebagai informasi, mereka bukan server virtual, tetapi kontainer LXC.
sumber
Jawaban:
Pada instalasi referensi (hanya sekali):
(Asumsi berikut
bash
)Untuk mendapatkan paket yang ditambahkan dari instalasi referensi (ini tidak menunjukkan apa yang telah dihapus):
Lebih baik lagi, menghindari salinan
baselist.txt
:sumber
di server lama, jalankan:
salin file di atas ke server baru dan jalankan ini di server baru:
Juga, ingatlah untuk menambahkan semua repositori tambahan dari
/etc/apt/sources.list
dari server lama ke server baru juga, sebelum migrasi paket-paket ini, seolah-olah Anda tidak, maka sebagian besar paket akan dibiarkan tidak diinstal.sumber
cut -f1
mungkin akan lebih cepat daripada awk, dan seperti dikomentari pada jawaban Khaled, diff tidak akan selalu menghasilkan hasil yang benar. Solusi dengancomm
sangat tolong untuk saat ini ... Namun saya kehilangan versi yang hanya mencantumkan paket yang diinstal secara manual.Anda dapat menggunakan perintah berikut untuk mendapatkan daftar paket lengkap di kedua server:
Kemudian, Anda bisa mendapatkan perbedaan menggunakan:
Anda dapat memfilter perubahan yang diperlukan menggunakan grep. Juga, diff dapat digunakan untuk mendapatkan perubahan dalam file konfigurasi dan menghasilkan tambalan yang akan diaplikasikan saat diperlukan. By the way, diff dapat membandingkan dua folder tidak hanya dua file.
sumber
Cetak biru dirancang sesuai kebutuhan Anda. Itu meludah paket deskripsi yang diinstal dan mengkonfigurasi file yang telah diubah. Itu dapat mengubah deskripsi ini menjadi skrip Wayang atau Chef untuk menerapkannya pada kotak bersih.
sumber
Juga menemukan paket bermanfaat ini, uraiannya adalah sebagai berikut:
Skrip Bash yang membandingkan pohon sistem file paket Debian dengan pohon sistem file saat ini, mencetak perbedaan unified untuk file yang berbeda.
https://code.google.com/p/dpkg-diffs/
Hanya satu file bash yang bisa Anda tempel di PATH Anda di suatu tempat dan jalankan - tampaknya bekerja untuk saya dan itu tidak terlalu lama.
Semoga ini bisa membantu seseorang.
sumber