Apt-get kurulumlarını birden çok bilgisayar arasında senkronize etme


11

Kurulumlarımı (ve kaldırmaları) birden fazla bilgisayar arasında senkronize etmenin bir yolu var mı?

Tercihen dropbox ile - zaten dosyalarımı senkronize tutmak için kullanıyorum.

Parametreleri bir dosyaya (yükleme için bir, kaldırma için bir) ve dosyadaki tüm girişleri okuyan ve ilgili komutu yürüten başka bir komutu saklayan apt-get installve apt-get removekomutları için bir takma ad düşündüm . Bu gerçekçi bir yaklaşım mı?

Yanıtlar:


7

Hangi paketlerin yüklenmesi gerektiğini belirten yapılandırma dosyaları oluşturmak için kukla kullanabilirsiniz ve kukla yapılandırmasını makineler arasında senkronize etmek için kukla yöneticisi yerine Dropbox, ayrıca kuklayı periyodik olarak çalıştırmak ve yapılandırma değişikliklerini uygulamak için bir cron işi kullanabilirsiniz.


Bu az sayıda makine için harika bir fikir. Daha geniş bir ortamda, kesinlikle bir kukla yöneticiniz olmalıdır. Çalıştığım yerde binlerce makineyi kukla ile yönetiyoruz.
Ed Manet

9

Daha iyi bir yol olup olmadığını bilmiyorum (muhtemelen var), ancak ihtiyacınız olan ölçeğe bağlı olarak, makinenin bir kısmı için yeteneklerin arama özelliğini kullanabilirsiniz. Bir kalıpla eşleşen paketleri aramanızı sağlar. Böylece, aptitude search '~i'kurulu tüm paketleri verir

Yine de bir adım daha ileri gitmemiz gerekiyor. Paket yöneticisi, hangi paketlerin doğrudan sizin tarafınızdan talep edildiğini ve hangilerinin diğer paketler nedeniyle çekildiğini bilmeyi sever. Bu bilgi olmadan çirkin şeyler olabilir. Böylece, otomatik olarak yüklenmeyen paketleri seçmek için bu arama modelini genişletebiliriz:aptitude search '!~M ~i'

Arama özelliği Aptitude'un referans kılavuzunda ayrıntılı olarak ele alınmıştır .

Şimdi, yüklenecek paketler listeniz var. Sen edebilirsiniz çıktıyı biçimlendirmek sadece paket adları ile bir listesini almak için -f '% p' gibi, yani komuta -F bayrağı geçirerek gerektiği gibi.


Örneğin , bunu makine 1'de çalıştırabilirsiniz :

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

Sonra yeni oluşturulan kopyalamak aptshell.shiçin üzerine dosyayı makineye 2 ve ve bu komutu kullanın makinede 2 orada çalıştırmak için:

sudo sh aptshell.sh

Daha sonra, orijinal ile işlemi tekrar makine 2 yeni ürün olarak makinesi 1 ve orijinal makine 1 yeni ürün olarak makine 2 . Şimdi her makine, daha önce sadece diğerinde bulunan tüm paketlere sahip.


Sürümleri dahil etmek harika olurdu ... makine 1, sürümleri geri almış olabilir ve makine 2 bunu yansıtmalıdır
Rondo

örneğin, yetenek -F "% c% p% V" --disable-sütun araması '! ~ M ~ i' | awk -F "" '{print "apt-get -y install" $ 2 "=" 3 $}'> aptshell.sh
Rondo

2

Bu eski bir soru, ama kimse söylemediğinden muhtemelen dpkg ve cron ile bir şeyler yapabilirsiniz. Dpkg'nin get-selection ve set-selection komutlarıyla akıllıca bir şeyler yapan bir cron işi oluşturun.

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


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

Bu önerilen bir çözüm değildir, her iki bilgisayarda da değişiklik yaptığınızda, selection.dpkg dosyasının güncellenmesini sağlamak için bir yol bulmanız gerekir ...


2

Ubuntu Yazılım Merkezi, kurulu paketleri birden çok bilgisayar arasında senkronize etme özelliğine sahiptir. Paketleri kaydetmek için Ubuntu One hesabınızı kullanır. Sadece File > Sync Between Computers...Ubuntu One hesabınızı seçin ve oturum açın.

Paketleri Ubuntu Yazılım Merkezi ile senkronize etme

Şu anda bir şekilde sınırlı işlevselliğe sahiptir, örneğin sadece varsayılan paketleri (s'leri değil ppa) destekler ve hangi paketlerin yükleneceğini manuel olarak seçmelisiniz (bu, olumlu bir özellik olarak görülebilir). Ayrıntılı talimatlar için bu makaleye bakın .


-2

Paket yüklemelerini senkronize etmek için dropbox'ı kullanamazsınız.

Synaptic'in paket indirme listesini kaydetmenin bir yolu var, ancak yalnızca "bu sefer indirmek istediğim paketler" yerine "şimdiye kadar kurulmuş olan her şey" durumunu ele aldığından emin değilim


-1 varsayımınız yanlış olduğu için, soru, bir yükleme / kaldırma listesi kullanarak, sadece gerçekçi bir uygulama olup olmadığını soruyor, soru açıklaması dropbox'ının senkronizasyon listelerini değiştirmek için kullanılan araç olduğunu soruyor.
João Pinto
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.