Kurulu paketleri ve ayarları bir dağıtımdan diğerine nasıl aktarırım?


16

Birkaç aydır VirtualBox üzerinden öğrenmeyi ve Linux sistemi hakkında bir şeyler araştırıyordum ve ana işletim sistemimi yapmak ve sabit diskime kurmak istediğime karar verdim. Doğrudan HDD'ye yüklediğimde getirmek istediğim bir dizi dosya, paket ve ayar (örneğin .bashrc gibi) var, bunu nasıl yapabilirim? Ayrıca, benzer bir Debian veya RPM'ye geçmeye karar verirsem şu anda Ubuntu çalıştırıyorum, RHEL tabanlı dağıtım aynı süreç olur mu? Varsa nelere dikkat etmeliyim?


Ubuntu bir Debian türevidir. Tüm Debian türevleri çok benzerdir, paketlerde olduğu gibi hepsi aynı ada, paket yönetimine, yapılandırmaya vb. Sahiptir ve hepsi çok benzerdir. Ancak, Fedora, CentOS vb.Gibi Red Hat dağıtımları, temelde aynı yazılım olmasına rağmen, paket yönetimi gibi konularda o kadar benzer değildir. Yine de, Debian ailesindeki işletim sistemlerinden RH ailesindekilere ayarları / yapılandırma vb. Kopyalayabilmelisiniz.
Faheem Mitha

Yanıtlar:


32

Paket yönetimi, dağıtımlar arasındaki ana farklılıklardan biridir. İlişkisiz dağıtımlar arasında otomatik olarak hiçbir şey yapamazsınız. Farklı dağıtımlar, yazılımı farklı paket kümelerine ayırır ve farklı adlar kullanır.

Aynı dağıtımın aynı sürümünü çalıştıran makineler arasında, kurulu paketler listesini yeniden oluşturarak benzer bir kurulum gerçekleştirebilirsiniz. Kullanan sistemlerde apt, Debian ve bunların türevleri (Ubuntu, nane, ...) halinde, kullanımı apt-clone. Bkz. Kurulu paket seçimlerini bir Debian sisteminden diğerine nasıl çoğaltırım? (Debian Wheezy) komutları için. Özetle, eski makinede:

sudo apt-get install apt-clone
apt-clone clone foo

foo.apt-clone.tar.gzYeni makineye kopyalayın ve çalıştırın

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-cloneDebian ve Ubuntu gibi ilgili dağıtımlar arasında çalışabilir. Bu durumda restore-new-distrokullanmak yerine kullanın restore. Bu başarısız olursa, manuel yöntemidpkg --get-selections ve ile kullanın ve apt-markuygun olana kadar paket listesi ile uğraşın.

Kendi ayarlarınız için daha basit: nokta dosyalarını ana dizininizden kopyalamanız yeterlidir . Kural olarak, hesabınızdaki donanımla ilgili olmayan, sistem çapında olmayan şeyleri yapılandırın; bu da onları başka bir makineye kopyalamayı kolaylaştıracaktır.


Aşağıdaki ikinci cevaba göre avantaj, bu yöntemin daha hızlı olmasıdır, çünkü yavaş internet atlanır ve daha hızlı USB 3 kullanılabilir. Başka avantajlar da olabilir ???
WinEunuuchs2Unix

@ WinEunuuchs2Unix Paket listesi sadece birkaç kilobayttır. İnternet üzerinden aktarma işlemi, bir USB dongle bulmaktan daha az zaman alır, bırakılsın ve kopyalanacak dosyaları seçmelisiniz.
Gilles 'SO- kötü olmayı kes'

@ Gilles aptal bana. foo.apt-clone.tar.gzTakılı tüm ikili dosyaların sıkıştırılmış bir katran topu olduğunu düşündüm . Sadece yüklü paketlerin bir listesi olduğunu fark etmedim. Bekletilen sürüm numaralarını da içeriyor mu?
WinEunuuchs2Unix

Birçok hata.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix

@ WinEunuuchs2Unix Bence apt-clone tutulan paketler dahil tüm dpkg durumunu içeriyor. Tam bir kurulumu klonlamak istiyorsanız, bunun tamamen farklı bir konu olduğunu unutmayın: apt-clone, makine 2 ile bir paket ayna arasında makine 1 ile makine 2 arasında (veya daha az maliyetli bant genişliği, makine 2'yi kurarken makine 1'i çok meşgul etmek istemediğiniz). Apt-clone, kaynak makinedeki tüm paket sürümleri yüklenebilir olduğunda en iyi sonucu verir.
Gilles 'SO- kötü olmayı kes'

10

Debian ailesinin içinde kalıyorsanız, evet, çok kolay bir şekilde aktarabilirsiniz. Şu anda yüklü paketleri listeleyin, bir dosyaya kaydedin ve yeniden yüklemek için bu dosyayı okuyun:

  1. Kurulu paketleri dosyaya kaydedin installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. Yeni yüklenen Debian tabanlı dağıtımınızda, kaydedilen paketleri yükleyin:

    sudo apt-get install $(cat installed)
    

Alternatif olarak, bunun için bir GUI aracı kullanabilirsiniz. Nane çok güzel bir tane var mintbackup:

mintbackup ekran görüntüsü

Ardından, yeni kurulumdan:

mintbackup'un başka bir ekran görüntüsü


Misiniz dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgeşdeğer? Ayrıca, RHEL / Fedora / CentOS'da yum install alien kullanmaya ne dersiniz?
Sergiy Kolodyazhnyy

1
Sadece seçimleri yeniden oluşturmayın, otomatik olarak yüklenen paketlerin listesini yeniden oluşturun, aksi takdirde dağınık hale gelir. Orada apt-clonebu otomatik hale hangi şimdi. Bkz. Unix.stackexchange.com/questions/191662/…
Gilles 'SO- kötü olmayı bırak'

Tutulan paketleri de kopyalamak faydalı olacaktır. yani Conky 1.9, Conky 1.10'un işleri berbat etmemesi için tutulur. Yanıtın bir kısmı AskUbuntu iş parçacığında olacaktır .
WinEunuuchs2Unix

1
Bu cevap en çok oy alan cevaptan daha hızlıdır ve apt-cloneyukarıdaki gibi çok sayıda hata mesajına sahip değildir . Bu hataların 1 / 3'ü yukarıdaki yorumda yayınlanmıştır.
WinEunuuchs2Unix

Harika görünüyorsunuz, ancak Ubuntu 18.04'te naneback kullanmak mümkün mü?
WebComer

1

Ayarlar genellikle içinde saklanır /etc/. etckeeper kullanışlı olabilir. Ana amacı /etc/bir git deposuna dönüşmektir, ancak iyi anlarsam kopyalamak istemeyeceğiniz bazı parçaları da filtreler. Bu nedenle, aşina iseniz , değişikliklerinizi yeni yüklemeyle birleştirmek için gitkullanmaktan daha iyi olabilirsiniz etckeeper.

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.