Ubuntu, var olan gibi yeni bir makine nasıl kurulur


27

İhtiyacım olan uygulamalarla bir makine kurulumum var ve aynısını yeni bir Ubuntu kutusuna kurmak istiyorum.

Tüm yüklü uygulamaları listeleyecek bir komut dosyası var, böylece kutular arasında farklılık gösterebilir ve böylece eksik öğeleri ekleyebilir miyim?

Şimdiden teşekkürler, Chris

Yanıtlar:


18

Pjz tarafından belirtilen dpkg hilelerinin yanı sıra, aynı zamanda / etc / * komutunuzu kontrol altına alan ve daha önce yaptığınız değişiklikleri bulmalarını kolaylaştıran ve uygulamalarınızı kontrol eden bir uygulama olan etckeeper'a ( öğretici ) bakmak isteyebilirsiniz sunucular.

Ayrıca, pjz'in yöntemiyle üretilenlerden daha kısa bir liste için kullanabilirsiniz.

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

Bu size bağımlılık olarak ihtiyacınız olan tüm diğer paketleri kuracak bir paket listesi verecektir. Listeye bakmak istiyorsanız gerçekten yararlı olabilir. (dpkg --get -seçimleri loooong listesi üretecektir ). Ek olarak, liste yeni satır ekleyebilecek ve '#' ile girişleri yorumlayabilecek kadar kısa. Sonra ekstra paketleri kurarken

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

Bu şekilde, yalnızca bazı makinelere yüklemek istediğiniz bazı paketler varsa, bunları tamamen paket listesinden silmek zorunda kalmazsınız.


etckeeper gerçekten ilginç görünüyor (+1).
jkp

17
dpkg --get-selections >/tmp/mypackagelist

hile yapmalı. Ardından, yeni makinedeki /etc/apt/sources.list'inizin eskiyle aynı giriş kümesine sahip olduğundan emin olduktan sonra, benim paketleyicimi yeni makineye kopyalayın ve şunu yapın:

cat mypackagelist | xargs apt-get -y install 

ve gitmek için iyi olmalısın.

Dpkg --get-seçimler satırının ayrıca / etc / dir dizinine zaman zaman koymak için iyi bir bilgi olduğunu unutmayın - bu, bildiğiniz için / bin / ve / usr / bin / vb. sistemde hangi paketler var.


Evet, Jeff, peki ya yapılandırma dosyalarındaki değişiklikler? dpkg-yeniden yapılandırma seçenekleri nasıl? nasıl hostnames hakkında ... kullanıcılar, paylaşımlar, mounts ... ddferyat
elcuco

2

Ubuntu Forumları'nın iyi bir cevabı var.

  1. Eski makinede: $ dpkg --get-seçimler> yüklü yazılım
    • Bu, yüklü uygulamaların listesini alır.
  2. Yeni makinede: $ dpkg - set-seçimler
    • Bu, yeni makineye şu anda yüklü olmayan paketleri kurması için yeni makineyi ayarlar.
    • Yeni makinenin eski makineye yüklenmemiş bazı paketleri olup olmadığını görmek ilginç olabilir, bu nedenle yeni makinede dpkg --get-choices> komutunu bulabilir ve ardından çıktı dosyalarını her ikisinden de karşılaştırmak için diff kullanabilirsiniz.
  3. Sonunda, yeni makinede: $ dselect ve paketler kurulacak.

Forum tartışmalarından bazı ek bağlantılar:

  1. Gpg anahtarlarınızı unutmayın (aynı konudan)
  2. İstenilen tüm paketler nasıl kurulur ve istenmeyen tüm paketler nasıl kaldırılır

2

Daha iyi dpkg komutları [orijinal makine] olabilir

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

sonra [yeni makine kurarken; package_list'i aktardıktan sonra]

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

1

Eğer bir CLI hayranı değilseniz (gerçekten olsanız da), kurulu paketlerin görüntüsünü kaydetmek için Synaptic paket yöneticisini kullanabilir ve yeni makineyi yüklemek için bu dosyayı (yine Synaptic aracılığıyla) kullanabilirsiniz. Dosya kaydet / kaydet seçeneği altında, "tam durumu kaydet" adlı bir onay kutusu bulunur.


Bence bu Cory'nin bulduğu yöntemdi
jbdavid

1

Neden sadece makineyi kullanarak klonlamıyorsun dd?


1
Bu. Sadece makineyi klonlayın ve adını değiştirin, bunu yapmanın en hızlı yolu.
pjc50


1

Kullanılması FSArchiver makineleri çoğaltmak için mükemmel kabul edilebilir. Aksi halde, burada ilk yarısını yedekleme cronunuza ekleyebileceğiniz yararlı komut çiftleri:

debconf-get-selections
debconf-set-selections

~

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

~

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

Çoğaltmanız gereken yerler / etc ve / var. Yukarıdaki komutlar doğrudan / var içindeki bir kaç dosyayı manipüle eder, bazıları da dolaylı olarak debconf aracılığıyla birleşir. Aynı etkiyi sadece bu alt ağaçları kopyalayarak ve yetenek çalıştırarak elde edersiniz.


0

Sanırım Docker şimdi bunu yapmanın bir yolu olurdu - bir Docker dosyasındaki gereksinimleri tanımlayın - daha sonra herhangi bir Docker sunucusunda çalıştırabilirsiniz.

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.