%post раздел rpmbuild не работает
Ситуация: я пытаюсь создать пользовательский RPM для размещения файла конфигурации в определенном месте. Установка завершается нормально, помещая файлы конфигурации в надлежащие каталоги, но раздел%post не работает. Этот раздел предлагает пользователю сделать ввод и "прочитать" его. Это значение для чтения должно быть помещено в эти файлы конфигурации с помощью 'sed'.
Проблема: "чтение" не работает в разделе%post, т.е. процесс установки не ждет, пока пользователь предоставит ввод. Это в основном завершает установку путем размещения файлов в каталогах. Короче говоря, раздел%post не является интерактивным, чтобы пользователь мог вводить данные.
Пожалуйста, смотрите файл SPEC здесь: http://pastebin.com/5BgkJUpG. Это поможет понять идею.
Я написал те же строки раздела%post выше для раздела "postint" сборки пакета.deb, и там он работал нормально. Пользователь, установивший пакет deb, смог сделать ввод, и это заданное значение было помещено в файл конфигурации с помощью "sed".
3 ответа
Пользователь из "Unix и Linux" добавил этот ответ:
Предупреждение Не пытайтесь писать интерактивные сценарии. Многие пользователи устанавливают RPM автоматически. В таких случаях, или если пользователь запускает графический инструмент RPM, любая информация, выведенная вашими скриптами, будет потеряна. Пользовательский ввод не будет доступен.
Я не верю, что RPM были предназначены для интерактивного запуска. Вы делаете несколько опасных предположений в том, что RPM не устанавливается автоматическим управлением конфигурацией или интерфейсом пользователя с помощью графического интерфейса. Ни один из сценариев не предвещает ничего хорошего для RPM, который ожидает ввода от оболочки.
Может быть, я могу предложить альтернативу? Это приглашение для имени хоста целевого хоста? IE может ваш sed
включают $(hostname)
вместо того, чтобы получать ввод от стандартного ввода?
Я нашел эту ссылку на кого-то, кто пытался сделать то же самое. Их предложение состояло в том, чтобы получить ввод в%pre как-нибудь?