Хорошо, конечно, это не будет, потому что у Вас больше не будет библиотеки C.
Вся предварительная ссылка делает должен попытаться вычислить оптимальный адрес загрузки для каждой библиотеки так, чтобы никакая программа не имела перекрывающиеся библиотеки, затем обновить библиотеки так, чтобы они приняли значение по умолчанию к загрузке в том адресе.
Затем, когда программа запущена библиотеки, она использует, будут должны вряд ли быть перемещен, поскольку они могут, вероятно, быть загружены в их адресе по умолчанию.
Это находится в возможной теории, но вероятно предательской. Мультидуга Debian в текущей мультидуге поддержек освобождает, но не двоичные файлы. Таким образом, существует это.
Система, прежде всего, понимает свою собственную архитектуру от dpkg-architecture
(который является на самом деле сценарием жемчуга, но он извлекает информацию о дуге и отображает его), который также утверждает, что смог установить архитектуру.
Грубый процесс был бы:
libgcc1
)dpkg-architecture -aamd64
смещать Вашу дугу (Примечание, это может жаловаться на GCC),dpkg
и зависимостиapt-get
и ядро (Примечание, это может жаловаться МНОГО),apt-get
Эти шаги на основе того, что я знаю дизайна Debian, использовавшего его почти исключительно среди дистрибутивов Linux за прошлые 12 лет (включая то, что использовал debtakeover
прежде) и подход, который я проявил бы. Поэтому рассмотрите это на Ваш собственный риск. Ваша система может стать неприменимой любое время после делания попытку шага 4. Альтернатива для шагов 4 и 5 могла бы быть debbootstrap
.
Самое главное я высоко предлагаю пробовать это на VM прежде, чем сделать его на чем-либо, о чем Вы заботитесь.
Удача, и Да пребудет с вами Сила.
Не ответ на вопрос, но может быть трудно обновить все пакеты от x86 до amd64, но можно по крайней мере легко установить amd64 пакет ядра, который, по крайней мере, позволит Вам запускать приложения на 64 бита и виртуальные машины и контейнеры (который может быть достаточно, для какого Вам нужно).
Просто установите amd64 пакет изображения Linux с dpkg -i --force-architecture
.
--force-architecture
не нужно, и amd64 ядро может быть установлено через Кв. на i386.
– jordanm
26.08.2012, 23:59
У меня есть небольшой опыт с вопросом, но я действительно полагаю, что Вы корректны, когда Вы говорите, что преобразование от 32 до 64 должно быть способным с мультидугой. Я был бы осторожен, хотя о том, как хорошо поддерживаемый эта новая система.
Вот один из документов, что я считал, что обсудил вопрос, возможно, это поможет Вам: https://wiki.ubuntu.com/MultiarchSpec
Заметьте третьи Пользовательские Истории. Вот другая ссылка вокруг той же темы: https://help.ubuntu.com/community/MultiArch
Даже при том, что это могло бы немного отличаться между Debian и Ubunutu, это - базовая функция. Который я вообразил бы Ubuntu, и Debian будет тесно сотрудничать для получения этой структуры, функционирующей на земле, прежде чем Ubuntu разделила бы и сделала бы что-то вроде их собственной симпатии.
Удачи!
TL; DR: Это выполнимо, но сложное. Я обрисовал в общих чертах альтернативу внизу.
Теперь длинное описание, и берет его с мелкой частицей соли, поскольку я не мог следовать оптимальным маршрутом:
Это возможно, и здесь - то, что я сделал в течение прошлых двух ночей: существует запись 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), склонны - добираются, будет перепутан, и много пакетов будет установлено в обеих версиях. Большой физический труд в способности должен быть сделан.
Больше трудности: Некоторые существенные пакеты могут быть заменены, так, чтобы Вам всегда устанавливали двоичные файлы для установки, но некоторые пакеты должны будут быть удалены и установлены снова, например, у Меня была эта проблема с tar. Я wgot пакеты в другой системе, извлеченной пакеты через ar p package.deb data.tar.gz | tar zx
и затем scp
редактор извлеченные файлы через scp -r ./* root@other_computer:/
, таким образом, двоичные файлы доступны снова. Промывка и повторение, и scp
файлы редактора будут перезаписаны.
Что я сделал бы вместо этого
Я сделал следующее, каждый раз, когда я переключил системы:
Создать резервную копию /home
, /etc
(и возможно /var
, /usr/local
, некоторые другие файлы Вы изменились, /root
..., YMMV).
Получите список установленных пакетов с dpkg --get-selections > packagelist
и скопируйте получающийся файл packagelist
также.
Затем сделайте чистое переустанавливает Debian, создает всех пользователей снова, возможно, роли, и т.д.
Переустановите все пакеты с dpkg --set-selections < packagelist; apt-get -f install
.
Скопируйте назад сохраненные каталоги, файлы, и Вы главным образом сделаны.
Одна оборотная сторона к тому подходу: Все Ваши пакеты, включая библиотеки, будут отмечены, как вручную установлено, таким образом, они не будут удалены, когда никакой пакет не будет больше зависеть от них.
apt-mark showauto
экспортировать автоустановленный список и apt-mark auto
отметить их в новой установке. А-ч
– Adrien Clerc
21.12.2013, 12:26
x86_64
, и не заботьтесь, не используют ли мои системные пакеты 64-разрядный процессор оптимально? Я также выполняю 32-разрядную ОС. Я предполагаю, что думал, что мой процессор был 32-разрядным, когда я сначала сделал :(
– jberryman
05.06.2015, 00:29
Существует довольно много руководств там, но едва любое шоу, что действительно ожидать. Я пишу это на Хрипящем ноутбуке Debian, который я только что закончил обновлять от 32 битов до 64, и он действительно работает.
Я следовал этим инструкциям, и они были действительно точны на том, с чем Вы на самом деле столкнетесь:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
Рекомендация состоит в том, чтобы сохранить систему приводимой в действие посредством целого процесса, не перезагружайте, если Вы не уверены, что переместили все и что все, что было удалено, было установлено снова (особенно существенные пакеты), или Вы не получите систему, работающую снова.
Следуется Идея, используя awk , я оказался использовать:
dpkg --get-selections \ # get the list
| grep -v deinstall \ # throw away deselected packages
| grep ':i386' \ # get the i386 arch packages
| sed 's/install//g' \ # drop 'install' to get list
| sed 's/:i386/:amd64/g' \ # replace i386 with amd64
| while read package; do \ # iterate over the result
apt-get -yf install $package; \ # install each one and fix dependencies
done
мне пришлось управлять его несколькими временами. DPKG - Get-Selections
- это просто алфавитный список, поэтому пакеты в верхней части, которые требуют пакетов внизу, будут переданы. Если вы хотите посмотреть, сколько устанавливаются, делайте DPKG - Get-Selections | grep amd64 |. WC -L
внутри пока
цикла.
Другие ответы здесь показывают, что, хотя это теоретически возможно, это очень сложно и, вероятно, не стоит усилий. Однако вы можете выполнить чистую установку и сделать процесс относительно безболезненным, если оставить $ HOME
прежним.
Общий процесс будет выглядеть так:
Сделайте резервную копию вашего списка установленных пакетов и списка автоматически установленных пакетов.
dpkg --get-selections '*'> package.list
apt-mark showauto> auto.list
Обратите внимание, что вы также можете удалить архитектуру из любого пакета имена, которые вы установили с помощью multiarch :
dpkg --get-selections '*' | sed -e 's /: \ (i386 \ | amd64 \) //'> package.list
Если ваш / home
является отдельным разделом, просто убедитесь, что отформатируйте его в процессе установки. Если он не находится в отдельном разделе, сделайте резервную копию, которую вы сможете восстановить позже:
tar cvzf home_backup.tgz $ HOME /
После установки новой системы установите недостающие пакеты
sudo dpkg --set-selections
Восстановите свой $ HOME. Скопируйте файл tgz и извлеките его в каталог $ HOME:
tar xvzf home_backup.tgz
Вы также можете ознакомиться с инструментами , которые предоставляет Mint. чтобы сделать это проще. Все они также должны быть установлены на Ubuntu.