Чтобы обновиться из ISO предлагается обновить установщик:
1. Обновите установщик
+Для корректного обновления всегда используйте последнюю доступную версию пакета calculate-install. Чтобы обновить программу, выполните:
eix-sync && emerge calculate-utilities+
Так вот, ничего не получится, если система долго не обновлялась (выдаст кучу блокировок). А если обновлялся мир, то зачем тогда обновление из ISO (ведь система тогда и так обновится до последнего релиза)? То есть, получается, что система обновления из ISO зависит от утилит calculate и самой обновляемой системы, что делают такую систему обновления малополезной.
Вопрос!!! Как сделать обновление независимым от обновляемой системы?
Так как при попытке обновления он пишет: “Неправильный файл образа”.
а как то эти обновленные утилиты можно запихать в новый образ iso и как то обновить их взяв из iso??
не знаю, внятно ли сформулировал…
есть свежий образ стейджа.
в нем есть так нужные системе обновленные калька-утилиты.
пусть система возьмет и обновит эти утилиты прямо из образа свежего стейджа - пусть они там будут закатаны хоть в виде исходников, что ли…
а как то эти обновленные утилиты можно запихать в новый образ iso и как то обновить их взяв из iso??
вставлю свои 5 копеек
можно поступить хитро:
# смонтировать livecd.squash из образа, обвязку из /proc/sys/dev{,/pty,/shm} и директорию где iso лежит в /var/calculate/linux
# выполнить chroot в смонтированную систему
# выполнить установку последним, по сути, cl-install-ом
# …
# PROFIT
очень старую систему так не обновить по той простой причине - что chroot собранный со старым glibc(если я не путаю библиотеку) не сможет запустить bash в chroot-е собранный с новой версией той же либы
на данный момент - это куча дополнительных телодвижений, готового скрипта пока нет
Из минусов:
* настройки/собственные шаблоны переносить/перезадавать придется вручную
Либо смонтировать /var/calculate. К clt это к сожалению не применимо.
* очень старую систему так не обновить по той простой причине - что chroot собранный со старым glibc(если я не путаю библиотеку) не сможет запустить bash в chroot-е собранный с новой версией той же либы
bash в chroot-е, будет запущен из под окружения куда переходим, скорее это не применимо если находимся в 32 бита, а хотим поставить 64.
очень старую систему так не обновить по той простой причине - что chroot собранный со старым glibc(если я не путаю библиотеку) не сможет запустить bash в chroot-е собранный с новой версией той же либы
bash в chroot-е, будет запущен из под окружения куда переходим, скорее это не применимо если находимся в 32 бита, а хотим поставить 64.
я точно знаю, что таким макаром пробовал обновить систему на удаленной машине без физического доступа
не получилось выполнить chroot, т.к. там было очень старое ядро (если не ошибаюсь 2.6.18) с очень старым glibc (его версию не помню)
Сейчас то я понимаю - что надо было сделать “ход конем”:
# скопировать из iso-образа /boot/{initrd,vmlinuz} livecd.squashfs и грузить их из grub-а как livecd
# заморочиться с cdupdate.sh как сейчас делаю с системами по pxe
но тогда пришлось ездить и менять винт на другой со свежей системой и всеми индивидуальными настройками (зато downtime минимальный)
как я понимаю, обновление из iso расчитано на обновление машины, имеющей доступ в инет? раз обновить утилиты кальки требуется
можно ли процесс адаптировать под обновление машин без доступа в инет?
Я думаю в будущем проблему можно решить добавив возможность запускать установку в два этапа. На первом этапе образ будет копироваться в устанавливаемый раздел и готовиться загрузчик, на втором компьютер будет перезагружаться и запускаться процесс установки в этот же раздел. В этом случае уже неважно будет какой версией утилит готовится система для установки.