Skip to content

Home Администрирование Менеджер пакетов ЕРМ
Менеджер пакетов ЕРМ

Менеджер пакетов ЕРМ

Менеджер пакетов ЕРМ создает «родные» пакеты для каждой операционной системы, поэтому он должен присутствовать в любой системе, где производится «сборка» пакетов. Благодаря невероятным успехам технологий виртуализации за последние несколько лет не составляет никакого труда установить и настроить несколько виртуальных машин. Я создал маленький кластер виртуальных машин (с минимальным потреблением памяти), которые загружаются в режиме, эквивалентном уровню 3 в Red Hat, - чтобы проверить примеры программного кода, которые приводятся здесь.

Впервые возможности ЕРМ продемонстрировал мне мой коллега, который одновременно является одним из разработчиков ЕРМ. Я тогда искал инструмент, который позволил бы мне создавать пакеты программного обеспечения, которое я разрабатывал, в зависимости от типа операционной системы, и он назвал ЕРМ. После прочтения некоторой документации на сайте http://www.epmhome.org/epm-book.html я был приятно удивлен, насколько простым и безболезненным оказался процесс создания пакетов. В этом разделе мы пройдем все этапы создания пакета программного обеспечения, готового к установке на самых разных платформах: Ubuntu, OS X, Red Hat, Solarls и FreeBSD. Эти шаги легко могут быть применены к другим системам, поддерживающим ЕРМ, таким как AIX или HP-UX.

Прежде чем перейти к изучению, приведу некоторые начальные сведения о ЕРМ. Согласно официальной документации, этот менеджер пакетов изначально предусматривал сборку дистрибутивов программного обеспечения в двоичном формате, на основе общей спецификации формата. Благодаря такой постановке задачи одни и те же файлы дистрибутивов могли использоваться в любых операционных системах и для всех форматов.

Требования и установка менеджера пакетов ЕРМ

Для установки ЕРМ требуется только командная оболочка типа ьourne shell, компилятор языка С и программы make и gzip. Все эти утилиты легко получить практически в любой UNIX-подобной системе, если они уже не установлены. После того как исходные тексты ЕРМ будут загружены, необходимо вbinолнить следующую последовательность команд:

Создание дистрибутива Hello World с инструментом командной строки

Прежде чем приступать к созданию пакетов для любой UNIX-подобной системы, необходимо иметь что-либо, что требуется упаковать. В духе сложившихся традиций мы сначала создадим простой инструмент командной строки с именем hello_epm. py, как показано в примере 9.8.

Если запустить этот сценарий, будет получен следующий вывод:

Пример 9.8. Инструмент командной строки Hello ЕРМ

Создание платформозависимых пакетов с помощью ЕРМ

«Основы» использования настолько просты, что может вызвать у вас недоумение, почему раньше вы никогда не пользовались ЕРМ для упаковки кросс-платформенного программного обеспечения. ЕРМ читает файл(ы) с «перечнем», описывающим ваш пакет с программным обеспечением. Комментарии в этом «перечне» начинаются с символа #, директивы - с символа %, переменные - с символа $ и, наконец, строки с именами файлов, каталогов, сценариев инициализации и символических ссылок начинаются с алфавитного символа.

С помощью ЕРМ можно создавать как универсальные кросс-платформенные сценарии установки, так и платформозависимые пакеты. Мы сосредоточимся на создании платформозависимых файлов пакетов. Следующий шаг на пути к созданию платформозависимого пакета заключается в создании манифеста, или «перечня», описывающего пакет. В примере 9.9 приводится шаблон манифеста, использовавшийся нами для создания пакета с нашим инструментом командной строки hello_epm. Вообще, этот шаблон является настолько универсальным, что вы можете использовать его с незначительными изменениями для создания своих собственных инструментов.

Пример 9.9. Шаблон «перечня» для ЕРМ

Если заглянуть внутрь файла, который мы назвали hello_epm.llst, можно заметить, что мы определили переменную Ssrcdir, значение которой соответствует текущему рабочему каталогу. Чтобы создать пакет для любой из возможных платформ, нам необходимо создать в текущем рабочем каталоге следующие файлы и каталоги: README, COPYING, doc/hello_epm.html и doc/hello_epm.man. В этом же каталоге должен находиться и наш сценарий hello_epm. py.

При желании мы можем «обмануть» ЕРМ, просто поместив пустые файлы в каталог, который предполагается упаковать, вbinолнив следующие команды:

Если теперь заглянуть в наш каталог, можно увидеть следующее его содержимое:

Создание пакета

Теперь у нас имеется каталог с файлом «перечня», содержащий директивы, которые могут быть вbinолнены на любой платформе, где имеется поддержка ЕРМ. Теперь все, что осталось сделать, это запустить команду epm -f, добавив к ней название платформы и имя файла перечня. В примере 9.10 показано, как это выглядит в OS X.

Пример 9.10. Создание «родного» для OS X инсталлятора с помощью ЕРМ

Обратите внимание на предупреждение, которое было получено при попытке использовать символ подчеркивания в имени пакета. По этой причине мы дали пакету другое название и повторно запустили команду. В результате был создан каталог macosx-10.5-intel со следующим содержимым:

Это очень удобно, так как был создан файл архива .dmg, который является «родным» форматом для OS X, содержащий наш инсталлятор и инсталлятор, «родной» для OS X.

Если теперь запустить установку, можно заметить, что OS X установит пустые файлы со страницей справочного руководства и с документацией и выведет содержимое пустого файла с лицензионным соглашением. В конечном итоге наш инструмент будет помещен точно туда, куда было указано, и ему будет присвоено заданное нами имя:

Вывод : ЕРМ действительно прост в использовании

Если с помощью команды scp -r скопировать каталог /tmp/release/hel-lo_epm в Red Hat, Ubuntu или Solarls, мы сможем вbinолнить одну и ту же команду создания пакета, за исключением названия платформы, и она «просто будет работать». До этого мы узнали, как создать «ферму» для сборки, чтобы вы могли моментально создавать кросс-платформенные пакеты. Обратите внимание, что все представленные исходные тексты примеров наряду с созданным пакетом, доступны для загрузки. Теперь у вас есть все необходимые знания, чтобы за несколько минут, немного изменив пример, начать создавать свои собственные кросс-платформенные пакеты.

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

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top