Ubuntu 32->64 bit
May. 28th, 2015 08:23 pmИ снова про обновление [Ubuntu 14.04] с 32 бит на 64
Оказывается, за прошедшие 5 с небольшим лет этот процесс стал намного проще :
(часть рецепта заимствована с http://askubuntu.com/questions/81824/how-can-i-switch-a-32-bit-installation-to-a-64-bit-one)
dpkg --get-selections > pkg1 dpkg --add-architecture amd64 apt-get update apt-get install linux-image-generic:amd64 gcc-multilib update-grub reboot
После этого система поднимается с 64-битным ядром
Далее:
apt-get install apt:amd64 apt-get -f install # здесь многие 32-битные пакеты меняются на 64-битные
И далее сносите всё остальное, что у вас было поставлено под i386, и по сохранённом ранее файлу pkg1 переустанавливаете
В некоторых местах придётся подтвердить удаление важных пакетов
Самое сложное - это заменить libc-bin:i386 на libc-bin:amd64, где лежат критически важные программы ldconfig и locale, используемые во многих скриптах установки пакетов
Там придётся скачать 64-битный .deb и распаковать его вручную через ar+tar :
dpkg -r libc-bin:i386 cd /tmp ar -x /var/cache/apt/archives/libc-bin_2.19-0ubuntu6.6_amd64.deb tar -C / -xpf data.tar.gz rm debian-binary control.tar.gz data.tar.gz dpkg -i /var/cache/apt/archives/libc-bin_2.19-0ubuntu6.6_amd64.deb
Я обновил так довольно сложную и старую конфигурацию сервера с кучей сервисов (apache2.4+php5+несколько веб-аппов на php, bind9, squid3, mysql-server-5.5, postfix, postgrey, amavisd-new, samba+winbind, clamav, ntpd, pptpd, isc-dhcp-server, fail2ban, arpwatch, iptables, radvd), причём удалённо через ssh. И мне ни разу не приходилось доступаться к его локальной консоли, чтобы починить какой-либо внезапный косяк.
Прям таки снимаю шляпу перед полировщиками Ubuntu 14.04 LTS
Единственное, на что надо обратить особое внимание, это обновление postgresql. Делать это рекомендуется только через pg_dumpall или pg_upgradecluster, т.к. формат датафайлов 64-битного Постгреса отличается от 32-битного. Это же касается обновления первой или второй цифры версии PgSQL без изменения битности.