Ubuntuを別のプラットフォームに移行するときに、インストールされたアプリケーションを保持するにはどうすればよいですか?
質問
古いAMD64から32ビットの新しいIntelデュアルコアへの移行を検討しています。インストールは問題ありませんが、インストールされているすべてのアプリを転送できますか?私は行ったことがない 同様のプラットフォームとファイルシステムへの移行を除き、これまでにGoogleで何かを見つけることができます。ファイルシステムは変更しませんが、プラットフォームは異なります。 「世界」の行に何かありますかGentooのファイル?
解決
パッケージのリストを簡単に保存できます。" man dpkg"を参照してください。 --set-selectionsおよび--get-selectionsを検索します。
基本は、パッケージのリストを保存することです:
dpkg --get-selections> package_list
別のシステムでそのリストを復元するには:
cat package_list | sudo dpkg --set-selections&& sudo apt-get dselect-upgrade
アーキテクチャ間を移動すると、一部のパッケージが利用できなくなります。それらは無視されます。たとえば、 ia32-libs
は32ビットシステムにはインストールできません。 x86-64からx86に移動する場合、その選択は無視されます。
他のヒント
おもしろい、ここではハウツーリポジトリとしてSOを使用していました(質問を書いてから自分の回答を選択します)が、自分の回答を書くのに時間がかかったので、パンチを3回叩かれました!
とにかく、記録の私の見解は次のとおりです。
dpkgの--get-selectionsおよび--set-selectionsオプションを使用して、現在インストールされているパッケージをキャプチャおよび選択します。
まず、現在のパッケージリストを古いシステムにエクスポートします。
sudo dpkg --get-selections > mypackages.txt
次に、新しいシステムにインストールするパッケージとしてこのリストを選択します。
sudo dpkg --set-selections < mypackages.txt
(追加のクレジットについては、ダウンロードを最小限に抑えるためにaptキャッシュディレクトリをコピーします: / var / cache / apt)
最後に、選択したパッケージをダウンロードしてインストールするようaptに指示します。
sudo apt-get dselect-upgrade
インストールにapt-getを使用したすべての場合、インストールしたものの記録を作成する場合は、次を実行します。
dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt
これにより、インストールしたすべてのパッケージを含むテキストファイルが作成されます。次に、インストールを実行した後、次を使用してスクリプトを作成して実行します。
#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done
注:
1)64ビットから32ビットに移行しているため、一部のパッケージには互換性がない可能性があります。上記のスクリプトを実行する前に、'64 'のpackages.txtをgrepし、必要な場合は代替を見つけます。
2)ソースからインストールしたものはすべて書き留めて、ソースから再度インストールする必要があります。
がんばって!
(私のように)システムを台無しにする前にこれをしなかった場合、live-cdまたは別のインストールで起動し、chrootを使用してこの情報を取得できます。
sudo chroot /path/to/old/system /bin/bash
次に、 dpkg --get-selections
ダンスを実行し、結果のファイルを使用して新しいシステムをセットアップできます。
これは、同様の問題を解決するために私が通常行うことです(新しいラップトップに数回移行します)。
この質問に対する他の回答に2つの追加があります。これにより、 update-alternatives
および debconf
の設定も移動します。転送されませんでした。
古いシステムでのバックアップ:
sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections
configディレクトリを新しいシステムにコピーします(&quot; scp -r oldsystem:system-selections〜
&quot;):
sudo apt-get install dselect debconf-utils
sudo dselect update
sudo dpkg --set-selections < system-selections/dpkg-selections
sudo debconf-set-selections < system-selections/debconf-selections
sudo apt-get -u dselect-upgrade
sudo update-alternatives --set-selections < system-selections/alternatives-selections
また、同じ方法を使用して、ホームディレクトリと system-selections
(上記)のバックアップを定期的にリモートストレージに取得することもできます。したがって、ラップトップが壊れたり盗まれたりした場合、同様のシステムを構築するのは非常に高速です。
これが答えかどうかはわかりませんが、aptitude-create-state-bundleコマンドの存在を発見しました。はい、それは1つのコマンドです。マニュアルページをご覧ください。
これについて考える最良の方法は、現在のシステムにインストールされているパッケージのリストをバックアップし、そのリストを使用して新しいシステムにインストールするパッケージを設定することです。パッケージの選択をバックアップおよび復元する方法に関する一般的な手順:
ツールのインストール
sudo apt-get install dselect
バックアップパッケージリスト
dpkg --get-selections | grep -v deinstall > ubuntu-files
パッケージ選択の復元
sudo apt-get update
sudo apt-get dist-upgrade
dpkg --set-selections < ubuntu-files
sudo dselect
これにより、dselectセッションが開きます。タイプ&#8216; I&#8216; dselectを許可します ubuntu-filesドキュメントにリストされているパッケージのインストール。 終了したら、&#8216; Q&#8216;と入力しますEnterキーを押してdselectを終了します。