instal paket debian yang sama di sistem lain

13

Bagaimana cara mengekspor daftar paket Debian yang diinstal pada sistem, dan kemudian menginstal paket yang sama pada sistem baru?

jes5199
sumber

Jawaban:

17

Untuk cadangan:

sudo dpkg --get-selections > /tmp/dpkglist.txt

Untuk mengembalikan:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

Lihat juga pertanyaan ini untuk opsi dan info tambahan: Ubuntu, cara menyiapkan mesin baru seperti yang sudah ada

Saya memiliki yang di atas berjalan dalam cronjob harian yang memeriksa dpgklist ke SVN sebagai bagian dari inventaris server kami. Ini akan memungkinkan Anda untuk menyimpan inventaris yang akurat dan masuk akal dari paket-paket yang terinstal di server Anda dan mudah untuk melakukan diff berdampingan secara cepat untuk melihat apakah server kehilangan paket tertentu.

pembuat kesalahan
sumber
1
Saya mendapatkan pesan kesalahan ini untuk setiap baris input: dpkg: warning: package not in status nor available database at line ...
danorton
cara ini tidak berfungsi karena beberapa versi ubuntu
QkiZ
10

aptitudejuga memenuhi usecase ini, dan menyimpan informasi tentang paket "terinstal secara otomatis" yang tidak dimiliki metode lain. Jalankan yang berikut ini di mesin referensi:

aptitude search -F '%p' '~i!~M' > package_list 

Salin package_listke mesin lain dan jalankan

xargs aptitude --schedule-only install < package_list; aptitude install; 
Vihang D
sumber
Hanya sebuah catatan kecil. Menurut manual referensi aptitude, bidang "paket" adalah "dapat diperluas" secara default, jadi aptitude search -F '%p' '~i!~M' > package_listharus juga berfungsi dengan baik.
chronos
Mengenai cadangan paket: lihat colokan untuk deborphan@ bogdan.org.ua/2013/10/18/…
TomRoche
[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] Mengenai pengembalian paket: ini perlu dilakukan sebagai root, bukan? Jika demikian, <br/> Perintah xargsdalam restore Anda = xargs aptitude --schedule-only instal <package_list; menginstal aptitude; membuat saya ingin tahu, <br/> 1. Mengapa aptitudeperlu xargs? dpkg --set-selectionstidak. <br/> 2. Menganggap aptitude tidak perlu xargs, di mana untuk menempatkan satu atau lebih sudodalam memulihkan commandline Anda? Atau dapatkan root untuk menjalankan baris itu, anggap itu perlu.
TomRoche
0

Itu ide yang bagus, dan Anda mungkin juga mengatur satu server dengan apt-proxy jika Anda terbiasa.


sumber
Setelah bermain-main dengan beberapa proxy untuk apt, saya akhirnya memutuskan apt-cacher-ng. apt-cacher-ng sangat mudah untuk diatur dan dari beberapa akun tampaknya lebih kuat daripada apt-proxy asli. Setiap orang memiliki favoritnya masing-masing. unix-ag.uni-kl.de/~bloch/acng
faultyserver
Pilihan saya kira-kira, itu satu-satunya yang tidak gila.
womble
Menarik ... Saya sebenarnya belum mencoba salah satu alternatif.
0

jawaban faultyservers hanya berfungsi untuk saya setelah menjalankan perintah yang berbeda sesuai http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html

sudo apt-get install dselect sudo dselect access sudo dselect update

Sebelum itu berjalan

sudo apt-get dselect-upgrade

hanya dikembalikan

[...]
dpkg: peringatan: paket tidak ada dalam database di baris 302: xfonts-utils
dpkg: peringatan: ditemukan paket tidak dikenal; ini mungkin berarti database yang tersedia sudah usang, dan perlu diperbarui melalui metode frontend
pi @ FHEM-new: / tmp $ sudo apt-get dselect-upgrade
Daftar paket membaca ... Selesai
membangun pohon ketergantungan
membaca informasi status ... Selesai
0 ditingkatkan, 0 baru dipasang, 0 untuk dihapus dan 0 tidak ditingkatkan.

Saya mencoba untuk menginstal paket yang sama dari Raspberry Pi lama saya (menjalankan Raspbian GNU / Linux 7 (wheezy)) di Raspberry baru saya (Raspbian GNU / Linux 8 (jessie)).

adiuva
sumber