Menyinkronkan pemasangan apt-get antara banyak komputer

11

Apakah ada cara untuk menyinkronkan instalasi saya (dan kepindahan) antara beberapa PC?

Lebih disukai dengan dropbox - karena saya sudah menggunakannya untuk menjaga file saya tetap sinkron.

Saya memikirkan alias untuk apt-get installdan apt-get removeperintah yang menyimpan parameter ke file (satu untuk menginstal, satu untuk menghapus) dan perintah lain yang membaca semua entri dalam file dan menjalankan perintah masing-masing. Apakah ini pendekatan yang realistis?

Chris
sumber

Jawaban:

7

Anda bisa menggunakan boneka untuk membuat file konfigurasi yang menentukan paket mana yang harus diinstal, dan Anda bisa menggunakan Dropbox daripada server puppetmaster untuk menyinkronkan konfigurasi boneka di antara mesin, ditambah pekerjaan cron untuk menjalankan boneka secara berkala dan mengimplementasikan perubahan konfigurasi.

Mike Scott
sumber
Ini adalah ide bagus untuk sejumlah kecil mesin. Di lingkungan yang lebih besar, Anda harus memiliki seorang dalang. Di mana saya bekerja, kami mengelola ribuan mesin dengan boneka.
Ed Manet
9

Saya tidak tahu apakah ada cara yang lebih baik (mungkin ada), tetapi tergantung pada skala yang Anda butuhkan, Anda dapat menggunakan fitur pencarian aptitude untuk bagian dari mesin. Ini memungkinkan Anda mencari paket yang cocok dengan suatu pola. Jadi, aptitude search '~i'memberi Anda semua paket yang diinstal

Kita harus melangkah lebih jauh. Pengelola paket suka mengetahui paket mana yang secara langsung diminta oleh Anda dan mana yang baru saja ditarik karena paket lain. Tanpa informasi itu, hal-hal buruk dapat terjadi. Jadi, kita dapat memperluas pola pencarian itu untuk memilih paket yang tidak diinstal secara otomatis:aptitude search '!~M ~i'

Fitur pencarian tercakup dalam beberapa detail dalam manual referensi Aptitude .

Sekarang, Anda memiliki daftar paket untuk diinstal. Anda dapat memformat output seperlunya dengan meneruskan flag -F ke perintah itu, seperti -F '% p' ​​untuk mendapatkan daftar hanya dengan nama paket.


Misalnya , Anda dapat menjalankan ini pada mesin 1 :

aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh

Kemudian salin file yang baru dibuat aptshell.shke mesin 2 dan dan gunakan perintah ini pada mesin 2 untuk menjalankannya di sana:

sudo sh aptshell.sh

Kemudian ulangi prosesnya, dengan mesin asli 2 sebagai mesin baru 1 , dan mesin asli 1 sebagai mesin baru 2 . Sekarang setiap mesin memiliki semua paket yang sebelumnya hanya di sisi lain.

Dylan McCall
sumber
Akan lebih baik untuk memasukkan versi ... mesin 1 mungkin telah menahan versi, misalnya dan mesin 2 harus mencerminkan itu
Rondo
misalnya, aptitude -F "% c% p% V" --disable-kolom pencarian '! ~ M ~ i' | awk -F "" '{print "apt-get -y install" $ 2 "=" $ 3}'> aptshell.sh
Rondo
2

Ini adalah pertanyaan lama, tetapi karena tidak ada yang mengatakannya, Anda mungkin dapat melakukan sesuatu dengan dpkg dan cron. Mengatur pekerjaan cron yang melakukan sesuatu yang pintar dengan perintah get-selection dan set-selection dari dpkg.

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

Ini bukan solusi yang diusulkan, Anda harus mencari cara untuk memastikan bahwa seleksi.dpkg diperbarui setiap kali Anda membuat perubahan di kedua komputer ...

John
sumber
2

Ubuntu Software Center memiliki fitur untuk menyinkronkan paket yang diinstal di antara banyak komputer. Ini menggunakan akun Ubuntu One Anda untuk menyimpan paket. Cukup pilih File > Sync Between Computers...dan login dengan akun Ubuntu One Anda.

Menyinkronkan paket dengan Pusat Perangkat Lunak Ubuntu

Saat ini entah bagaimana fungsinya terbatas, misalnya hanya mendukung paket default (bukan ppas), dan Anda harus secara manual memilih paket yang akan diinstal (ini dapat dilihat sebagai fitur yang tangguh). Untuk instruksi terperinci, lihat artikel ini .

Amir Ali Akbari
sumber
-2

Anda tidak akan dapat menggunakan dropbox untuk menyinkronkan pemasangan paket.

Synaptic memang memiliki cara untuk menyimpan daftar unduhan paket, tetapi saya tidak yakin ini menangani kasus "semua yang pernah diinstal" daripada hanya "ini paket yang ingin saya unduh kali ini"

Broam
sumber
-1 karena asumsi Anda salah, pertanyaan menjelaskan proses untuk mengimplementasikannya, menggunakan daftar instal / hapus, dia hanya menanyakan apakah ada implementasi yang realistis, per dropbox deskripsi pertanyaan hanyalah media yang digunakan untuk bertukar daftar sinkronisasi
João Pinto