|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 03 Jun 2002 23:48:52 To : Kirill Smelkov Subject : Re: Вопрос про rpm --------------------------------------------------------------------------------
Hi, Kirill!
>>>>> "KS" == Kirill Smelkov <Kirill.Smelkov@p37.f885.n5030.z2.fidonet.org>
>>>>> writes:
KS> Есть мой rpm-пакет который при установке пишет несколько строк в файл
KS> (неважно какой, пусть для примера /etc/services) при удалении он эти
KS> строки стирает.
[skip ужастики ;-]
KS> такой вариант хорошо работает когда рассматривается только установка
KS> или удаление.
KS> Теперь вопрос: ??? Как корректно осуществить подобное для upgrade'ов
KS> ???
точно так-же. вот буквально вчера тут пролетал URL на MaximumRPM, гед
сказано, что rpm -U = "rpm -e" + "rpm -i"
KS> Дело в том, что по логике вещей старый пакет должен удалить свою
KS> строку перед тем как начнётся исполнение скриптов нового пакета.
KS> Однако rpm делает всё наоборот - сначала отрабатывают скрипты нового,
KS> а затем старого пакетов.
угу, это сделано умышлено (где-то даже объясналось почему и зачем)
но там где-то в pre/post скриптах можно узнать на какой фазе
устновки/удаления пакета мы находимся, и соотвевенно таки что-то сделать,
или наоборот, не делать. Я так глубоко не копал, конкретнее не подскажу.
Если в MaximumRPM этого нет - то нужно колупать сам RPM, или какие-нибудь
пакеты, у которых такие навороты.
KS> Результат: новый пакет ничего не пишет в /etc/services, старый ничего
KS> не удаляет - осталась строчка от старого пакета, а в том случае когда
KS> содержимое строки меняется от пакета к пакету такое поведение
KS> некорректно.
строка, которая меняется должна быть записана в конфиг.
если нужно исправлять системный файл - то я бы оставил это на совесть
администратора, или стартового скрипта.
Hапрмер, я бы такую "хитрую конфигруцию" хранил в файле
/etc/sysconfig/some-strange-soft
который в пакете помечен как конфиг, и который будет обрабатываться в
соотствии с логикой обработки конфига.
Если сожержимое одной из переменных нужно куда-то прописывать в
"стандарные файлы", то внутри
/etc/init.d/some-strange-soft
в процедуре start() мы делаем все анализы и исправления.
в %preun - делается /etc/init.d/some-strange-soft stop
в %post - /ec/init.d/some-strange-soft start
Если нужно чтоб пакет ставился без русного вмешательства - ровняйте
софтину. Менять "файлы во время устновки" это вообще чревато.
KS> По видимому проблема состоит в том, что _всегда_ вначале отрабатывают
KS> скрипты устанавливаемого пакета.
проблема в том, что считать правильнвм, а что нет. Пример /etc/services
несколько не наглядный. Это просто список, и удалять оттуда смысла как-бы
нет.
вот если взять пример /etc/inetd.conf и /etc/xinetd.d/ то налицо
приемущесва второго подхода.
--
Bor.
PS а еще есть тригера, которые тоже как-от там срабатывают хитрО :))))
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541f6d19dc0.html, оценка из 5, голосов 10
|