古い AMD64 から 32 ビットの新しい Intel デュアルコアに移行することを検討しています。インストールは問題ありませんが、インストール済みのアプリをすべて移行できますか? 同様のプラットフォームとファイル システムへの移行を除いて、これまで Google で何も見つけることができませんでした。ファイルシステムは変更しませんが、プラットフォームは異なります。Gentoo の "World" ファイルの行に何かありますか?
7 に答える
パッケージのリストを簡単に保存できます。「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
(私のように)システムを台無しにする前にこれを行わなかった場合は、live-cdまたは別のインストールで起動し、chrootを使用してこの情報を取得できます。
sudo chroot /path/to/old/system /bin/bash
次にdpkg --get-selections
ダンスを行い、結果のファイルを使用して新しいシステムをセットアップできます。
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) ソースからインストールしたものはすべて、メモを取り、ソースから再度インストールする必要があります。
幸運を!
これが答えかどうかはわかりませんが、aptitude-create-state-bundle コマンドの存在を発見しました。はい、それは 1 つのコマンドです。マニュアルページをチェックしてください。
これは、同様の問題を解決するために私が一般的に行っていることです(新しいラップトップに数回移行しました)。
この質問に対する他の回答には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 ディレクトリを新しいシステム (" scp -r oldsystem:system-selections ~
") にコピーします。
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
(前述の) リモート ストレージを定期的にバックアップすることもできます。したがって、ラップトップが壊れたり盗まれたりした場合でも、同様のシステムを構築するのは非常に迅速です。
これについて私が考える最善の方法は、現在のシステムにインストールされているパッケージのリストをバックアップし、そのリストを使用して新しいシステムにインストールするパッケージを設定することです。パッケージの選択をバックアップおよび復元する方法に関する一般的な手順:
ツールのインストール
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 セッションが開きます。「I」と入力し、dselect が ubuntu-files ドキュメントにリストされているパッケージをインストールできるようにします。終了したら、「Q」と入力して ENTER キーを押し、dselect を終了します。