On Mon, 28 Dec 2020 14:18:01 +0300 Denis Medvedev wrote: > On 12/28/20 12:41 PM, Andrey Savchenko wrote: > > On Mon, 28 Dec 2020 02:17:23 +0300 Mikhail Novosyolov wrote: > >> 28.12.2020 02:08, Andrey Savchenko пишет: > >>> 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'. > >> На уровне rpm давно придуман %pretrans на lua. > >> > >> Отказаться от концепции владельца директории странная идея, существуют же заведомо пустые директории, кому они будут принадлежать? > > Тому, кому принадлежит скрытый файл .keepdir внутри таких > > директорий. > > В таком случае такой каталог будет уже не пуст, некоторым программам > будут нужны совершенно пустые каталоги Пример? По-моему, это чисто гипотетическая ситуация. > А что будет, если туда положить %ghost файл .keepdir ? Будет ли такой > каталог считаться за программой? Зависит от реализации. Можно как раз использовать для описанной выше ситуации, когда нужен абсолютно пустой каталог. Если честно, я не совсем понимаю, зачем вообще нужен %gost. Я знаю, что он делает — позволяет закрепить несуществующий в пакете файл за пакетом — но мне представляется, что это ошибочная концепция и её использование говорит об ошибке в пакетировании пакета. Best regards, Andrew Savchenko