Как заставить работать команду "чтение" в файле спецификации RPM?

Я написал файл SPEC для сборки пакета RPM. Мне нужно позволить конечному пользователю определить значение переменной в %pre раздел. Поэтому я использую команду "read " в %pre раздел. Но при установке команда "чтение", похоже, игнорируется системой, потому что система не дождалась, пока я не введу значение. Зачем? и есть ли хороший метод, чтобы сделать вышеупомянутую вещь?

1 ответ

Решение

Вместо того, чтобы вставлять read в вашем пакете RPM имеет условный механизм, который можно использовать через параметры командной строки. Большая часть использования условных выражений в RPM проверяет константы, определенные в системных RPM-макросах, или выполняет простые проверки файловой системы. Сначала вы должны изучить их, так как это позволяет установить ваш пакет без помощи человека, выполняющего установку.

Вот несколько полезных страниц, обсуждающих условия RPM:

Как видно из предложенного прочтения, это функции времени сборки, а не времени установки. Вы не можете сделать "интерактивную" установку RPM. Чтобы узнать больше об этом, смотрите эти страницы:

Из последнего ясно, что это намеренно со стороны разработчиков. Кроме того, один ответ упоминает --relocate вариант, подразумевающий, что это решает проблему. Однако на самом деле все по-другому. Подробнее об этом читайте здесь:

Другие вопросы по тегам