[devel] Re: rpm packaging (was: Symbolic link and replace the dir)
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пт Фев 7 21:14:24 MSK 2003
On Fri, 7 Feb 2003 20:56:28 +0300
Vitaly Ostanin <vyt на vzljot.ru> wrote:
> On Fri, 7 Feb 2003 20:47:12 +0300 (MSK)
> Ivan Zakharyaschev <imz на altlinux.ru> wrote:
>
> <skipped/>
>
> > > Ставятся новые файлы, и в этом месте (видимо) почему-то
> > > удаляются
> > > те их новых, которые были в старой сборке.
> > >
> > > Я так и не понял, почему часть файлов удаляется, а для других
> > > пишется skip. И гадать уже особо некогда. Это секретная
> > > информация, или никто не сталкивался?
> >
> > Предположение: symlink сбивает rpm столку.
> >
> > В старом пакете было:
> >
> > /dir1/a
> >
> > В новом пакете:
> >
> > /dir1 -> /dir2
> > /dir2/a
> >
> >
> > Тогда происходит так:
> >
> > %pre удаляет всю /dir1/.
> >
> > Ставится новый пакет, в том числе файлы: /dir1 как симлинк на
> > /dir2 и /dir2/a.
> >
> > Удаляется старый, в том числе все те файлы, которые
> > принадлежали старому, но не принадлежали новому.
> >
> > В старом был файл /dir1/a, а в новом файла с таким путём нет.
>
> Если верить rpm -qf pathtofile, то после установки "dir1/a"
> принадлежит пакету, как и "dir2/a", при том, что dir1 - симлинк
> на dir2.
>
> Так вот, в моём случае удаляются файл в старом
> пакете есть файл "dir1(каталог)/a" и в новом
> пакете есть "dir1(симлинк)/a".
>
> То есть в новом пакете файл с таким путём есть (но через
> симлинк).
>
> По наводке MHZ попробовал создавать этот симлинк в %post и
> включать в %files через %ghost. Не помогло.
А если так:
1. В %pre создавать ссылку только при новой установке (не при
обновлении), при убивании - сначала проверить, каталог это или ссылка
(каталог убивать, ссылку оставить на месте).
2. В %preun подчистить ссылку при полном удалении.
3. В %triggerpostun на старую версию пакета создать ссылку.
Подробная информация о списке рассылки Devel