[Comm] помогите собрать... (webshots для linux'a)

Michael Shigorin mike на osdn.org.ua
Пт Янв 8 13:48:03 UTC 2010


On Thu, Jan 07, 2010 at 09:16:22PM +0300, Andrew Clark wrote:
> > как и этот. Можно расшифровать - что тут происходит?
> Это значит, что файл будет лежать в /etc/.
> Миш, может все же %config (noreplace) ???

Эээ... да, упустил.  Обычно конфигурационные файлы не стоит
заменять по умолчанию.

rpm -U:

При совпадении md5-суммы конфига на файловой системе с тем,
что в удаляемом пакете -- считается, что он не трогался и можно
автоматически обновить, даже если в новом пакете другой текст.

При расхождении:
- noreplace => старый не трогается, новый кладётся в *.rpmnew;
- иначе старый отодвигается в *.rpmsave, новый на его место.

Не помню, как возникают *.rpmorig.

rpm -e:

"Нетроганный" конфиг удаляется, "троганный" отодвигается
в *.rpmsave.  Кажется, это никак не зависит от noreplace.

> и не %_bindir/%name, а %_bindir/*

Здесь зависит от того, что дороже -- предсказуемый состав пакета
(и ошибки при сборке в случае поплывших имён) либо "не потерять".
То есть от схемы взаимодействия ведущего пакет и апстрима.

> > Спасибо, Михаил, однако есть еще вопросы - где можно найти
> > описания всех этих сакральных макросов - например, в пакете
> > setup в спеке много записей в %files такого вида
> > %config(noreplace)
> В RPM Package Guide, которую Вы и читали. Еще в Maximum RPM.

Угу, сам в max-rpm именно за ключами %setup вроде -T/-a/-c и лажу.

> > И еще где бы взять описание, куда вставлять скрипты при
> > установке/обновлении/удалении пакета, например, мне нужно при
> > установке этого своего пакета прописать еще задание в cron
> > root`а и добавить две строки в /etc/inputrc, причем при
> > удалении cron надо будет подчистить (эт я сам сделаю), а
> > inputrc можно будет оставить.
> есть секция %postinstall, если не ошибаюсь.

%post (ещё есть %postun, %pre, %preun)

С такими секциями, из которых порождаются пакетные скрипты --
стоит быть особо осторожным, в т.ч. проверяя, что скрипт не
закончится с ненулевым кодом возврата без крайне веской на то
причины (например, когда новая glibc со старым ядром заведомо
взорвёт систему).

Иначе можно заложить мину для apt-get dist-upgrade.

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


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