Такой подход очень сложен и вряд ли когда-либо приведет к тому, что все ваши пакеты будут одинаковыми amd64
версия вместо i386
версия. Только пакеты, которые фактически получают обновления, скорее всего, будут изменены в архитектуре, и, вероятно, только в том случае, если никакие другие пакеты, которые не обновляются, не зависят от их принадлежности к i386
архитектура. Поскольку некоторые пакеты не будут получать какой-нибудь обновления на протяжении всего цикла поддержки вашего выпуска Ubuntu, скорее всего, у вас никогда не будет полностью amd64
система, использующая такую технику. Более того, такой подход, безусловно, не пользуется официальной поддержкой.
Вам было бы разумно вместо этого заменить существующую систему Ubuntu новой 64-разрядной установкой.
Однако, если вы действительно хотите попробовать эту технику, вам придется вручную загрузите .deb
файлы для dpkg
и apt
. Вы можете найти их в dpkg
в Ubuntu и apt
в Ubuntu страницы на панели запуска - разверните последнюю версию в разделе "Oneiric Ocelot", которая помечена как релиз, безопасность и / или обновления (но вы, вероятно, не хотите, чтобы версия была помечена только как предлагаемая и / или бэкпорты, если таковая вообще существует). Затем загрузите .deb
файлы, помеченные amd64
. В частности, файлы, которые вам понадобятся, это: этот для dpkg
(и другие перечисленные тоже, если у вас установлены эти пакеты) и этот и этот и этот и этот и этот для apt
.
Прежде чем что-либо делать с этими файлами, вы должны убедиться, что создали резервные копии всех важных документов в вашей установленной системе Ubuntu и любых других важных файлов (например, музыки, электронных книг, видео), поскольку весьма вероятно, что попытка этого метода приведет к неприятным последствиям и сделает вашу систему Ubuntu полностью непригодной для использования.
Вы можете установить все эти пакеты, поместив их в папку, которая больше ничего не содержит (предположим, что папка называется debs
и находится внутри вашего Downloads
каталог), а затем выполните эту команду:
sudo dpkg -Ri ~/Downloads/debs
Конечно, после того, как вы их установили, они фактически не будут запускаться, потому что их исполняемые файлы 64-разрядные, а ваша 32-разрядная система Ubuntu работает под управлением 32-разрядного ядра (которое будет запускать только 32-разрядные исполняемые файлы). Фактически, они могут даже не завершить установку, поскольку у них могут быть сценарии после установки, которые вызывают их неуправляемые 64-разрядные исполняемые файлы.
Существуют различные способы установки 64-разрядного ядра на 32-разрядную систему, но все они чрезвычайно сложны, поэтому вместо этого я рекомендую вам загрузиться с 64-разрядного компакт-диска Oneiric live CD (который сам запускает 64-разрядное ядро)., chroot в установленную систему Ubuntu и используйте недавно установленную 64-разрядную apt
и dpkg
для установки 64-разрядного ядра.
Вот конкретные инструкции для этого ... но, пожалуйста, не воспринимайте это как то, что я говорю, что это сработает. Я не пытался этого сделать. (Я подключался к установленным системам Ubuntu с live CD и выполнял управление пакетами и другие операции, но я не пытался выполнять операции с перекрестной архитектурой, предложенные здесь.)
В установленной системе Ubuntu откройте окно терминала (Ctrl+Alt+T) и запустить
mount | grep ' on / '
(вставив его в терминал и нажав enter). Вы должны увидеть что-то вроде/dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. Часть, которая вас интересует, - это имя устройства передon
(в этом примере это/dev/sda2
). Запомните это или запишите.Шаг 1 дал вам имя устройства для
/
раздел. Если у вас есть отдельный/boot
раздел, тогда вам также нужно будет знать имя устройства для этого. Так что в таком случае запускайтеmount | grep ' on /boot '
. Вы увидите что-то вроде/dev/sda1 on /boot type ext2 (rw)
Запомните или запишите и это тоже.Загрузитесь с Oneiric amd64 (т.е. 64-разрядного) live CD и выберите "Попробовать Ubuntu", а не "Установить Ubuntu".
Зайдите в веб-браузер и убедитесь, что подключение к Интернету полностью функционально. Если это не так, настройте его.
Откройте окно терминала и запустите
sudo mount /dev/sda2 /mnt
(заменить/dev/sda2
с именем устройства, которое вы получили на шаге 1, если оно отличается).Если ваша установленная система имеет отдельный
/boot
раздел, запуститеsudo mount /dev/sda1 /mnt/boot
(заменить/dev/sda1
с именем устройства, которое вы получили на шаге 2, если оно отличается).-
Теперь выполните эти команды, чтобы выполнить chroot в вашей установленной системе:
sudo mount --bind /dev /mnt/dev sudo chroot /mnt mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts
-
Бежать
ping -c 4 launchpad.net
чтобы проверить, полностью ли работает подключение к Интернету из chroot. Вы надеетесь на что-то подобное:PING launchpad.net (91.189.89.223) 56(84) bytes of data.64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=1 ttl=41 time=141 ms64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=2 ttl=41 time=143 ms64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=3 ttl=41 time=142 ms64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=4 ttl=41 time=140 ms--- launchpad.net ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3003ms
-
Если вместо этого вы не смогли передавать или получать пакеты, вам придется настроить подключение к Интернету в chroot. Для этого выполните следующие команды (чтобы выйти из chroot, скопируйте соответствующие файлы конфигурации из системы live CD в chroot и повторно введите chroot):
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old sudo cp /mnt/etc/hosts /mnt/etc/hosts.old sudo cp /etc/resolv.conf /mnt/etc/resolv.conf sudo cp /etc/hosts /mnt/etc/hosts
Хотя, как правило, вы должны остановить этот процесс, если есть ошибка, не беспокойтесь, если первая и / или вторая из этих четырех команд завершатся неудачей, при условии, что конкретный способ, которым она завершается неудачей, - это сообщить вам, что
/mnt/etc/resolv.conf
(или/mnt/etc/hosts
) не существует.Вставьте chroot обратно и повторите попытку:
sudo chroot /mnt ping -c 4 launchpad.net
-
Выполните эти команды, чтобы сделать вашу chrooted среду полностью готовой к использованию:
export HOME=/root export LC_ALL=C
Если вы еще не установили
.deb
файлы для 64-разрядных версийdpkg
иapt
, так и поступай сейчас. Если вы установили их, но возникли ошибки конфигурации, запуститеdpkg --configure -a
чтобы исправить их. (Надеюсь, это поможет work...it возможно, было бы лучше подождать с попыткой их установки, пока вы не окажетесь в среде live CD, в случае установки 64-разрядной версииdpkg
при загрузке в установленную систему оставляетdpkg
в непригодном для использования состоянии.)С 64-разрядными версиями
dpkg
иapt
установленные, предполагая, что они автоматически установят 64-разрядные пакеты, теперь вы можете удалить все свои 32-разрядные ядра и установить 64-разрядное ядро. Чтобы удалить 32-разрядные ядра, запуститеdpkg -l | grep linux-
. Здесь перечислены установленные пакеты, которые начинаются сlinux-
. Вас более конкретно интересуют пакеты, которые начинаются какlinux-generic
,linux-image
,linux-server
, и/илиlinux-headers
. Удалите эти файлы с помощьюapt-get purge ...
где...
заменяется списком удаляемых пакетов, разделенных пробелами.Теперь переустановите удаленные пакеты. (На самом деле, для пакетов, которые содержат номера версий в имени пакета, например
linux-image-3.0.0-13-generic
, вам нужно только установить имена пакетов с последними версиями.) Сделайте это, выполнивapt-get install ...
где...
заменяется списком устанавливаемых пакетов, разделенных пробелами.-
Обновите конфигурацию загрузчика, отключите некоторые устройства и оставьте chroot:
update-grub umount /proc || umount -lf /proc umount /sys umount /dev/pts exit sudo umount mnt/dev
Если бы ты убежал
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
и это не подвело, тогда теперь запускайтеsudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.Если бы ты убежал
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
и это не подвело, тогда теперь запускайтеsudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.Если ваша установленная система имеет отдельный
/boot
раздел, размонтируйте этот:sudo umount /mnt/boot
Отключите установленную систему от
/
раздел:sudo umount /mnt
Выйдите из окна терминала (запустите
exit
), затем перезагрузите (или выключите) систему live CD и загрузитесь в установленную систему.Проверьте, пригодна ли система для использования и работает ли 64-разрядное ядро (
uname -m
должен сказать, что архитектура являетсяx86_64
).
Вполне возможно, что вам потребуется установить дополнительные пакеты, такие как ia32_libs
и/или 64-разрядная версия libc6
, чтобы это сработало. Для некоторых из них вам может быть сообщено, что они вам понадобятся при попытке установить 64-разрядную версию dpkg
и/или apt
. Что касается других, то вы можете быть не проинформированы.
(Приведенные выше инструкции по укоренению и работе в среде с укоренением в значительной степени основаны на это связанная, но иная процедура а также на некоторых Ответы на панели запуска мои посты, особенно #6 здесь и №6 здесь. И особая благодарность Цезий за указание на то, что 64-разрядная dpkg
и apt
исполняемые файлы не будут запускаться в системе с 32-разрядным ядром.)