[devel] rpm: symlink to dir

Mikhail Novosyolov mikhailnov на altlinux.org
Пн Дек 28 02:17:23 MSK 2020


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.

Отказаться от концепции владельца директории странная идея, существуют же заведомо пустые директории, кому они будут принадлежать?



Подробная информация о списке рассылки Devel