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:/
してバイナリを再利用できるようになりました。すすぎ、繰り返すと、scp
edファイルが上書きされます。
私は何をしますか?
システムを切り替えるたびに、次の操作を行います。
/home
、/etc
(多分/var
、、、/usr/local
変更した他のファイル、、/root
...、YMMV)をバックアップしてください。
インストールされているパッケージのリストをインポートし、dpkg --get-selections > packagelist
結果ファイルをコピーしますpackagelist
。
その後、Debian を完全に再インストールし、すべてのユーザーを再作成するか、ロールなどを作成します。
すべて再インストールしてくださいdpkg --set-selections < packagelist; apt-get -f install
。
バックアップディレクトリとファイルを再コピーすると、デフォルトで完了します。
このアプローチの1つの欠点:すべてのパッケージ(ライブラリを含む)は手動でインストールされているとマークされているため、依存するパッケージがないと削除されません。