私は64ビットプロセッサで動作する32ビットシステムを持っています。再インストールせずに、すべて64ビットに変換するにはどうすればよいですか?新しいMultiarchフレームワークの結果として実行可能であることがどこかで見られました。
承認された回答:
TL; DR: それは実行可能ですが、複雑です。下部に代替案の概要を示しました。
長い説明 、そして私が最善のルートをとっていなかったかもしれないので、それを一粒の塩と一緒に取ってください:
 それは可能であり、これが私が最後の2泊でしたことです:
マルチアーチサポートなしの昔ながらの方法を説明するwikiエントリがあります。壊れたパッケージを修正するのに役立ちます。
ベースシステムを移行するには、次のようにします。
$ dpkg --print-architecture
i386
# dpkg --add-architecture amd64
$ dpkg --print-foreign-architectures
amd64
# apt-get update
# apt-get download gcc-4.6-base:amd64 libgcc1:amd64 libc6:amd64 \
          libselinux1:amd64 zlib1g:amd64 libbz2-1.0:amd64 dpkg:amd64
# dpkg -i gcc-4.6-base*.deb libgcc*.deb libc*.deb libselinux*.deb \
          libbz2*.deb zlib*.deb dpkg*.deb
$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
 
 その場合、パッケージの一部はamd64になりますが、ほとんどはi386のままになります。 apt-get upgrade いくつかのパッケージを処理します、apt-get -f install 一部のエラーは修復されますが、それでもほとんどのパッケージはi386のままです。これに対処したい場合は、トリッキーな部分をスキップしてください😉
 dpkg --get-selections | grep :i386 すべてのパッケージが返されますが、それでも移行する必要があります。
私の次のアイデアは次のことでした:
# apt-get install `dpkg --get-selections \
  | grep i386 \
  | awk {'gsub(/:i386/, ":amd64"); print $1'}`
 しかし、それは悪い考えであることが判明しました。一部のパッケージはamd64(libc6-i686など)で使用できず、apt-getは混乱し、多くのパッケージが両方のバージョンにインストールされます。適性のある多くの手作業が行われることになっています。
 さらなる困難: 一部の重要なパッケージは交換できるため、インストールのために常にバイナリをインストールできますが、一部のパッケージは削除して再度インストールする必要があります。私はタールでこの問題を抱えていました。別のシステムでパッケージを取得し、ar p package.deb data.tar.gz | tar zx 次にscp 抽出されたファイルをscp -r ./* [email protected]_computer:/を介して編集しました 、したがって、バイナリが再び利用可能になります。すすぎ、繰り返し、scp edファイルは上書きされます。
代わりに私がすること
システムを切り替えるたびに、次のことを行いました。
 /homeをバックアップします 、/etc (そして多分/var 、/usr/local 、変更した他のファイル、/root 、…、YMMV)。
 dpkg --get-selections > packagelistを使用してインストール済みパッケージのリストを取得します 結果のファイルをコピーしますpackagelist 同様に。
次に、Debianのクリーンな再インストールを行い、すべてのユーザー、おそらくロールなどを再作成します。
 dpkg --set-selections < packagelist; apt-get -f install 。
バックアップしたディレクトリ、ファイルをコピーして戻すと、ほとんど完了です。
このアプローチの欠点の1つは、ライブラリを含むすべてのパッケージが手動でインストールされたものとしてマークされるため、パッケージがそれらに依存しなくなったときにアンインストールされないことです。