From: Alexey Tourbin <at@altlinux.ru> To: ALT Devel discussion list <devel@lists.altlinux.org> Subject: Re: [devel] /etc/ld.so.cache Date: Fri, 12 Sep 2008 00:38:23 +0400 Message-ID: <20080911203823.GL6477@altlinux.org> (raw) In-Reply-To: <20080911202012.GC16087@wo.int.altlinux.org> [-- Attachment #1: Type: text/plain, Size: 2873 bytes --] On Fri, Sep 12, 2008 at 12:20:12AM +0400, Dmitry V. Levin wrote: > > > > Кстати, возможно, имеет ли смысл использовать 'ldconfig -X'. > > > > Перестановка симлинков (по отношению к rpm пакетам) -- очень > > > > сомнительная фича (и она даёт проблему в %post_ldconfig при > > > > даунгрейде библиотек). > > > > > > Это объезд для пакетов, в которых забыли упаковать эти ссылки. > > > > А есть ли такие пакеты? Ведь lib.prov выставляет provides на soname > > только в том случае, если имя файла/симлинка совпадает с названием > > сонейма. > > Этот объезд гораздо старше lib.prov Понятно. > > $ /usr/lib/rpm/lib.prov -vv /lib64/libglib-2.0.so.0* > > lib.prov: processing /lib64/libglib-2.0.so.0 > > libglib-2.0.so.0()(64bit) > > libglib-2.0.so.0(GLIB_2.8)(64bit) > > libglib-2.0.so.0(GLIB_2.10)(64bit) > > libglib-2.0.so.0(GLIB_2.12)(64bit) > > libglib-2.0.so.0(GLIB_2.14)(64bit) > > libglib-2.0.so.0(GLIB_2.15.6)(64bit) > > lib.prov: processing /lib64/libglib-2.0.so.0.1600.5 > > $ > > > > Если бы мы забыли запаковать симлинк /lib64/libglib-2.0.so.0, > > то бинарик /lib64/libglib-2.0.so.0.1600.5 не дал бы provides; > > пакет, в котором забыли запаковать "значащий" симлинк, либо даст > > анметы, либо просто этот сонейм никому не нужен (так что симлинк > > можно и не делать). > > OK, есть ещё какие-нибудь основания запускать ldconfig таким образом, > как это делается в пакетах сейчас? В перспективе (но, наверное, не самой ближайшей) стоит отказаться от вызова ldconfig в пакетах и сделать posttrans trigger. Кстати, там уже можно вызывать ldconfig и без опции -X, потому что при окончании транзакции проблемы даунгрейда библиотек не существует (старые файлы полностью удалены). Так что даже можно обслужить и левые пакеты. Кстати, вот как это сделано в Мандриве (glibc-2.8-1.20080520.5mnb2.src.rpm), glibc.spec: 1015 # automatic ldconfig cache update on rpm installs/removals 1016 # (see http://wiki.mandriva.com/en/Rpm_filetriggers) 1017 install -d %buildroot%{_var}/lib/rpm/filetriggers 1018 cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF 1019 ^.((/lib|/usr/lib)(64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf) 1020 EOF 1021 cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF 1022 #!/bin/sh 1023 ldconfig -X 1024 EOF 1025 chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script Кривовато, конечно (как и многое в Мандриве), можно сделать чуть лучше. В идеале, конечно, нужен триггер не по файлам, а по provides. Кстати, вот чем мне не понравился именно такой подход к реализации. С одной стороны, они вделывают regcomp() в librpm, по-видимому, чтобы избежать лишних зависимостей на уровне exec (внутренний glob+grep сидит в librpm). C другой стороны, им не удаётся отказаться от /bin/sh даже для ldconfig. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-09-11 20:38 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-09-08 9:51 [devel] posttrans filetriggers [2] Alexey Tourbin 2008-09-08 12:07 ` Igor Vlasenko 2008-09-08 13:49 ` [devel] libgtk+2 Dmitry V. Levin 2008-09-08 13:55 ` Alexey Rusakov 2008-09-08 14:18 ` Yuri N. Sedunov 2008-09-08 14:23 ` Dmitry V. Levin 2008-09-08 14:42 ` Yuri N. Sedunov 2008-09-08 14:46 ` Dmitry V. Levin 2008-09-08 15:15 ` Yuri N. Sedunov 2008-09-08 15:21 ` Mikhail Gusarov 2008-09-08 15:24 ` Andrey Rahmatullin 2008-09-08 15:26 ` Alexey Rusakov 2008-09-08 15:41 ` Yuri N. Sedunov 2008-09-08 15:46 ` Dmitry V. Levin 2008-09-08 15:54 ` Yuri N. Sedunov 2008-09-09 10:05 ` Sergey V Turchin 2008-09-08 15:27 ` Dmitry V. Levin 2008-09-11 19:25 ` [devel] /etc/ld.so.cache Alexey Tourbin 2008-09-11 19:58 ` Dmitry V. Levin 2008-09-11 20:16 ` Alexey Tourbin 2008-09-11 20:20 ` Dmitry V. Levin 2008-09-11 20:38 ` Alexey Tourbin [this message] 2008-09-11 20:48 ` Alexey Tourbin 2008-09-11 20:53 ` Dmitry V. Levin 2008-09-15 7:11 ` Alexey Tourbin 2008-09-15 10:05 ` Dmitry V. Levin 2008-09-19 7:02 ` Alexey Tourbin 2008-10-06 7:04 ` Alexey Tourbin 2008-09-11 20:50 ` Dmitry V. Levin
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=20080911203823.GL6477@altlinux.org \ --to=at@altlinux.ru \ --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