Как предотвратить установку RPM SUSE в системе RedHat

У нас есть продукт, который распространяется через RPM. Мы создаем как SUSE SLES10 SP1 RPM, так и RedHat 5.5 RPM. Между ними есть различия: все будет работать неправильно (часто загадочно), если вы установите SUSE RPM на машину RedHat, и наоборот.

Есть ли способ предотвратить установку RedHay RPM в системе SUSE и наоборот? Я погуглил и нашел http://www.rpm.org/max-rpm/ch-rpm-multi.html, но все ограничения здесь, кажется, основаны на выводе команды uname, которая не говорит вам, используете ли вы RedHat или Suse. ОС - Linux, и архитектура такая же.

У нас есть идеи добавить проверки в сценарий установки, которые могут искать «Red Hat» или «SUSE» в файле /etc/issue, но я действительно надеюсь, что есть лучший вариант, чем этот.


person John Rocha    schedule 01.10.2011    source источник
comment
Также см. решение из stackoverflow. com/questions/13370063/ в котором говорится, что вы можете зависеть, например. redhat-release-server пакет.   -  person oliver    schedule 27.02.2015


Ответы (3)


Поскольку вы просто хотите обнаружить RedHat, поищите наличие файла с именем /etc/redhat-release. Если он есть, вы устанавливаете какую-то версию RedHat.

person Ernest Friedman-Hill    schedule 01.10.2011

Вы можете поместить зависимость от пакета, специфичного для RedHat (хотя SuSE может предоставить версию).

Вы также можете проверить %pre /etc/redhat-release (или lsb-release и т. д.) для поддерживаемой ОС.

Выполняйте любые проверки перед установкой в ​​%pre, а не %post, потому что в противном случае они произойдут после того, как пакет уже установлен (%post действительно не может дать сбой с пользой)

person MarkR    schedule 01.10.2011

Кроме того, вы можете проверить, определен ли макрос %{rhel} в файле спецификаций.

person user318904    schedule 25.06.2013