ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Re: [sisyphus] Доигрался...
  @ 2001-01-09 15:42   ` Dmitry V. Levin
  2001-01-09 18:45     ` Ivan Zakharyaschev
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry V. Levin @ 2001-01-09 15:42 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 3967 bytes --]

On Tue, Jan 09, 2001 at 05:36:38PM +0300, Ivan Zakharyaschev wrote:
> >   В общем, обновил initscripts и еще кучу пакетов.
> 
> >   После этого система не перегружается. Видно, что не стартует
> >   portmap и другие сервисы. После загрузки у меня стоял запуск
> >   Иксов. Теперь просто мигает экраном и ничего не происходит.
> 
> Чтобы вновь запускались нужные сервисы при загрузке, придется заново их
> включить вручную, например:
> 
> $ chkconfig --add syslog
> $ chkconfig --add portmap
> 
> и так же с любым другим понравившимся скриптом из /etc/rc.d/init.d/.
> Или то же самое наверняка можно сделать из меню: linuxconf, drakxconf...
> 
> О возможностях более тонкого управления набором стартовых скриптов -- man
> chkconfig.
> 
> syslog и, вероятно, portmap не стартуют вот почему:
> 
> Старые пакеты с ними (из Mdk 7.0) напрямую ставили нужные ссылки в
> /etc/rc.d/rc?.d/ (файлы-ссылки входили в состав пакетов), тут можно
> увидеть некоторые из них:
> 
> $ rpm -qf `rpm -qal | grep '/etc/rc\.d/rc.\.d/.*'` | sort -u
> apache_rus-common-1.3.12_PL29.4-ipl7mdk
> initscripts-5.49-ipl4mdk
> lpr-0.48-1mdk
> netkit-base-0.11-15mdk
> portmap-4.0-8mdk
> 
> (syslog я уже обновил, он тоже после этого не запускался)
> 
> А новые пакеты для этой цели используют систему систему управления этими
> сервисами -- chkconfig.
> 
> Обновление пакета идет по схеме:
> 
> 1. установка нового
> 2. удаление старого
> 
> Поэтому при обновлении такого пакета на этапе 1 вызывается chkconfig
> --add, что оказывается совершненно бесполезным из-за того, что на этапе 2
> установленные chkconfig'ом ссылки удаляются как принадлежащие старому
> пакету и не принадлежащие новому.
> 
> Могу предложить несколько способов борьбы с этим при создании пакетов:
> 
> 1. закрыть на это глаза

Я так и сделал ввиду того, что эта проблема не самого Сизифа, а перехода н
него путем partial update.

> 2. в новых пакетах указывать эти ссылки из /etc/rc.d/rc?.d/ в секции
> %files с директивой %ghost или чем-нибудь в этом роде (по моему, это
> плохой способ: все преимущества использования chkconfig теряются)

От этого варианта я отказался.

> 3. Проописать в новом пакете соответсвующий trigger на старый пакет. Вот
> так это сделано в console-tools из Сизифа:
> 
> %triggerpostun -- console-tools < 0.2.3-ipl1mdk
> /sbin/chkconfig --add keytable || echo "chkconfig failed adding keytable:
> add it manually if you need"
> 
> (он-то исполнится после всего, т.е. после этапа 2)
> 
> Недостаток в том, что загромождается spec-файл пакета.

Конечно, добавить магические строки типа
%triggerpostun -- %name < %version-%release
/sbin/chkconfig --add %name ||:
не так уж и сложно.

Просто поезд уже ушел, а у меня неправильных пакетов уже давно нет в
системе. Не знаю, стоит ли это делать...

> 4. Запихать все такие триггеры в один пакет, например initscripts или
> специально для этого созданный. Тогда spec-файлы отдельных пакетов можно
> оставить такими, какими они есть.

В initscripts нельзя, он устанавливается в системе много раньше других.

> Дополнение к 3: в соответсвии с packaging HOWTO, учитывая то, что этот
> кусок spec-файла (trigger-script) будет использован многократно, нужно
> создать макрос для него, например %{chkconfigSince:scriptname version}.

Тогда уж лучше так:
%ChkconfigAddSince packagename packageversion scriptname

> Если до этого дойдет дело, то тогда можно попробовать создать и макрос
> более широкого назначения для пакетов, предоставляющих стартовые скрипты:
> %{initscript:name chkconfigSince}.

