GNU/Linux >> Belajar Linux >  >> Debian

Debian – Bagaimana Mengubah Sistem Berbasis Debian 32-bit (x86) Menjadi 64-bit?

Saya memiliki sistem 32-bit yang berjalan pada prosesor 64-bit. Bagaimana cara mengubahnya menjadi semua-64-bit, tanpa menginstal ulang? Saya telah melihat di suatu tempat bahwa itu dapat dilakukan sebagai hasil dari kerangka kerja Multiarch yang baru.

Jawaban yang Diterima:

TL;DR: Itu bisa dilakukan, tetapi rumit. Saya telah menguraikan alternatif di bagian bawah.

Sekarang deskripsi panjangnya , dan ambil dengan sebutir garam, karena saya mungkin tidak mengambil rute terbaik:

Itu mungkin, dan inilah yang saya lakukan selama dua malam terakhir:
Ada entri wiki yang menjelaskan cara jadul tanpa dukungan multiarch. Sangat membantu untuk memperbaiki paket yang rusak.

Untuk memigrasikan sistem dasar Anda, lakukan ini:

$ 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

Beberapa paket Anda kemudian menjadi amd64, tetapi sebagian besar akan tetap i386. apt-get upgrade akan menangani beberapa paket, apt-get -f install akan memperbaiki beberapa kesalahan, tetapi sebagian besar paket akan tetap menggunakan i386. Jika Anda ingin mengatasinya, lewati bagian yang sulit

Menggunakan dpkg --get-selections | grep :i386 akan mengembalikan semua paket Anda, yang masih harus Anda migrasikan.

Ide saya selanjutnya adalah melakukan:

# apt-get install `dpkg --get-selections \
  | grep i386 \
  | awk {'gsub(/:i386/, ":amd64"); print $1'}`

Tapi ternyata itu ide yang buruk:beberapa paket tidak tersedia di amd64 (mis. libc6-i686), apt-get akan bingung, dan banyak paket akan diinstal di kedua versi. Banyak pekerjaan manual dalam bakat yang harus dilakukan.

Lebih banyak kesulitan: Beberapa paket penting dapat diganti, sehingga Anda akan selalu menginstal binari untuk instalasi, tetapi beberapa paket harus dihapus dan diinstal lagi, mis. Saya punya masalah dengan tar. Saya mendapatkan paket di sistem lain, mengekstrak paket melalui ar p package.deb data.tar.gz | tar zx lalu scp edit file yang diekstrak melalui scp -r ./* [email protected]_computer:/ , sehingga binari tersedia lagi. Bilas dan ulangi, dan scp file .ed akan ditimpa.

Apa yang akan saya lakukan sebagai gantinya

Saya telah melakukan hal berikut, setiap kali saya berpindah sistem:

Cadangkan /home , /etc (dan mungkin /var , /usr/local , beberapa file lain yang telah Anda ubah, /root , …, YMMV).

Dapatkan daftar paket yang diinstal dengan dpkg --get-selections > packagelist dan salin file yang dihasilkan packagelist juga.

Terkait:Bagaimana cara memeriksa blok buruk pada volume fisik LVM?

Kemudian lakukan instal ulang bersih Debian, buat semua pengguna lagi, mungkin peran, dll.

Instal ulang semua paket dengan dpkg --set-selections < packagelist; apt-get -f install .

Salin kembali direktori yang dicadangkan, file, dan Anda sudah selesai.

Satu kelemahan dari pendekatan itu:Semua paket Anda, termasuk perpustakaan, akan ditandai sebagai diinstal secara manual, sehingga tidak akan dihapus instalasinya, ketika tidak ada paket yang bergantung padanya lagi.


Debian
  1. Cara Menginstal Gradle di Debian 10

  2. Cara Menginstal AnyDesk di Debian 10

  3. Debian – Bagaimana Cara Menjalankan Program 32-bit Pada Debian/ubuntu 64-bit?

  1. Cara Mendaftar Paket yang Terinstal di Debian

  2. Cara Mengubah Nama Host di Debian 10 Linux

  3. Cara Menginstal Nextcloud 15 di Debian 9

  1. Cara Menginstal Mono di Debian 11

  2. Cara Menginstal LibreNMS di Debian 11

  3. Cara Mengkonfigurasi sources.list di Debian 10