From: Andrey Savchenko <bircoph@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] rpm: symlink to dir Date: Mon, 28 Dec 2020 16:00:10 +0300 Message-ID: <20201228160010.5483af3c6e0c63e504c1d66b@altlinux.org> (raw) In-Reply-To: <e3316da8-82ae-5433-83e3-d18015862c15@altlinux.org> [-- Attachment #1: Type: text/plain, Size: 5196 bytes --] 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 [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-12-28 13:00 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-18 13:05 Alexey Shabalin 2020-03-18 15:08 ` Dmitry V. Levin 2020-03-18 16:46 ` Alexey Shabalin 2020-03-18 16:51 ` Denis Medvedev 2020-03-18 17:01 ` Vladimir D. Seleznev 2020-03-18 17:21 ` Ivan Zakharyaschev 2020-03-18 17:43 ` Vladimir D. Seleznev 2020-03-18 18:37 ` Alexey V. Vissarionov 2020-03-18 17:28 ` Alexey Shabalin 2020-03-19 4:08 ` Anton Farygin 2020-03-18 17:19 ` Ivan Zakharyaschev 2020-03-18 17:36 ` Dmitry V. Levin 2020-03-18 18:32 ` Alexey V. Vissarionov 2020-03-18 18:35 ` Denis Medvedev 2020-03-19 8:54 ` Anton V. Boyarshinov 2020-03-19 9:09 ` Alexey V. Vissarionov 2020-03-19 9:14 ` Anton V. Boyarshinov 2020-03-19 9:13 ` Sergey Afonin 2020-03-18 19:53 ` Andrey Savchenko 2020-03-18 22:03 ` Alexey Shabalin 2020-03-19 7:33 ` Ivan A. Melnikov 2020-03-19 7:52 ` Anton Farygin 2020-12-27 14:57 ` Alexey Shabalin 2020-12-27 15:48 ` Alexey V. Vissarionov 2020-12-27 22:51 ` Leonid Krivoshein 2020-12-27 23:08 ` Andrey Savchenko 2020-12-27 23:17 ` Mikhail Novosyolov 2020-12-27 23:20 ` Dmitry V. Levin 2020-12-28 9:41 ` Andrey Savchenko 2020-12-28 13:00 ` Andrey Savchenko [this message] 2020-12-28 20:10 ` Alexey V. Vissarionov 2020-12-28 20:16 ` Andrey Savchenko 2020-12-28 20:46 ` Alexey V. Vissarionov 2020-12-29 6:31 ` Andrey Savchenko 2020-12-29 10:05 ` Sergey V Turchin 2020-12-29 12:21 ` Vladimir D. Seleznev 2020-12-29 10:10 ` Sergey V Turchin 2020-12-27 23:21 ` Dmitry V. Levin 2020-12-28 6:11 ` Anton Farygin 2020-12-28 9:04 ` Dmitry V. Levin 2020-12-28 9:09 ` Anton Farygin 2020-12-28 9:17 ` Dmitry V. Levin 2020-12-28 9:39 ` Andrey Savchenko 2020-12-28 6:38 ` Alexey V. Vissarionov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20201228160010.5483af3c6e0c63e504c1d66b@altlinux.org \ --to=bircoph@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git