GNU/Linux >> Linux の 問題 >  >> Debian

Debian – 32ビット(x86)のDebianベースのシステムを64ビットに変換する方法は?

私は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 同様に。

関連:LVM物理ボリューム上の不良ブロックをチェックする方法は?

次に、Debianのクリーンな再インストールを行い、すべてのユーザー、おそらくロールなどを再作成します。

dpkg --set-selections < packagelist; apt-get -f install

バックアップしたディレクトリ、ファイルをコピーして戻すと、ほとんど完了です。

このアプローチの欠点の1つは、ライブラリを含むすべてのパッケージが手動でインストールされたものとしてマークされるため、パッケージがそれらに依存しなくなったときにアンインストールされないことです。


Debian
  1. Debian10にGradleをインストールする方法

  2. Debian10にAnyDeskをインストールする方法

  3. Debian –64ビットのDebian/ ubuntuで32ビットのプログラムを実行する方法は?

  1. Debianにインストールされているパッケージを一覧表示する方法

  2. Debian10Linuxでホスト名を変更する方法

  3. Nextcloud15をDebian9にインストールする方法

  1. Debian11にMonoをインストールする方法

  2. Debian11にLibreNMSをインストールする方法

  3. Debian10でsources.listを設定する方法