Saya memiliki sistem 32-bit yang berjalan pada prosesor 64-bit. Bagaimana cara mengubahnya menjadi all-64-bit, tanpa menginstal ulang? Saya telah melihat di suatu tempat bahwa itu bisa dilakukan sebagai hasil dari kerangka kerja Multiarch baru .
36
Jawaban:
TL; DR: Itu bisa dilakukan, tetapi rumit. Saya telah menguraikan alternatif di bagian bawah.
Sekarang deskripsi panjang , dan bawa 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 menggambarkan cara sekolah lama tanpa dukungan banyak orang. Sangat membantu untuk memperbaiki paket yang rusak.
Untuk memigrasi sistem basis Anda, lakukan ini :
Beberapa paket Anda kemudian 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 tetap menggunakan i386. Jika Anda ingin mengatasinya, lewati bagian yang sulit;)Menggunakan
dpkg --get-selections | grep :i386
akan mengembalikan semua paket Anda, bahwa Anda masih harus bermigrasi.Gagasan saya selanjutnya adalah:
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 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, misalnya saya mengalami masalah dengan tar. Saya menjalankan paket pada sistem lain, mengekstrak paket melalui
ar p package.deb data.tar.gz | tar zx
dan kemudian mengeditscp
file yang diekstrak melaluiscp -r ./* root@other_computer:/
, sehingga binari tersedia lagi. Bilas dan ulangi, danscp
file ed akan ditimpa.Apa yang akan saya lakukan sebagai gantinya
Saya telah melakukan yang berikut, setiap kali saya mengganti 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 dihasilkanpackagelist
juga.Kemudian lakukan instal ulang yang bersih dari Debian, buat semua pengguna lagi, mungkin peran, dll.
Instal ulang semua paket dengan
dpkg --set-selections < packagelist; apt-get -f install
.Salin kembali direktori, file, dan cadangan yang sudah Anda buat.
Satu kelemahan dari pendekatan itu: Semua paket Anda, termasuk perpustakaan, akan ditandai sebagai yang diinstal secara manual, sehingga tidak akan dihapus instalasinya, ketika tidak ada lagi paket yang bergantung padanya.
sumber
apt-mark showauto
untuk mengekspor daftar yang diinstal secara otomatis danapt-mark auto
untuk menandainya dalam instalasi baru.x86_64
, dan tidak peduli apakah paket sistem saya tidak menggunakan prosesor 64-bit secara optimal ? Saya juga menjalankan OS 32-bit. Saya kira saya pikir prosesor saya 32-bit ketika saya pertama kali menginstal :(Jawaban lain di sini menunjukkan bahwa walaupun secara teori ini mungkin, itu sangat kompleks dan mungkin tidak sepadan dengan usaha. Namun, Anda dapat melakukan instalasi yang bersih dan membuat prosesnya relatif tidak menyakitkan jika Anda tetap
$HOME
menggunakannya.Proses umumnya akan
Buat cadangan dari daftar paket yang diinstal dan daftar paket yang diinstal secara otomatis.
Perhatikan bahwa Anda mungkin juga ingin menghapus arsitektur dari nama paket apa pun yang telah Anda instal menggunakan multiarch :
Jika Anda
/home
adalah partisi yang terpisah, pastikan untuk tidak memformatnya selama proses instalasi. Jika tidak ada di partisi terpisah, buat cadangan yang bisa Anda pulihkan nanti:Setelah Anda menginstal sistem baru Anda, instal paket yang hilang
Kembalikan $ HOME Anda. Salin file tgz dan ekstrak di direktori $ HOME Anda:
Anda mungkin juga ingin melihat alat-alat yang disediakan Mint untuk membuatnya lebih mudah. Mereka semua harus dapat diinstal di Ubuntu juga.
sumber
Secara teori itu mungkin, tetapi kemungkinan berbahaya. Debian multiarch saat ini mendukung lib multiarch, tetapi bukan binari. Jadi begitulah.
Sistem ini terutama memahami arsitekturnya sendiri
dpkg-architecture
(yang sebenarnya merupakan skrip perl, tetapi mengekstrak info lengkung dan menampilkannya), yang juga mengklaim dapat mengatur arsitektur.PERINGATAN: SAYA TIDAK TELAH MELAKUKANNYA INI ATAU BAHKAN !!!
Proses kasarnya adalah:
libgcc1
)dpkg-architecture -aamd64
untuk menggeser lengkungan Anda (Catatan, mungkin mengeluh tentang GCC)dpkg
dan dependensi amd64apt-get
dan kernel (Catatan, itu mungkin mengeluh BANYAK)apt-get
Langkah-langkah ini didasarkan pada apa yang saya ketahui tentang desain Debian telah menggunakannya hampir secara eksklusif di antara distro Linux selama 12 tahun terakhir (termasuk yang telah digunakan
debtakeover
sebelumnya) dan pendekatan yang akan saya ambil. Jadi pertimbangkan ini dengan risiko Anda sendiri . Sistem Anda mungkin menjadi tidak dapat digunakan setiap saat setelah mencoba langkah 4. Alternatif untuk langkah 4 & 5 mungkin menjadidebbootstrap
.Yang paling penting, saya sangat menyarankan mencoba ini pada VM sebelum melakukannya pada apa pun yang Anda pedulikan.
Semoga sukses, dan Semoga the Force menyertai Anda .
sumber
Bukan jawaban untuk pertanyaan, tetapi mungkin sulit untuk meningkatkan semua paket dari x86 ke amd64, tetapi Anda setidaknya dapat dengan mudah menginstal paket kernel amd64, yang setidaknya akan memungkinkan Anda untuk menjalankan aplikasi 64 bit dan mesin virtual dan wadah ( yang mungkin cukup untuk apa yang Anda butuhkan).
Cukup instal paket amd64 linux-image dengan
dpkg -i --force-architecture
.sumber
--force-architecture
tidak diperlukan, dan kernel amd64 dapat diinstal melalui apt pada i386.Ada beberapa manual di luar sana, tetapi hampir tidak ada yang menunjukkan apa yang benar-benar diharapkan. Saya menulis ini di laptop Debian Wheezy yang baru saja saya selesaikan dari 32 bit ke 64 dan memang berhasil.
Saya mengikuti instruksi ini dan mereka benar-benar akurat tentang apa yang sebenarnya akan Anda hadapi:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
Sebuah rekomendasi adalah untuk menjaga sistem tetap hidup selama seluruh proses, jangan reboot kecuali Anda yakin bahwa Anda telah memigrasi semuanya dan bahwa semua yang dihapus telah diinstal kembali (terutama paket-paket penting), atau Anda tidak akan menjalankan sistem lagi.
sumber
Mengikuti ide menggunakan awk , saya akhirnya menggunakan:
Saya harus menjalankannya beberapa kali.
dpkg --get-selections
hanyalah daftar alfabet, sehingga paket di bagian atas yang memerlukan paket di bagian bawah akan dilewati. Jika Anda ingin melihat berapa banyak yang sedang diinstal, lakukandpkg --get-selections | grep amd64 | wc -l
di dalamwhile
loop.sumber
Saya memiliki sedikit pengalaman dengan masalah ini, tetapi saya percaya bahwa Anda benar ketika Anda mengatakan konversi dari 32 ke 64 harus mampu dengan multi-lengkungan. Saya akan berhati-hati tentang seberapa baik didukung sistem baru ini.
Berikut adalah salah satu dokumen yang saya baca yang membahas masalah ini, mungkin ini akan membantu Anda: https://wiki.ubuntu.com/MultiarchSpec
Perhatikan Kisah Pengguna ketiga. Berikut ini tautan lain seputar topik yang sama: https://help.ubuntu.com/community/MultiArch
Meskipun mungkin sedikit berbeda antara Debian dan Ubunutu, ini adalah fitur inti. Yang saya bayangkan Ubuntu dan Debian akan bekerja erat untuk mendapatkan struktur ini berfungsi di tanah sebelum Ubuntu menarik diri dan melakukan sesuatu yang mereka sukai.
Semoga berhasil!
sumber