ZPM-InterSystems IRIS的软件包管理器

各种平台的软件包管理器的使用非常广泛,它们使您可以快速安装和配置许多现成的组件和库。并且还用来部署自己的解决方案。包管理器处理依赖关系很重要,即 如果您的应用程序使用某种特定版本的库,则程序包管理器在安装应用程序时还将安装该库的必要版本。

现在,对于InterSystems IRIS,还可以使用软件包管理器ZPM。

ZPM允许您查找,安装,更新模块,也可以用于发布模块。每个模块可以是单独的应用程序,库,框架,实用程序,也可以是使用InterSystems技术的示例。

ZPM软件包管理器


ZPM包含两个组件:

  • 客户端(CLI)一种
    实用程序,可安装到您的IRIS中并用于管理模块(例如,用于安装)
  • 注册表
    一个模块数据库和用于管理模块的元信息。

默认情况下,ZPM客户端配置为使用注册表:pm.community.intersystems.com是开发人员社区的注册表。该注册表已发布了许多示例,实用程序和库。

您还可以选择并使用自己的注册表(在本文后面的更多内容)。

从哪里开始


1.安装ZPM客户端


从此链接下载最新的安装程序

通过门户,Studio或终端通过您方便的任何方式将下载的类导入到任何区域。

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

如果使用Docker,则可以使用InterSystems IRIS社区版和InterSystems IRIS for Health社区版映像,这些映像已经包含最新版本的ZPM(有关更多详细信息,请参阅文档)。

2.启动ZPM


安装后,ZPM可以在任何区域使用。
要使用ZPM,只需在终端中键入zpm命令,您将运行ZPM软件包管理器命令行界面(CLI)。

MYNS> zpm
zpm: MYNS>

使用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

如您所见,首先安装了dsw模块所依赖的mdx2json模块,然后安装了dsw。

仅此而已-模块已安装并配置!

许多命令都有特殊的标志,例如,-v或-verbose标志允许您查看详细信息,例如:

zpm: MYNS>install dsw -v

文档页面或使用help命令查看命令的完整列表以获取其参数和标志

准备和发布您自己的软件包


为了您发布自己的软件包,您必须:

  • 使您的代码在InterSystems IRIS中工作;
  • 准备module.xml文件。

module.xml文件描述了您的程序包,程序包中包含的资源,安装程序包时(例如,创建Web应用程序)所需的依赖项和组件。

如果以前使用过InterSystems IRIS安装清单(%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它足以在发布打开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客户端知道有关模块的所有信息并可以发布它。

要发布,请使用带有publish参数的module-action命令:

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

当执行该命令时,模块将首先被“组装”(即准备发布)并导出到临时目录,进行归档,然后发布到当前活动的注册表。

现在,如果您运行搜索命令,您应该在列表中看到您的模块:

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 ExchangeInterSystems上的应用程序市场)中发布您的解决方案,并在安装过程中指出该解决方案是程序包管理器模块:

此外,您可以观看有关在Open Exchange中安装解决方案的视频

需要你的帮助!


ZPM受社区支持-请报告任何问题或改进建议- 在项目存储库中创建问题

许可证说明。

InterSystems Corporation不支持位于pm.community.intersystems.com的ZPM客户端和注册表,并且按照MIT许可证提供。

All Articles