- Руками(?) в пакетах мы переносим всё из
/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.