Bug #430

prelink и preload портят систему в build-режиме

Added by Михаил Гагауз almost 12 years ago. Updated almost 12 years ago.

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 almost 12 years ago

Не совсем понимают о чем идет речь при сливании /mnt/scratch/delta в /mnt/scratch/calculate? Речь идет о cl-image squash, доступной только при загрузке с флешке в режиме builder? Какой командой он делался раньше?

Updated by Михаил Гагауз almost 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

Also available in: Atom PDF

Thank you!