Является ли извлечение файлов из% post при установке RPM хорошей практикой?

266
Raúl García

Я создаю RPM для распространения среды conda, и я придумал это решение:

Я был в состоянии сделать это. Вот мой файл .spec из ответа Stackexchange.

Подводя итог: я использую фазу установки, чтобы просто распаковать зависимости и скрипт установки, и в% post я запускаю этот скрипт, который создает файлы в / opt / miniconda. В связи с этим мне нужно вручную указать шаги по очистке среды при удалении, а также вручную проверить, все ли работает правильно.

Это хорошая практика? Я хотел бы иметь возможность делать все на этапе установки, чтобы установка могла быть прервана, если что-то пойдет не так, но я не смог этого добиться.

-1

1 ответ на вопрос

0
msuchy

Это очень плохая практика.

Несколько указателей:

Вместо:

if [ -f /opt/miniconda/bin/python ]; then echo "Python is there!" echo "Checking version..."  python_version="$(/opt/miniconda/bin/python --version)" if [[ "3.6.0" =~ "$python_version" ]]; then 

Вы должны поставить либо

Requires: python >= 3.6.0 

Если вам достаточно системного Python или вы создаете RPM со своим собственным Python, то что-то вроде:

Requires: miniconda-python >= 3.6.0 

Аналогично для всех этих модулей.

Мне кажется, что вы не знаете разницу между% install и% post. Поэтому, пожалуйста, прочитайте https://stackoverflow.com/questions/34631942/how-to-run-and-interact-with-a-script-from-within-an-rpm/34634718#34634718 Выполните всю часть перемещения в% install и вам не нужно% post part вообще.

У машины нет доступа к сети, поэтому я не могу добавить Требуется: python. Мне нужно извлечь и выполнить скрипт, который правильно устанавливает зависимости, а не просто перемещать некоторые файлы. Install.sh - это тот, который создает файлы в / opt / miniconda, и позже я проверяю, все ли в порядке с этими операторами if-else. Raúl García 6 лет назад 0
Вы можете запустить скрипт, который устанавливает зависимости, в разделе% install. Тогда все зависимости будут в RPM-пакете. Вы действительно должны начать создавать RPM-пакет на небольшом и более простом пакете, чтобы вы познакомились с этой концепцией. msuchy 6 лет назад 0

Похожие вопросы