インストール済みのパッケージと設定をあるディストリビューションから別のディストリビューションに転送するにはどうすればよいですか?


15

私は数か月間、VirtualBoxを介してLinuxシステムについて学習し、調査してきました。これをメインOSにして、ハードドライブにインストールすることにしました。HDDに直接インストールするときに引き継ぎたいファイル、パッケージ、および設定(.bashrcへの変更など)がありますが、これを行うにはどうすればよいですか?また、同様のDebianまたはRPMに切り替えることにした場合、今はUbuntuを実行しています。RHELベースのディストリビューションは同じプロセスでしょうか。考慮すべきことはありますか?


UbuntuはDebianの派生物です。パッケージはすべて同じ名前、パッケージ管理、構成などを持ち、すべて非常に似ているため、Debian派生物はすべて非常に似ています。ただし、FedoraやCentOSなどのRed Hatディストリビューションは、基本的に同じソフトウェアですが、パッケージ管理などの点ではそれほど似ていません。ただし、ほとんどの場合、DebianファミリーのOSからRHファミリーのOSにsettings / configなどをコピーできる必要があります。
ファヒームミタ

回答:


31

パッケージ管理は、ディストリビューション間の主な差別化要因の1つです。関係のないディストリビューション間では、自動で何もできません。異なるディストリビューションは、ソフトウェアを異なるパッケージセットに分解し、異なる名前を使用します。

同じディストリビューションの同じバージョンを実行しているマシン間で、インストール済みパッケージのリストを再現することにより、同様のインストールを実現できます。aptDebianや派生物(Ubuntu、Mintなど)などのを使用するシステムでは、を使用しますapt-cloneDebianシステム間でインストール済みパッケージの選択を複製するにどうすればよいですか?を参照してください(Debian Wheezy)正確なコマンド。簡単に言えば、古いマシンで:

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

foo.apt-clone.tar.gz新しいマシンにコピーして実行

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

apt-cloneDebianとUbuntuなどの関連するディストリビューション間で機能する場合があります。その場合のrestore-new-distro代わりに使用しrestoreます。それが失敗した場合、使用マニュアルの方法をdpkg --get-selectionsし、apt-mark傾向が満たされるまで、パッケージリストとフィドル、と。

独自の設定の場合は、より簡単です。ホームディレクトリからドットファイルをコピーするだけです。原則として、システム全体ではなく、アカウントのハードウェアに関連しないものを構成します。これにより、それらを別のマシンに簡単にコピーできます。


以下の2番目の回答に対する利点は、低速のインターネットがスキップされ、高速のUSB 3を使用できるため、この方法が高速であることです。他の利点もあるかもしれません???
WinEunuuchs2Unix

@ WinEunuuchs2Unixパッケージのリストはわずか数キロバイトです。インターネット経由での転送は、USBドングルを見つけるよりも時間がかかりません。もちろん、マウントしてコピーするファイルを選択するなどの方法もあります。
ジル「SO-悪であるのをやめる」

@ジルバカ私。foo.apt-clone.tar.gzインストールされたすべてのバイナリの圧縮されたtarボールだと思いました。それが単にインストールされたパッケージのリストであることに気づかなかった。保留されているバージョン番号も含まれていますか?
WinEunuuchs2Unix

多くのエラー.... 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 apt-cloneには、保留パッケージを含むすべてのdpkg状態が含まれると思います。完全なインストールのクローンを作成する場合、まったく別の問題であることに注意してください:apt-cloneのポイントは、マシン1とマシン2の間よりもマシン2とパッケージミラーの間の帯域幅が大きい場合(または、マシン2のセットアップ中にマシン1をビジー状態に保ちたくないこと。ソースマシン上のすべてのパッケージバージョンがインストール可能な場合、Apt-cloneは最適に機能します。
ジル 'SO-悪であるのをやめる'

10

あなたがDebianファミリーにとどまっているなら、はい、それらを非常に簡単に転送できます。現在インストールされているパッケージをリストし、ファイルに保存し、そのファイルを読み取って再インストールするだけです。

  1. インストールされたパッケージをファイルに保存しますinstalled

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. 新しくインストールしたDebianベースのディストリビューションで、保存したパッケージをインストールします。

    sudo apt-get install $(cat installed)
    

または、このためにGUIツールを使用できます。Mintには、次のような非常に優れたものがありmintbackupます。

mintbackupのスクリーンショット

次に、新しいインストールから:

mintbackupの別のスクリーンショット


だろdpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkg等価であること?また、RHEL / Fedora / CentOSでyum install alienを使用するのはどうですか?
セルギーKolodyazhnyy

1
選択を再現するだけでなく、自動的にインストールされたパッケージのリストを再現しないと、面倒になります。これがapt-clone自動化されました。unix.stackexchange.com/questions/191662/を
ジル「SO-悪であるのをやめる」

保留パッケージもコピーすると便利です。つまり、Conky 1.9は、Conky 1.10で問題が発生しないように保持されています。答えの一部はAskUbuntuスレッドにあります
WinEunuuchs2Unix

1
この回答は、上位の回答よりも速く、apt-clone上記のような多数のエラーメッセージはありません。上記のコメントに投稿されたエラーの1/3。
WinEunuuchs2Unix

素晴らしく見えますが、ubuntu 18.04でmintbackupを使用することは可能ですか?
WebComer

1

設定は通常に保存され/etc/ます。 etckeeperは便利です。その主な目的は/etc/gitリポジトリにすることですが、よく理解していれば、コピーしたくない部分も除外します。そのため、に精通している場合はgit、使用etckeeperして変更を新しいインストールにマージすることをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.