Рубрики
IRIS Продукты и технологии

ZPM – менеджер пакетов для InterSystems IRIS

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

Теперь для InterSystems IRIS также доступен менеджер пакетов — ZPM.

ZPM позволяет найти, установить, обновить модуль, а также может использоваться для публикации модулей. Каждый модуль может быть отдельным приложением, библиотекой, фреймворком, утилитой или примером использования технологий InterSystems.

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

ZPM состоит из двух компонентов:

  • Клиент (CLI)
    Утилита, которая устанавливается в ваш IRIS и используется для управления модулями (например, для установки)
  • Реестр (Registry)
    База данных модулей и метаинформации, которая используется для управления модулями.

По умолчанию ZPM клиент настроен на использование реестра: pm.community.intersystems.com — это реестр сообщества разработчиков. В этом реестре опубликовано множество примеров, утилит и библиотек.

Также вы можете поднять и использовать и свой собственный реестр (об этом будет ниже в этой статье).

С чего начать

1. Установите клиент ZPM

Скачайте последнюю версию инсталлера по этой ссылке.

Импортируйте скачанный класс в любую область любым удобным вам способом: через портал, через Студию или через терминал.

USER>Do $System.OBJ.Load("/path/zpm.xml", "ck")

Если вы используете Docker, то вы можете воспользоваться образами InterSystems IRIS Community Edition и InterSystems IRIS for Health Community Edition, которые уже содержат последнюю версию ZPM (подробнее в документации).

2. Запуск ZPM

После установки ZPM доступен в любой области.
Чтобы использовать ZPM, достаточно набрать команду zpm в терминале и вы запустите интерфейс командной строки (CLI) менеджера пакетов ZPM.

MYNS> zpm
zpm: MYNS>

C помощью команды help можно получить список всех доступных команд.

zpm: MYNS>help

3. Установка модуля

В первую очередь с помощью команды search посмотрите список доступных модулей в реестре:

zpm: MYNS>search

registry https://pm.community.intersystems.com:
analyzethis 1.1.4
blocksexplorer 2.2.1
dsw 2.1.41

Для установки последней версии модуля или обновления используется команда install. Установка будет выполнена в текущую область.

zpm: MYNS>install dsw

[mdx2json] Reload START
[mdx2json] Reload SUCCESS
[mdx2json] Module object refreshed.
[mdx2json] Validate START
[mdx2json] Validate SUCCESS
[mdx2json] Compile START
[mdx2json] Compile SUCCESS
[mdx2json] Activate START
[mdx2json] Configure START
[mdx2json] Configure SUCCESS
[mdx2json] Activate SUCCESS
[dsw] Reload START
[dsw] Reload SUCCESS
[dsw] Module object refreshed.
[dsw] Validate START
[dsw] Validate SUCCESS
[dsw] Compile START
[dsw] Compile SUCCESS
[dsw] Activate START
[dsw] Configure START
[dsw] Configure SUCCESS
[dsw] Activate SUCCESS

Как видно сначала производится установка модуля mdx2json, от которого зависит модуль dsw, а затем уже dsw.

Вот и всё – модуль установлен и настроен!

Многие команды имеют специальные флаги, например, флаг -v или -verbose позволяет увидеть подробности, например:

zpm: MYNS>install dsw -v

Ознакомьтесь с полным перечнем команд их аргументов и флагов на странице документации или используя команду help.

Подготовка и публикация собственного пакета

Для того, чтобы вы могли опубликовать собственный пакет, необходимо:

  • чтобы ваш код работал в InterSystems IRIS;
  • подготовить файл module.xml.

В файле module.xml описан ваш пакет, входящие в пакет ресурсы, зависимости и компоненты необходимые при установке пакета (например, создание веб-приложений).

Если вы до этого использовали InterSystems IRIS Installation Manifest (%Installer), то вы найдете много общего в module.xml и в XDATA блоке .

Описание формата xml в документации

Вы можете познакомиться с примерами module.xml для опубликованных модулей:

Для того, чтобы опубликовать свой пакет публичном реестре pm.community.intersystems.com достаточно опубликовать приложение в Open Exchange и указать его публичный репозиторий.

Установить собственный реестр

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

Если вы планируете публиковать свое приложение в публичном реестре pm.community.intersystems.com, то рекомендуется сначала проверить все шаги в вашем локальном реестре.

Чтобы установить собственный реестр – можно воспользоваться командой install.
Перейдите в область реестра (далее будем считать, что называется REGISTRY) и выполните

