Ubuntu, cara mengatur mesin baru seperti yang sudah ada

27

Saya memiliki satu pengaturan mesin dengan aplikasi yang saya butuhkan, dan saya ingin menginstal yang sama pada kotak Ubuntu baru.

Apakah ada skrip yang akan mencantumkan semua aplikasi yang diinstal, sehingga saya dapat membedakan antara kotak dan menambahkan item yang hilang?

Terima kasih sebelumnya, Chris

Chris Kimpton
sumber

Jawaban:

18

Selain trik dpkg yang disebutkan oleh pjz, Anda mungkin juga ingin melihat etckeeper ( tutorial ) - aplikasi yang menempatkan / etc / * Anda di bawah kontrol versi, membuatnya lebih mudah untuk menemukan perubahan yang telah Anda lakukan dan mereplikasi mereka ke yang lain server.

Juga, untuk daftar yang lebih pendek dari yang dihasilkan oleh metode pjz, Anda dapat menggunakan

$ deborphan -a --no-show-section > /tmp/mypackagelist

Ini akan memberi Anda daftar paket yang akan menginstal semua paket lain yang Anda butuhkan sebagai dependensi. Dapat bermanfaat jika Anda benar-benar ingin melihat daftar. (dpkg - dapatkan-pilihan akan menghasilkan daftar loooong ). Selain itu, daftar ini cukup pendek sehingga Anda dapat menambahkan baris baru dan mengomentari entri dengan '#'. Lalu ketika menginstal paket tambahan yang bisa Anda lakukan

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

Dengan cara ini, jika ada beberapa paket yang hanya ingin Anda instal pada beberapa mesin, Anda tidak harus menghapusnya dari daftar paket sama sekali.

Hamish Downer
sumber
dllkeeper terlihat sangat menarik (+1).
jkp
17
dpkg --get-selections >/tmp/mypackagelist

harus melakukan trik. Kemudian, setelah memastikan bahwa /etc/apt/sources.list Anda pada mesin baru memiliki set entri yang sama seperti pada yang lama, salin mypackagelist ke mesin baru dan lakukan:

cat mypackagelist | xargs apt-get -y install 

dan kamu harus baik untuk pergi.

Perhatikan bahwa baris dpkg --get-selection juga merupakan info yang bagus untuk dimasukkan ke / etc / dir Anda - artinya Anda tidak perlu repot untuk mencadangkan / bin / dan / usr / bin / dan sebagainya karena Anda tahu paket apa yang ada di sistem.

pjz
sumber
Ya, Jeff, tetapi bagaimana dengan modifikasi pada file konfigurasi? bagaimana dengan opsi-opsi konfigurasi ulang dpkg? bagaimana dengan nama host ... pengguna, saham, tunggangan ... Lihat tanggapan saya tentang ddbellow
elcuco
2

Forum Ubuntu memiliki jawaban yang bagus

  1. Pada mesin lama: $ dpkg --get-choices> perangkat lunak yang diinstal
    • Ini mendapatkan daftar aplikasi yang diinstal
  2. Di mesin baru: $ dpkg --set-choices
    • Ini mengatur mesin baru untuk menginstal paket yang saat ini tidak diinstal pada mesin baru.
    • Mungkin menarik untuk melihat apakah mesin baru memiliki beberapa paket yang tidak diinstal pada mesin yang lama, sehingga Anda dapat menemukan perintah dpkg --get-choices> pada mesin baru, dan kemudian gunakan diff untuk membandingkan file output dari keduanya.
  3. Akhirnya, pada mesin baru: $ dselect dan paket akan diinstal.

Beberapa tautan tambahan dari diskusi forum:

  1. Jangan lupa kunci gpg Anda (dari utas yang sama)
  2. Bagaimana cara menginstal semua paket yang diinginkan dan menghapus semua paket yang tidak diinginkan
pcapademic
sumber
2

Perintah dpkg yang lebih baik mungkin [mesin asli]

dpkg --get-selections | grep -v deinstall > packages_list

lalu saat memasang [mesin baru; setelah mentransfer packages_list]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade
Benji
sumber
1

Jika Anda bukan penggemar CLI (walaupun memang harus begitu), Anda dapat menggunakan manajer paket Synaptic untuk menyimpan gambar paket yang diinstal, dan menggunakan file itu (lagi melalui Synaptic) untuk memuat mesin baru. Di bawah opsi file / simpan tanda, ada kotak centang yang disebut "save full state".

Nerdfest
sumber
Saya pikir ini adalah metode yang ditemukan Cory
jbdavid
1

Mengapa Anda tidak mengkloning mesin saja dd?

elcuco
sumber
1
Ini. Hanya mengkloning mesin dan mengganti namanya, itu cara tercepat untuk melakukannya.
pjc50
1

Menggunakan FSArchiver untuk mereplikasi mesin dapat diterima. Jika tidak, berikut ini adalah pasangan perintah yang berguna, yang setengahnya dapat Anda tambahkan ke cron cadangan Anda:

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

Lokasi yang harus Anda tiru adalah / etc and / var. Perintah di atas memanipulasi beberapa file di / var secara langsung, dan beberapa file confile di / etc secara tidak langsung melalui debconf. Anda akan mendapatkan efek yang sama dengan hanya mereplikasi subpohon tersebut dan menjalankan bakat.

Tobu
sumber
0

Saya kira Docker akan menjadi cara untuk melakukan ini sekarang - tentukan persyaratan dalam Dockerfile - Anda kemudian dapat menjalankannya pada host Docker apa pun.

Chris Kimpton
sumber