[devel] Re: rpm packaging (was: Symbolic link and replace the dir)

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Пт Фев 7 20:47:12 MSK 2003


	Hello!

On Fri, 7 Feb 2003, Vitaly Ostanin wrote:

> > Там в конце расписан порядок выполнения обновления.

> \verbatim
>   new-%pre      for new version of package being installed
>   ...           (all new files are installed)
>   new-%post     for new version of package being installed
>
>   any-%triggerin (%triggerin from other packages set off by
> new
>   install)
>   new-%triggerin
>   old-%triggerun
>   any-%triggerun (%triggerun from other packages set off by
> old
>   uninstall)
>
> В моём случае старые файлы удаляются в
> %pre
> %__rm -rf -- %websitedir
>
>   old-%preun    for old version of package being removed
>   ...           (all old files are removed)
> ---------------------^^^^^^^^^
>
> Ставятся новые файлы, и в этом месте (видимо) почему-то
> удаляются
> те их новых, которые были в старой сборке.
>
> Я так и не понял, почему часть файлов удаляется, а для других
> пишется skip. И гадать уже особо некогда. Это секретная
> информация, или никто не сталкивался?

Предположение: symlink сбивает rpm столку.

В старом пакете было:

/dir1/a

В новом пакете:

/dir1 -> /dir2
/dir2/a


Тогда происходит так:

%pre удаляет всю /dir1/.

Ставится новый пакет, в том числе файлы: /dir1 как симлинк на
/dir2 и /dir2/a.

Удаляется старый, в том числе все те файлы, которые принадлежали
старому, но не принадлежали новому.

В старом был файл /dir1/a, а в новом файла с таким путём нет.
Он удаляется -- на самом деле удаляется /dir2/a.


Если это так, то, наверное, решение возможно только внутри rpm.

-- 
С наилучшими пожеланиями,
Иван Захарьящев, Москва



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