REGISTRY>zpm
zpm: REGISTRY>install zpm-registry

Проверьте, что ваш реестр работает – откройте в браузере страницу http://localhost:52773/registry/_ping (возможно надо указать другой порт, в зависимости от настроек вашего IRIS). При обращении к странице потребуется указать логин и пароль пользователя IRIS (например: _system/SYS).

Если вы увидели {“message”:”ping”} – ваш реестр установлен успешно.

Теперь настройте ваш ZPM клиент на работу с новым реестром.

Выполните команду:

zpm: MYNS>repo -r -n registry -url http://localhost:52773/registry/ -user _system -pass SYS

Эта команда говорит, что ZPM клиенту, что в качестве удаленного реестра необходимо использовать реестр доступный по указанному URL и при обращении передавать указанные в аргументах -user и -pass логин и пароль соответственно.

Опубликовать модуль

Проверьте, что вы создали отдельную папку, в которой размещен module.xml и классы вашего модуля (классы принято размещать в папке /src). В примере далее этот модуль будет называться demo-module (имя задается в module.xml).

Проверьте что вы переключились на тестовый реестр.

С помощью команды load загрузите ваш код в текущую область:

zpm: MYNS>load /path/to/module/folder
[demo-module] Reload START
[demo-module] Reload SUCCESS
[demo-module] Module object refreshed.
[demo-module] Validate START
[demo-module] Validate SUCCESS
[demo-module] Compile START
[demo-module] Compile SUCCESS
[demo-module] Activate START
[demo-module] Configure START
[demo-module] Configure SUCCESS
[demo-module] Activate SUCCESS

Эта команда выполняет целый ряд действий – загружает и компилирует ваш код и конфигурирует ваш модуль.

Теперь ZPM клиент знает все о вашем модуле и может его опубликовать.

Для публикации используется команда module-action c аргументом publish:

zpm: MYNS>module-action demo-module publish

Команду module-action можно опускать, и записать короче:

zpm: MYNS>demo-module publish
[demo-module] Reload START
[demo-module] Reload SUCCESS
[demo-module] Module object refreshed.
[demo-module] Validate START
[demo-module] Validate SUCCESS
[demo-module] Compile START
[demo-module] Compile SUCCESS
[demo-module] Activate START
[demo-module] Configure START
[demo-module] Configure SUCCESS
[demo-module] Activate SUCCESS
[demo-module] Package START
Module exported to:
/var/folders/9f/r62h3fxj42b5fzb0hgnb28m40000gn/T/direyLtX5/demo-module-1.0.0/

Module package generated:
/var/folders/9f/r62h3fxj42b5fzb0hgnb28m40000gn/T/direyLtX5/demo-module-1.0.0.tgz
[demo-module] Package SUCCESS
[demo-module] Register START
[demo-module] Register SUCCESS
[demo-module] Publish START
[demo-module] Publish SUCCESS

При выполнении этой команды модуль сначала будет «собран» (т.е. подготовлен для публикации) и экспортирован во временную директорию, заархивирован и затем опубликован на активном в данный момент реестре.

Теперь если вы выполните команду search вы должны увидеть ваш модуль в списке:

zpm: MYNS>search

registry http://localhost:52773/registry/:
demo-module 1.0.0

Для того, чтобы проверить, что установка проходит успешно – установите ваш модуль из тестового реестра с помощью ZPM в новую инсталляцию IRIS или новую область.

Переключиться на реестр по умолчанию

Чтобы переключиться на работу с реестром по умолчанию (pm.community.intersystems.com) используйте флаг -reset-defaults:

zpm: MYNS>repo -r -n registry -reset-defaults

Опубликовать модуль в реестре сообщества

Вы можете опубликоовать ваш модуль в реестр сообщества (pm.community.intersystems.com) чтобы все разработчики на InterSystems могли его устанавливать и использовать в своих решениях.
Для этого опубликуйте ваше решение в InterSystems Open Exchange – маркетплейсе для приложений на InterSystems и укажите при установке что решение является модулем Package Manager:

Дополнительно вы можете посмотреть этот ролик об установке решений в Open Exchange.

Нужна ваша помощь!

ZPM поддерживается сообществом – пожалуйста сообщайте о всех возникающих проблемах или предложениях по улучшению – создавайте issues в репозитории проекта.

Замечание относительно лицензии.

ZPM клиент и реестр, расположенный на pm.community.intersystems.com, не поддерживаются InterSystems Corporation и представлены как есть по лицензии MIT.

Оригинал статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *