[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