Bug #430
prelink и preload портят систему в build-режиме
Статус: | New | Начата: | 16.05.2012 | |
---|---|---|---|---|
Приоритет: | Normal | Дата выполнения: | ||
Назначена: | - | Готовность в %: | 0% |
|
Категория: | Calculate Utilities | Затраченное время: | - | |
Версия: | - | |||
Голоса: | 0 |
Описание
В системе установленной на хард в build режиме(полагаю с флешкой та же ситуация) по cron-у каждый день запускается prelink, также в автозапуске присутствует preload.
Со временем (буквально после первого запуска) это создает серьезные проблемы с обновлением системы поскольку изменения вносятся в слое workspace, а значит изменения при обновлении в слое delta остаются не видны. Что в свою очередь приводит к не очевидным глюкам в системе (обновил библиотеки/софт в delta, а загружаемые программы ругаются на битые зависимости и вообще оказываются более старой версии)
Предлагаю либо удалить эти сервисы из автозапуска(как временное решение я это сделал у себя) либо слегка модифицировать сервисы в автозапуске так, чтоб стартовать тот же prelink в chroot-е в /mnt/builder
ИМХО, а еще правильнее запускать prelink непосредственно перед созданием squash или объединением delta и calculate, опять же - в /mnt/builder-е.
Кстати, кажется не могу найти команду сливания /mnt/scratch/delta в /mnt/scratch/calculate, это я плохо ищу, или при миграции на calculate2 (а я блин только очнулся) этот функционал не перенесли?
История
Обновлено Mikhail Hiretsky больше 12 лет назад
Не совсем понимают о чем идет речь при сливании /mnt/scratch/delta
в /mnt/scratch/calculate
? Речь идет о cl-image squash
, доступной только при загрузке с флешке в режиме builder
? Какой командой он делался раньше?
Обновлено Михаил Гагауз больше 12 лет назад
Кстати, кажется не могу найти команду сливания /mnt/scratch/delta в /mnt/scratch/calculate, это я плохо ищу, или при миграции на calculate2 (а я блин только очнулся) этот функционал не перенесли?
Не совсем понимают о чем идет речь при сливании /mnt/scratch/delta в /mnt/scratch/calculate? Речь идет о cl-image squash, доступной только при загрузке с флешке в режиме builder? Какой командой он делался раньше?
Мой косяк - немного запутался. Сытдно.
В отмазку оправдание скажу - что после суток за компом(так вышло) странно, что только тут запутался.
Ну а что по поводу prelink/preload?
preload - думаю вообще можно не включать в build-режиме.
Система установленная в этом режиме либо очень редко включается, и то лишь для сборки новой версии, а значит и смысл в ней теряется.
Либо почти не выключается(сужу по своему личному опыту), а значит и preload-ить что-то смысла особого нет. Но это не критично.
Действительно проблема связана с prelink запускаемым "не в том слое" и "забивающим" в workspace такие директории как {,/usr}/{bin,sbin,lib}
пусть и оптимизированными аналогами текущей версии софта, но не обновляемыми при изменении в delta. А значит и софт на рабочей машине не обновляется (это в лучшем случае, в худшем - может что-то не запуститься, к примеру openssh, и это создаст большие проблемы)
Решение вижу либо в полном отключении prelink, либо в запуске его в chroot-е (тоже наверно не лучший вариант) либо в выполнении prelink перед созданием squash-а или вручную отдельной командой. Я так я понял это не выполняется:grep -i 'pre.\?link' /usr/lib/calculate-2.2/calculate-*/pym/*.py