警告:私はこれをやっていないし、試してさえしません!

警告:私はこれをやっていないし、試してさえしません!

64ビットプロセッサで動作する32ビットシステムがあります。再インストールせずにどのようにフル64ビットに変換するのですか?どこかでこれが可能だと読んだ。新しいマルチアーキテクチャフレームワーク

ベストアンサー1

簡単に言うと:これは可能ですが複雑です。一番下の選択肢について説明しました。

今長い説明、最良のルートを選ばないかもしれませんので、塩を一粒ずつ受け入れてください。

可能です。最後の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は混乱しており、両方のバージョンが多数のパッケージをインストールします。機能の面で行う必要のある手動操作がたくさんあります。

より難しい:いくつかの重要なパッケージを交換して常にインストール用のバイナリをインストールできますが、一部のパッケージは削除して再インストールする必要があります。たとえば、tarring時にこの問題が発生しました。別のシステムからパッケージをインポートし、edからパッケージを抽出し、抽出したar p package.deb data.tar.gz | tar zxファイルscpをedscp -r ./* root@other_computer:/してバイナリを再利用できるようになりました。すすぎ、繰り返すと、scpedファイルが上書きされます。

私は何をしますか?

システムを切り替えるたびに、次の操作を行います。

/home/etc(多分/var、、、/usr/local変更した他のファイル、、/root...、YMMV)をバックアップしてください。

インストールされているパッケージのリストをインポートし、dpkg --get-selections > packagelist結果ファイルをコピーしますpackagelist

その後、Debian を完全に再インストールし、すべてのユーザーを再作成するか、ロールなどを作成します。

すべて再インストールしてくださいdpkg --set-selections < packagelist; apt-get -f install

バックアップディレクトリとファイルを再コピーすると、デフォルトで完了します。

このアプローチの1つの欠点:すべてのパッケージ(ライブラリを含む)は手動でインストールされているとマークされているため、依存するパッケージがないと削除されません。

おすすめ記事