Bug #430
prelink и preload портят систему в build-режиме
Status: | New | Start: | 05/16/2012 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 0% |
|
Category: | Calculate Utilities | Spent time: | - | |
Target version: | - | |||
Votes: | 0 |
Description
В системе установленной на хард в build режиме(полагаю с флешкой та же ситуация) по cron-у каждый день запускается prelink, также в автозапуске присутствует preload.
Со временем (буквально после первого запуска) это создает серьезные проблемы с обновлением системы поскольку изменения вносятся в слое workspace, а значит изменения при обновлении в слое delta остаются не видны. Что в свою очередь приводит к не очевидным глюкам в системе (обновил библиотеки/софт в delta, а загружаемые программы ругаются на битые зависимости и вообще оказываются более старой версии)
Предлагаю либо удалить эти сервисы из автозапуска(как временное решение я это сделал у себя) либо слегка модифицировать сервисы в автозапуске так, чтоб стартовать тот же prelink в chroot-е в /mnt/builder
ИМХО, а еще правильнее запускать prelink непосредственно перед созданием squash или объединением delta и calculate, опять же - в /mnt/builder-е.
Кстати, кажется не могу найти команду сливания /mnt/scratch/delta в /mnt/scratch/calculate, это я плохо ищу, или при миграции на calculate2 (а я блин только очнулся) этот функционал не перенесли?
History
Updated by Mikhail Hiretsky over 12 years ago
Не совсем понимают о чем идет речь при сливании /mnt/scratch/delta
в /mnt/scratch/calculate
? Речь идет о cl-image squash
, доступной только при загрузке с флешке в режиме builder
? Какой командой он делался раньше?
Updated by Михаил Гагауз over 12 years ago
Кстати, кажется не могу найти команду сливания /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