LINUX.ORG.RU

RPM-скрипты


0

0

Добрый день!

Не подскажете уважаемые, каким образом можно (и можно-ли вообще) во время установки RPM-пакета получить доступ к самому пакету (файлу RPM) из %pre(install) скрипта. Анализ кода показал, что RPM перед execv скрипта делает chdir("/"), так-что ни какие pwd не помогают ж-(

С уважением, Виталий.

anonymous

Ответ на: комментарий от ananas

Вытащить из него и запустить бинарник ДО того, как этот пакет будет распакован (pre-install stage).

Виталий.

anonymous
()
Ответ на: комментарий от anonymous

Это попахивает грязным хаком. Такие решения должны отметаться сразу и безоговорочно. Правильное решение - разбить пакет на два, и проставить зависимости.

anonymous
()
Ответ на: комментарий от anonymous

Ну почему сразу "грязным хаком" ;-) ... Просто мне необходимо в стадии preinstall запустить не скрипт, а бинарник (ну нетянет скрипт по функциональности :-( ) которого может и небыть на инсталлируемой машине. А по результатам работы этого бинарника принимать решение, - продолжить установку пакета или нет. Если ставить зависимости, то в случае отрицательного решения придётся снести первый пакет.

Виталий.

anonymous
()
Ответ на: комментарий от anonymous

просто так бинарь из рпм-ки вы не вытяните.

а если ваш бинарь только то и делает, что принимает решение ставить или нет - то сам бог велел его в отдельную рпм-ку выносить

ananas ★★★★★
()
Ответ на: комментарий от ananas

>просто так бинарь из рпм-ки вы не вытяните.

Вытяну-вытяну... еще как вытяну ;-) Если интересно - могу рассказать как.

>а если ваш бинарь только то и делает, что принимает решение ставить или нет - то сам бог велел его в отдельную рпм-ку выносить

Э-э-э... хм-м-м... я право смущен... А немогли-бы Вы более детально обосновать свой ответ?

По-моему несколько накладно вот так запросто множить сущности...

По опыту знаю, что Solaris, HP, AIX - позволяют запускать. И до сих пор считал, что это стандартная возможность, однако RPM, похоже, меня обломал :-(

Так-что на глубокоуважаемый All вся надежда...

Виталий.

anonymous
()
Ответ на: комментарий от anonymous

> Вытяну-вытяну... еще как вытяну ;-) Если интересно - могу рассказать как.

просто так - не вытяните. можно, конечно, извращаться со всевозможными rpm2cpio, но это будет хак. что не есть хорошо.

> По-моему несколько накладно вот так запросто множить сущности...

имхо, в данном случае умножением сущностей является хранение всех компонент в одной рпм-ине. не зря ведь обычно пакеты разделяют на обычный и devel. посмотрите на тот же gcc. имхо - очень яркий пример.

можно, конечно, извратиться и загнать ваш бинарь в pre скрипт при помощи uuencode, но это тоже, имхо, черезжопный способ.

ananas ★★★★★
()
Ответ на: комментарий от ananas

нРБЕВЮЧ Б НАПЮРМНЛ ОНПЪДЙЕ:

>ЛНФМН, ЙНМЕВМН, ХГБПЮРХРЭЯЪ Х ГЮЦМЮРЭ БЮЬ АХМЮПЭ Б pre ЯЙПХОР ОПХ ОНЛНЫХ uuencode, МН ЩРН РНФЕ, ХЛУН, ВЕПЕГФНОМШИ ЯОНЯНА.

яНЦКЮЯЕМ МЮ БЯЕ 100. щРН ПЕЬЕМХЕ С ЛЕМЪ ХДЕР ОНД ╧3

>ХЛУН, Б ДЮММНЛ ЯКСВЮЕ СЛМНФЕМХЕЛ ЯСЫМНЯРЕИ ЪБКЪЕРЯЪ УПЮМЕМХЕ БЯЕУ ЙНЛОНМЕМР...

ъ ОН БХДХЛНЛС МЕ ВЕРЙН ЯТНПЛСКХПНБЮК ГЮДЮВС - ЩРНР АХМЮПМХЙ МСФЕМ _рнкэйн_ндхм_пюг_ - НОПЕДЕКХРЭ БНГЛНФМНЯРЭ СЯРЮМНБЙХ ОЮЙЕРЮ. бЕДЭ МЕ РПЕАСЕРЕ-ФЕ бШ ОПЕДСЯРЮМЮБКХБЮРЭ ЯЙПХОРКЕРШ %pre Х %post?

