各种平台的软件包管理器的使用非常广泛,它们使您可以快速安装和配置许多现成的组件和库。并且还用来部署自己的解决方案。包管理器处理依赖关系很重要,即 如果您的应用程序使用某种特定版本的库,则程序包管理器在安装应用程序时还将安装该库的必要版本。现在,对于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 Exchange(InterSystems上的应用程序市场)中发布您的解决方案,并在安装过程中指出该解决方案是程序包管理器模块:
此外,您可以观看有关在Open Exchange中安装解决方案的视频。需要你的帮助!
ZPM受社区支持-请报告任何问题或改进建议- 在项目存储库中创建问题。许可证说明。InterSystems Corporation不支持位于pm.community.intersystems.com的ZPM客户端和注册表,并且按照MIT许可证提供。