Создание пакета rpm из исходного архива - но в архиве нет спецификационного файла, только скрипт установки - PullRequest
1 голос
/ 10 июня 2011

Во время моей работы в качестве SysAdmin я сталкивался с приложениями, которые не предоставляют пакетов rpm для установки в дистрибутивах на основе Redhat - только архив с исходным кодом. В архиве с исходным кодом отсутствует файл спецификации, который упростил бы процесс создания пакета rpm. Вместо этого исходный архив содержит только скрипт bash / ksh /, который должен выполняться от имени пользователя root для установки приложения в системе.

Я попытался создать пакет rpm, который по сути запускает скрипт установки для выполнения скрипта установки. Я также попытался сделать правильную вещь, пытаясь собрать пакет как пользователь без полномочий root и как можно лучше изменить скрипт установки, чтобы убедиться, что установочные каталоги скрипта ссылаются на rpm enviromentals / macros. Но со сложным установочным скриптом длиной в несколько сотен строк, который также задействует другие скрипты ... ну, я был обречен на неудачу в этом начинании.

Есть ли лучший способ упаковать такие tar-архивы с исходным кодом .spec-less? Будет ли лучшим решением для:

  1. как-то сделать снимок системы перед установкой приложения
  2. установить архив с исходным кодом с помощью предоставленного сценария установки
  3. сделать снимок системы после установки и определить изменения / дополнения, сделанные при установке
  4. поместить список изменений / дополнений в файл спецификации и создать пакет rpm таким образом?

Будем весьма благодарны за любые полезные / актуальные / поучительные / забавные / глубокие замечания и советы по этой проблеме.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 октября 2014

Я видел много сценариев, о которых вы упомянули, и я подозреваю, что могу с уверенностью сказать вам компанию, продающую вам эти ужасные установки.

Лучше всего попросить правильно установить пакет. Узнайте, почему пакет лучше, чем configure, make; make-install и лучше, чем эта ерунда install.sh. Вооружившись этим, даже если речь идет о предметах разговора, попробуйте привести их в третье тысячелетие. Это будет тяжело, но в конечном итоге наиболее полезным.

За исключением этого, вам понадобится собрать этот пакет (и теперь вы прочитаете почему). К сожалению, есть некоторые приложения и поставщики, чья полезная нагрузка не может быть упакована, потому что они компилируются, запрашивают хост назначения, ищут лицензию, немного компилируют и т. Д. Мой уклон здесь хорошо отточен.

0 голосов
/ 10 июня 2011

Я думаю, что лучшее решение - запросить у апстрима файл спецификации для приложений.Другим способом может быть запрос опытного сопровождающего пакета для упаковки приложения.Или вы можете, вероятно, изучить checkinstall , так как он отслеживал установочный файл с помощью Makefile.Если вы хотите упаковать себя, вы должны прочитать эту ссылку , так как она содержит пояснения и множество примеров.

...