LINUX.ORG.RU

Миграция на amd64

 , ,


0

1

Возжелал я однажды перевести debian wheezy на amd64. Поставил соответствующее ядро, добавил в apt архитектуру. Система замечательно запустилась, но вот бинарники x64 программ работать не захотели. Интуиция подсказала мне поставить libc:amd64 и т.п. Некоторые программы завелись, а некоторым все равно чего-то не хватает.

Вот так вот взять и поставить все amd64 пакеты параллельно с i386, я уже понял что не получится (хотя отдельно взятые библиотечки втыкаются без проблем). Плавная, последовательная замена всех пакетов - зависимости мозг сломают. Задача видится в замене большинства i386 пакетов на amd64 разом, для воссоздания amd64 окружения. Существует ли решение в рамках пакетного менеджера?

★★★★

C 64-битными системами всегда так. Так что лучше не переходи, если на это нет серьёзной причины.

heinrich
()
Ответ на: комментарий от heinrich

C 64-битными системами всегда так. Так что лучше не переходи, если на это нет серьёзной причины.

4.2. Все в порядке с ними.

tazhate ★★★★★
()

Больная тема. Паралельный вопрос: есть ли возможность прокрутить этот финт ушами в offline-модусе? Т.е. бут с live-cd или похожего и заменой всех-всех пакетов на 64 бит версии???

beastie ★★★★★
()
Ответ на: комментарий от beastie

Т.е. бут с live-cd или похожего и заменой всех-всех пакетов на 64 бит версии???

Зачем, если можно всё сделать на ходу?

anonymous
()
Ответ на: комментарий от tazhate

Прочитал по диагонали, не увидел там использования multiarch. У ТС же не Squeeze, ему можно не мучиться Ж)

anonymous
()
Ответ на: комментарий от beastie

И поискать в интернете не пробовал, да? В оффлайн делается так же - берёшь нужные пакеты (скачиваешь заранее или ищешь на дисках 64 битного дебиана), а потом проделываешь всё то же самое, что описано в инструкциях.

vitruss ★★★★★
()
Ответ на: комментарий от vitruss

Шутку понял, смешно. Я конечно дурак, но не настолько. Всё, что гуглится — это такой Садом и Гомора, что мне просто страшно. Поэтому и спрашиваю, есть ли у кого из присутствующих опыт с offline миграцией, ибо она, по идеи, должна быть не такая гиморная.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Если бы знал

Ну блин… Ладно, вкратце это выглядит так.

dpkg --add-architecture amd64
apt-get update
Также желательно (а может и необходимо, но у меня работало без этого) поправить sources.list, добавив «[arch=amd64,i386]» между «deb» и URI. Далее ставишь amd64-ядро и можно сразу перезагружаться. Потом libc6:amd64 — минимум для запуска 64-битного кода готов.
apt-get install apt:amd64 dpkg:amd64
Если всё в порядке, то можно шагать дальше. В идеале, можно сгенерировать список всех архитектурно-зависимых пакетов, не из секции libs и скормить его apt-get, но сложно сказать, сработает ли это идеально. Не все (хотя кто знает, release target отмечен как выполненный) библиотеки могут в multiarch, поэтому лучше переустанавливать пакеты по одному или маленькими кучками, дабы не пялиться в километровый вывод apt-get, пытаясь выявить источник конфликта. После того, как все пакеты (которые не библиотеки и не arch:all) заменены, можно вынести одной командой все i386-библиотеки. Примерно так. Да, это требует определённого времени, но это не rocket science и достаточно лишь действовать внимательно.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за развёрнутый ответ. Надо будет поэкспериментировать «на кошках». Может чёрт и не так страшен. (С multiarch ещё дел не имел…)

beastie ★★★★★
()
Ответ на: комментарий от beastie

так это же бсд а не линукс там все тип топ только упоротые не могут это признать

anonymous
()

Всем спасибо, грохнул dpkg, случайно потер пол /usr, тему можно закрывать :D

Radius ★★★★
() автор топика

Пусть для ТС уже не очень актуально.

Вот так вот взять и поставить все amd64 пакеты параллельно с i386, я уже понял что не получится (хотя отдельно взятые библиотечки втыкаются без проблем).

Если речь идёт о широко используемых пакетах, то мне известна только одна проблема: много -dev пакетов могут быть, к сожалению, на данный момент или/или, а вот с либами дела получше.

gag ★★★★★
()
Ответ на: комментарий от anonymous
apt-get install apt:amd64 dpkg:amd64

это так просто не сработает - dpkg:i386 конфликтует с dpkg:amd64, а после удаления dpkg:i386 поставить dpkg:amd64 уже не получится.

можно загрузиться с флешки и устанавливать пакеты при помощи параметра --root=dir (собственно я примерно так и делал).

с другой стороны делать сразу полноценную миграцию особо смысла нет - можно мигрировать приложения по-одному.

maloi ★★★★★
()
Ответ на: комментарий от maloi

это так просто не сработает - dpkg:i386 конфликтует с dpkg:amd64, а после удаления dpkg:i386 поставить dpkg:amd64 уже не получится.

Да, ты прав. Я щас только попробовал и пришлось распаковывать родной dpkg из пакета руками (потом, конечно же, переустановил пакет штатным способом).

anonymous
()
24 октября 2013 г.
Ответ на: комментарий от anonymous

Ну блин… Ладно, вкратце это выглядит так.
dpkg --add-architecture amd64
apt-get update
Также желательно (а может и необходимо, но у меня работало без этого) поправить sources.list, добавив «[arch=amd64,i386]» между «deb» и URI. Далее ставишь amd64-ядро и можно сразу перезагружаться. Потом libc6:amd64 — минимум для запуска 64-битного кода готов.

Ага...

$ sudo apt-get install libc6:amd64

...

обновлено 0, установлено 3 новых пакетов, для удаления отмечено 1875 пакетов, и 0 пакетов не обновлено.

Зашибись.

dvo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.