- Руками(?) в пакетах мы переносим всё из
/bin
,/sbin
в соответстующие/usr/bin
и/usr/sbin
и создаём Provides со старым путём. - rpm должен сам создавать симлинк. Если есть Provides
/bin/sh
и файл/usr/bin/sh
, то создаём ссылку/bin/sh
->../usr/bin/sh
. - После того как в
/bin
не останется ничего кроме ссылок на/usr/bin
, в пакете filesystem можно менять/bin
на симлинк. - Пока пакет
filesystem
не обновился, мы находимся на стадии постепенной подготовки, замещая файлы в/bin
автоматическими ссылкам. - Чтобы
filesystem
заменить каталог на ссылку нам нужно удалить каталог в%pretrans
. В этом случае конфликта не должно быть. From rpm handleRemovalConflict():
...but if the conflicting item is either not on disk, or has
already been changed to the new type, we should be ok afterall.