On Mon, 28 Dec 2020 01:51:24 +0300 Leonid Krivoshein wrote: > > 27.12.2020 18:48, Alexey V. Vissarionov пишет: > > On 2020-12-27 17:57:05 +0300, Alexey Shabalin wrote: > > > > >> Есть ли текущая актуальная инструкция как при нашем новом > > >> rpm перейти в пакете с симлинка на директорию? > > > День добрый. Возник еще один пакет, где хотелось бы перейти с > > > симлинка на каталог на реальный каталог. Появилась инструкция > > > как это сделать? > > > > Насколько я понимаю, инструкции не было (я бы ее вряд ли пропустил). > > Безболезненный переход, по-моему, в принципе невозможен, а снизить > > ущерб мне удавалось только совсем очевидным (и столь же колхозным) > > способом с временным пакетом и переносом файлов в два этапа (у меня > > это были конфиги, так что размер не напрягал), но после этого в ОС > > оставался мусор в виде файлов, не охваченных пакетной системой. > > > > Использовать этот способ для дистрибутива, наверное, лучше не надо. > > Предложил бы для всех подобных симлинков (каталогов): > > - использовать специальный файл в корне со списком путей, подлежащих > замене типа (например, /.rpmlinks); > - замена должна производиться в initrd (stage1) при первой же > перезагрузке, пока никто там ничего не использует; > - от rpm требуется обработка такой ситуации и "понимание" временно > непригодного состояния (до перезагрузки). > > Т.е., мне кажется, если реализовать поддержку одновременно и в rpm, и в > make-initrd, должно получиться относительно безболезненно. Проблема решается кардинально просто, но на уровне rpm: следует отказаться от концепции владельца директории и сохранять только владельцев файлов. Тогда что симлинк, что директория — разницы для PM никакой не будет. А удаляться они будут только если пустые. Ну если очень нужно пустую директорию установить, то можно в неё положить файлик '.keepdir'. Best regards, Andrew Savchenko