2015-11-12 3 views
0

У меня есть спецификационный файл, который в настоящее время требует пакетов mysql. Теперь у меня есть требование требовать либо mysql, либо MariaDB. Но я не уверен, как настроить такой выпуск OR в моем файле .spec. Я немного знаком с виртуальной частью «Обеспечивает», но я не уверен, что эти пакеты mysql и equivilant mariadb предоставляют одно и то же.Файл спецификации RPM, требующий MySQL или MariaDB

%if 0%{?build6} 
Requires  : mysql-server, mysql, ... 
%endif 

%if 0%{?build7} 
Requires  : mysql-community-server, mysql-community-client, ... 
%endif 
+2

Возможный дубликат [Как я могу установить RPM в зависимости от пакета или пакета b?] (Http://stackoverflow.com/questions/2139621/how-can-i-make-an-rpm-depend-on -package-a-or-package-b) –

ответ

1

Requires RPM записей делать не поддержки ИЛИ логики. Решение RPM для этой проблемы : «virtual» Provides записей.

Вам нужно будет посмотреть соответствующие пакеты MySQL и MariaDB и сравнить список предлагаемых им вещей и найти что-то подходящее для Require.

Это единственное возможное решение.

+0

Хорошо, вы знаете, как смотреть на пакеты для того, что они предоставляют? –

+0

Кроме того, что, если они не обеспечивают одни и те же вещи? –

+1

'rpm -qp --provides" $ package.rpm "' будет перечислять предоставленные данные из файла RPM. 'rpm -q --provides '$ pkgname" 'будет содержать список установленных пакетов. Вы должны надеяться, что они это сделают, потому что, если они этого не сделают, вы не сможете сделать это правильно, и вы можете использовать один из множества ужасных обходных решений. –

Смежные вопросы