Не понял.


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@fandra.org
Software Engineer   PGP pubkey http://www.fandra.org/users/ldv/pgpkeys.html
IPLabs Linux Team   http://linux.iplabs.ru
Fandra Project      http://www.fandra.org
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] Re: [sisyphus] Доигрался...
  2001-01-09 15:42   ` [devel] Re: [sisyphus] Доигрался Dmitry V. Levin
@ 2001-01-09 18:45     ` Ivan Zakharyaschev
  2001-01-09 23:42       ` [devel] " Dmitry V. Levin
  0 siblings, 1 reply; 3+ messages in thread
From: Ivan Zakharyaschev @ 2001-01-09 18:45 UTC (permalink / raw)
  To: devel

On Tue, 9 Jan 2001, Dmitry V. Levin wrote:

> On Tue, Jan 09, 2001 at 05:36:38PM +0300, Ivan Zakharyaschev wrote:

> > 3. Проописать в новом пакете соответсвующий trigger на старый пакет.
> Вот
> > так это сделано в console-tools из Сизифа:
> >
> > %triggerpostun -- console-tools < 0.2.3-ipl1mdk
> > /sbin/chkconfig --add keytable || echo "chkconfig failed adding
> keytable:
> > add it manually if you need"
> >
> > (он-то исполнится после всего, т.е. после этапа 2)
> >
> > Недостаток в том, что загромождается spec-файл пакета.
>
> Конечно, добавить магические строки типа
> %triggerpostun -- %name < %version-%release
> /sbin/chkconfig --add %name ||:
> не так уж и сложно.
>
> Просто поезд уже ушел, а у меня неправильных пакетов уже давно нет в
> системе. Не знаю, стоит ли это делать...
>
> > 4. Запихать все такие триггеры в один пакет, например initscripts или
> > специально для этого созданный. Тогда spec-файлы отдельных пакетов
> можно
> > оставить такими, какими они есть.
>
> В initscripts нельзя, он устанавливается в системе много раньше других.

Так это наоборот хорошо: этим гарантируется, что ни один "старый" пакет не
будет заменен без исполнения предназначенного для него trigger'а. После
установки initscripts trigger'ы будут в системе, и в конце обновления
каждого из затронутых пакетов будет исполнен один из них. Нужно только к
уже написанным магическим строчкам добавить проверку на то, происходит ли
просто удаление или обновление пакета (не уверен, что это можно сделать).

> > Дополнение к 3: в соответсвии с packaging HOWTO, учитывая то, что
> этот
> > кусок spec-файла (trigger-script) будет использован многократно,
> нужно
> > создать макрос для него, например %{chkconfigSince:scriptname
> version}.
>
> Тогда уж лучше так:
> %ChkconfigAddSince packagename packageversion scriptname
>
> > Если до этого дойдет дело, то тогда можно попробовать создать и
> макрос
> > более широкого назначения для пакетов, предоставляющих стартовые
> скрипты:
> > %{initscript:name chkconfigSince}.
>
> Не понял.

Я сам только смутно его представляю: который бы делал все то, что
прописывается вручную в spec-файле в связи с установкой init-скрипта:
вызовы chkconfig в postinstall, в preun -- с нужными проверками на
количество пакетов, а также уже описанный chkconfigAddSince. И еще, что
уже совсем на грани фантастики, добавление /etc/rc.d/init.d/scriptname в
секцию %files.

Не знаю, позволяют ли технические возможности такой макрос написать: нужна
возможность "нанизывать" команды в секции %post, %preun (в которых кроме
установки init-скрипта могут совершаться и другие действия, в том числе и
установка второго такого скрипта); можно во избежание этих трудностей
вместо %post и %preun использовать соответствующие triggers -- ограничиния
на их число, наверное, нет. Тогда на каждый init-скрипт по три триггера
(один из которых борется со "старыми" пакетами).

-- 
Best regards,
      Ivan Z.

_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [devel] Re: [devel] Re: [sisyphus] Доигрался...
  2001-01-09 18:45     ` Ivan Zakharyaschev
@ 2001-01-09 23:42       ` Dmitry V. Levin
  0 siblings, 0 replies; 3+ messages in thread
From: Dmitry V. Levin @ 2001-01-09 23:42 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 2751 bytes --]

On Tue, Jan 09, 2001 at 09:45:05PM +0300, Ivan Zakharyaschev wrote:
> > > 4. Запихать все такие триггеры в один пакет, например initscripts или
> > > специально для этого созданный. Тогда spec-файлы отдельных пакетов
> > можно
> > > оставить такими, какими они есть.
> >
> > В initscripts нельзя, он устанавливается в системе много раньше других.
> 
> Так это наоборот хорошо: этим гарантируется, что ни один "старый" пакет не
> будет заменен без исполнения предназначенного для него trigger'а. После
> установки initscripts trigger'ы будут в системе, и в конце обновления
> каждого из затронутых пакетов будет исполнен один из них. Нужно только к
> уже написанным магическим строчкам добавить проверку на то, происходит ли
> просто удаление или обновление пакета (не уверен, что это можно сделать).

Нет.
Когда ставится initscripts, никаких пакетов, на которые может сработать
триггер, нет. Но дело не в этом. Предполагается, что в Sisyphus просто нет
"неправильных" пакетов, в состав которых входят файлы, находящиеся под
управлением chkconfig. Если они еще остались, то это дурное наследие
Mandrake надо просто зафиксить.

> > > Если до этого дойдет дело, то тогда можно попробовать создать и
> > макрос
> > > более широкого назначения для пакетов, предоставляющих стартовые
> > скрипты:
> > > %{initscript:name chkconfigSince}.
> >
> > Не понял.
> 
> Я сам только смутно его представляю: который бы делал все то, что
> прописывается вручную в spec-файле в связи с установкой init-скрипта:
> вызовы chkconfig в postinstall, в preun -- с нужными проверками на
> количество пакетов, а также уже описанный chkconfigAddSince. И еще, что
> уже совсем на грани фантастики, добавление /etc/rc.d/init.d/scriptname в
> секцию %files.
> 
> Не знаю, позволяют ли технические возможности такой макрос написать: нужна
> возможность "нанизывать" команды в секции %post, %preun (в которых кроме
> установки init-скрипта могут совершаться и другие действия, в том числе и
> установка второго такого скрипта); можно во избежание этих трудностей
> вместо %post и %preun использовать соответствующие triggers -- ограничиния
> на их число, наверное, нет. Тогда на каждый init-скрипт по три триггера
> (один из которых борется со "старыми" пакетами).

Это сразу в TODO (точнее говоря, в TOTHINKABOUT) для rpm-4.1 :-)


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@fandra.org
Software Engineer   PGP pubkey http://www.fandra.org/users/ldv/pgpkeys.html
IPLabs Linux Team   http://linux.iplabs.ru
Fandra Project      http://www.fandra.org
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2001-01-09 23:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-01-09 15:42   ` [devel] Re: [sisyphus] Доигрался Dmitry V. Levin
2001-01-09 18:45     ` Ivan Zakharyaschev
2001-01-09 23:42       ` [devel] " Dmitry V. Levin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git