[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