[devel] rpm: symlink to dir

Andrey Savchenko bircoph на altlinux.org
Пн Дек 28 16:00:10 MSK 2020


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20201228/eabe90cb/attachment.bin>


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