Лучшие практики для создания установщика - Могу ли я использовать Yum

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

В настоящее время мне нужно установить около 30 пакетов через Yum (от больших, таких как mySQL, до более мелких случайных пакетов размером 70 КБ). Вручную установить кучу других (пакеты Python, которые в основном представляют собой просто команды «python setup.py install»). Создайте несколько каталогов, измените некоторые разрешения и т. д.

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

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


person JiminyCricket    schedule 31.08.2010    source источник


Ответы (2)


Вы задаете сразу несколько вопросов, поэтому я просто коснусь упаковки и установки библиотек Python...

Используя setup.py, вы можете превратить пакеты Python в RPM для установки на любой компьютер Red Hat/CentOS с помощью yum. Вот как я устанавливаю все свои пакеты внутри своей работы. Предполагая, что основные rpmbuild утилиты установлены, это просто:

python setup.py bdist_rpm

Это создаст RPM вашего пакета в папке dist (например, dist/mypackage-1.01-1-noarch.rpm). Затем вы можете просто добавить этот RPM на свое внутреннее зеркало yum (если у вас есть внутреннее зеркало), и оттуда вы можете легко распространять пакеты на свои внутренние хосты.

person jathanism    schedule 31.08.2010

Вы можете создать пакет RPM, который зависит от того, какие пакеты вам нужны.
http://fedoraproject.org/wiki/PackageMaintainers/CreatingPackageHowTo (для Fedora, но то же самое для RHEL/CentOS)

В основном у вас будет строка в файле .spec, подобная этой:
Requires: mysql-server, httpd, php

Таким образом, вы можете добавить это к своему зеркалу yum (при условии, что оно у вас есть), тогда тот, кто выполняет установку, может просто выполнить yum install server-setup, и он автоматически подтянет все необходимые пакеты. Как сказал jathanism, вы можете создавать RPM из скриптов setup.py и размещать их на своем зеркале, а затем просто сделать так, чтобы ваш метапакет зависел от этих RPM.

И вы также можете сделать пакет Debian, если есть возможность использования системы Debian.

person jonescb    schedule 31.08.2010