RPM исправление / патч подход - PullRequest
2 голосов
/ 30 марта 2011

Мы запускаем систему на Centos 5.5 и устанавливаем наше программное обеспечение, используя один RPM, содержащий все наше программное обеспечение. Когда нам нужно применить оперативное исправление или исправление, текущая система просто прикрепляет к tar и распаковывает его.

Я пытаюсь разработать отслеживаемую, воспроизводимую систему для применения исправлений и исправлений, но я немного не уверен относительно роли RPM в этом процессе.

Из того, что я понимаю, если мы увеличим номер версии и переустановим хотя бы один измененный файл, тогда RPM взорвет всю партию. Это требует от нас полной уверенности в том, что никто не установил другое исправление в систему, о котором мы не знаем, поскольку оно будет заменено.

Можно ли сделать RPM, который просто содержит новые файлы, и применить его поверх существующего RPM? Как это повлияет на последующие обновления системы?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Смысл RPM в том, чтобы иметь повторяемые, проверяемые установки.Вы должны сгенерировать новый RPM с обновленным в нем обновлением (с помощью патча или нового исходного кода).

Разделение вашего монолитного пакета позволит вам обновить детали по отдельности.

2 голосов
/ 30 августа 2012

Проблема заключается в изменении файлов, локально установленных rpm, и забыв о них.

Если вы используете это в качестве процедуры исправления, сразу после исправления вы должны создать новый rpm, а затем развернуть этот новый rpm.

Если людям разрешено устанавливать исправление после исправления поверх машины, даже не применяя его к нормальному процессу, вы приглашаете к катастрофе.

Одна вещь, которую вы можете сделать, чтобы напомнитьтот факт, что у вас есть исправления, заключается в использовании

rpm -q --verify (your rpm name)

. Это напечатает список файлов, которые были изменены с момента установки rpm.Таким образом, вы, по крайней мере, знаете, какие файлы были исправлены, и их следует учитывать.

0 голосов
/ 19 апреля 2011

Вы можете использовать deltarpm (но я не рекомендую это, см. Ниже). Имея старые rpm и новые rpm (на сборочной машине), вы можете генерировать дельту с помощью инструмента deltarpm. Используя инструмент deltarpm на коробке с установленным программным обеспечением, вы можете автоматически обновить старые обороты до новых оборотов (и при необходимости понизить их).

Мне это не нравится, потому что если какой-либо (неконфигурированный) файл, предоставленный старым rpm, изменится, вы не сможете установить исправление. К тому же дельтарпм это не готовый к производству инструмент. Вы были предупреждены.

В качестве альтернативы deltarpm я посоветую разделить ваше программное обеспечение на несколько меньших RPM и выпустить подмножество новых RPM в качестве исправления. Это наиболее общий подход.

...