web-dev-qa-db-ja.com

Ubuntu、既存のマシンのように新しいマシンをセットアップする方法

必要なアプリを1台のマシンでセットアップしましたが、新しいUbuntuボックスに同じものをインストールしたいと思います。

インストールされているすべてのアプリを一覧表示するスクリプトがあるので、ボックスを比較して不足しているアイテムを追加できますか?

よろしくお願いします、Chris

27
Chris Kimpton

Pjzで言及されているdpkgのトリックだけでなく、 etckeepertutorial )-/ etc/*をバージョン管理下に置いて、行った変更を見つけて他のサーバーに複製するのが簡単です。

また、pjzの方法で生成されるリストよりも短いリストの場合は、

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

これにより、依存関係として必要な他のすべてのパッケージをインストールするパッケージのリストが表示されます。リストを実際に調べたい場合に役立ちます。 (dpkg --get-selectionsはloooongリストを生成します)。さらに、リストは十分に短いため、改行を追加したり、「#」でエントリをコメントアウトしたりできます。次に、あなたができる追加のパッケージをインストールするとき

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

このように、一部のマシンにのみインストールしたいパッケージがある場合、それらをパッケージリストから完全に削除する必要はありません。

18
Hamish Downer
dpkg --get-selections >/tmp/mypackagelist

トリックを行う必要があります。次に、新しいマシンの/etc/apt/sources.listに古いものと同じエントリのセットがあることを確認した後、mypackagelistを新しいマシンにコピーして実行します。

cat mypackagelist | xargs apt-get -y install 

そして、あなたは行ってもいいはずです。

Dpkg --get-selections行も、/ etc/dirに時々置くのに適した情報であることに注意してください。これは、/ bin /や/ usr/bin /などをバックアップする必要がないことを意味します。システム上にあるパッケージ。

17
pjz

より良いdpkgコマンドは[オリジナルのマシン]かもしれません

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

その後、[新しいマシン; packages_listを転送した後]

Sudo dpkg --set-selections < packages_list
Sudo apt-get -u dselect-upgrade
2
Benji

Ubuntuフォーラムには 良い答え があります

  1. 古いマシン:$ dpkg --get-selections> installed-software
    • インストールされているアプリのリストを取得します
  2. 新しいマシン:$ dpkg --set-selections
    • これにより、現在新しいマシンにインストールされていないパッケージをインストールするように新しいマシンが設定されます。
    • 新しいマシンに古いマシンにインストールされていないパッケージがあるかどうかを確認するのは興味深いかもしれません。そのため、新しいマシンでdpkg --get-selections>コマンドを見つけ、diffを使用して両方の出力ファイルを比較します。
  3. 最後に、新しいマシンで:$ dselectとパッケージがインストールされます。

フォーラムディスカッションからの追加リンク:

  1. gpgキーを忘れないでください (同じスレッドから)
  2. 必要なすべてのパッケージをインストールし、すべての不要なパッケージをアンインストールする方法
2
pcapademic

あなたのためにそれを行うことができるReMasterSysと呼ばれるツールがあります。参照 http://geekconnection.org/remastersys/

お役に立てれば幸いです。

1
user46844

FSArchiver を使用してマシンを複製することは完全に許容されます。それ以外の場合は、便利なコマンドのペアを以下に示します。前半はバックアップcronに追加することもできます。

debconf-get-selections
debconf-set-selections

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

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

複製する必要がある場所は/ etcと/ varです。上記のコマンドは/ var内のいくつかのファイルを直接操作し、/ etc内のいくつかのconffileはdebconfを介して間接的に操作します。これらのサブツリーを複製してaptitudeを実行するだけで同じ効果が得られます。

1
Tobu

CLIファンではない場合は(実際にそうする必要がありますが)、Synapticパッケージマネージャーを使用してインストールされたパッケージのイメージを保存し、そのファイルを(再びSynapticを介して)使用して新しいマシンをロードできます。ファイル/マーキングを保存オプションの下に、「完全な状態を保存」というチェックボックスがあります。

1
Nerdfest

ddを使用してマシンのクローンを作成しないのはなぜですか?

1
elcuco

Docker はこれを行う方法だと思います-Dockerfileで要件を定義します-その後、任意のDockerホストで実行できます。

0
Chris Kimpton