OpenResty完全开发指南:构建百万级别并发的Web应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.8 组件管理工具

很多开发语言/环境都会提供配套的包管理工具,例如npm/Node.js、cpan/Perl、gem/Ruby等,它们可以方便地安装功能组件,辅助用户的开发工作,节约用户的时间和精力。OpenResty也有功能类似的工具,名字叫opm。

OpenResty维护一个官方组件库(opm.openresty.org), opm就是库的客户端,可以把组件库里的组件下载到本地,并管理本地的组件列表。opm不仅适用于OpenResty用户,也适用于OpenResty库开发者,允许他们上传组件到官方网站,只需要编写一个简单的dist.ini即可,本书暂不做介绍。

opm的用法很简单,常用的命令有:

    ■  search     :以关键字检索相关的组件;
    ■  get        :安装功能组件(注意不是install);
    ■  info       :显示已安装组件的详细信息;
    ■  list       :列出所有本地已经安装的组件;
    ■  upgrade    :更新某个已安装组件;
    ■  update     :更新所有已安装组件;
    ■  remove     :移除某个已安装组件。

opm默认的操作目录是“/usr/local/openresty/site”,但我们也可以在命令前使用参数“--install-dir=PATH”安装到其他目录,或者用参数“--cwd”安装到当前目录的“./resty_modules/”目录里。

下面的命令示范了opm的部分用法:

opm search    http                            #搜索关键字http
opm search    kafka                           #搜索关键字kafka
opm get       agentzh/lua-resty-http          #安装组件,注意需要sudo
opm info      agentzh/lua-resty-http          #显示组件的版本、作者等信息
opm remove    agentzh/lua-resty-http          #移除组件,同样需要sudo
opm --install-dir=/opt    get xxx             #把组件安装到/opt目录下
opm --cwd                 get xxx             #安装到当前目录的/resty_modules下

需要注意的是opm里组件的名字,使用的是类似GitHub的格式,即“作者名/组件名”,允许一个组件有多个不同的作者和版本,方便组件开发者“百家争鸣”,由用户来评估决定使用哪一个。

由于opm在OpenResty里出现的较晚(2016年),目前库里可用的组件还不多,希望假以时日能够丰富壮大。