>ЛНФМН, ЙНМЕВМН, ХГБПЮЫЮРЭЯЪ ЯН БЯЕБНГЛНФМШЛХ rpm2cpio, МН ЩРН АСДЕР УЮЙ.

ъ МЕЯНЦКЮЯЕМ МЮГШБЮРЭ rpm2cpio УЮЙЕПЯЙХЛ ХМЯРПСЛЕМРНЛ, ХАН НМ ОНЯРЮБКЪЕРЯЪ Б ЯРЮМДЮПРМНИ ЙНМТХЦСПЮЖХХ RPM, Х (Ъ МЮДЕЧЯЭ) ДНКФЕМ СВХРШБЮРЭ БНГЛНФМШЕ ХГЛЕМЕМХЪ БМСРПЕММЕИ ЯРПСЙРСПШ RPM-ТЮИКЮ.

ю ЛНХ ОЮЙЕРШ ДНКФМШ ХЛЕРЭ БНГЛНФМНЯРЭ АШРЭ СЯРЮМНБКЕММШЛХ МЮ СЯЕВЕММСЧ ЯХЯРЕЛС (Р.Е. АЕГ rpm2cpio Х ДЮФЕ БНГЛНФМН АЕГ чч). рЮЙ ВРН "ГДПЮБЯРБСИ dd, Х od РНФЕ ГДПЮБЯРБСИ..."

anonymous
()
Ответ на: комментарий от ananas

нРБЕВЮЧ Б НАПЮРМНЛ ОНПЪДЙЕ:

>ЛНФМН, ЙНМЕВМН, ХГБПЮРХРЭЯЪ Х ГЮЦМЮРЭ БЮЬ АХМЮПЭ Б pre ЯЙПХОР ОПХ ОНЛНЫХ uuencode, МН ЩРН РНФЕ, ХЛУН, ВЕПЕГФНОМШИ ЯОНЯНА.

яНЦКЮЯЕМ МЮ БЯЕ 100. щРН ПЕЬЕМХЕ С ЛЕМЪ ХДЕР ОНД ╧3

>ХЛУН, Б ДЮММНЛ ЯКСВЮЕ СЛМНФЕМХЕЛ ЯСЫМНЯРЕИ ЪБКЪЕРЯЪ УПЮМЕМХЕ БЯЕУ ЙНЛОНМЕМР...

ъ ОН БХДХЛНЛС МЕ ВЕРЙН ЯТНПЛСКХПНБЮК ГЮДЮВС - ЩРНР АХМЮПМХЙ МСФЕМ _рнкэйн_ндхм_пюг_ - НОПЕДЕКХРЭ БНГЛНФМНЯРЭ СЯРЮМНБЙХ ОЮЙЕРЮ. бЕДЭ МЕ РПЕАСЕРЕ-ФЕ бШ ОПЕДСЯРЮМЮБКХБЮРЭ ЯЙПХОРКЕРШ %pre Х %post?

>ЛНФМН, ЙНМЕВМН, ХГБПЮЫЮРЭЯЪ ЯН БЯЕБНГЛНФМШЛХ rpm2cpio, МН ЩРН АСДЕР УЮЙ.

ъ МЕЯНЦКЮЯЕМ МЮГШБЮРЭ rpm2cpio УЮЙЕПЯЙХЛ ХМЯРПСЛЕМРНЛ, ХАН НМ ОНЯРЮБКЪЕРЯЪ Б ЯРЮМДЮПРМНИ ЙНМТХЦСПЮЖХХ RPM, Х (Ъ МЮДЕЧЯЭ) ДНКФЕМ СВХРШБЮРЭ БНГЛНФМШЕ ХГЛЕМЕМХЪ БМСРПЕММЕИ ЯРПСЙРСПШ RPM-ТЮИКЮ.

ю ЛНХ ОЮЙЕРШ ДНКФМШ ХЛЕРЭ БНГЛНФМНЯРЭ АШРЭ СЯРЮМНБКЕММШЛХ МЮ СЯЕВЕММСЧ ЯХЯРЕЛС (Р.Е. АЕГ rpm2cpio Х ДЮФЕ БНГЛНФМН АЕГ чч). рЮЙ ВРН "ГДПЮБЯРБСИ dd, Х od РНФЕ ГДПЮБЯРБСИ..."

anonymous
()
Ответ на: комментарий от anonymous

What the fucking going on?! I tried twice to post the answer, but it failed... Hey guys, what is missed?

Vitaly.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.