Pull to refresh
0
InterSystems
InterSystems IRIS: СУБД, ESB, BI, Healthcare

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

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

Теперь для 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 для опубликованных модулей:
github.com/isc-zpm/DeepSeeWeb/blob/master/module.xml
github.com/isc-zpm/Samples-BI/blob/master/module.xml

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

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


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

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

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

REGISTRY>zpm
zpm: REGISTRY>install zpm-registry

Проверьте, что ваш реестр работает – откройте в браузере страницу 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.
Tags:
Hubs:
+7
Comments0

Articles

Change theme settings

Information

Website
www.intersystems.com
Registered
Founded
1978
Employees
1,001–5,000 employees
Location
США