openresty的 opm 踩坑之旅,


前言

从一接触openresty,我一直在追求一种比较优雅的包管理方式
从 git submodules , luarocks 到 opm 可谓踩坑无数
这是一件有时间就会怨念一下的事情
时至今日,终于把 opm 这一套踩全了
不敢私享,抛砖引玉
本文中所有的脚本都在阿里云centos 7.0.4镜像上测试通过

不会用编译安装配置服务器的程序员不是好运维
自从接触了 configure
什么 yum apt-get 都是浮云

环境准备

删除 perl

阿里centOS 的镜像中 perl 的一些组件不是很完备,在这里踩了很多坑

  1. yum remove -y perl

建立工作目录

  1. sudo adduser www

  2. su www

  3. cd $HOME

  4. mkdir $HOME/local

  5. mkdir $HOME/source

安装 perl

  1. su www

  2. cd $HOME/source

  3. wget https://www.cpan.org/src/5.0/perl-5.28.1.tar.gz

  4. tar -xzvf perl-5.28.1.tar.gz

  5. cd perl-5.28.1

  6. ./configure.gnu --prefix=$HOME/local

  7. make && make install

配置 path

这样操作完了以后,会发现已经建立了 $HOME/local/bin的文件夹,需要将这个文件加到 path 中。

源码安装 openresty

  1. cd $HOME/source

  2. wget https://openresty.org/download/openresty-1.13.6.2.tar.gz

  3. tar -xzvf openresty-1.13.6.2.tar.gz

  4. cd openresty-1.13.6.2

  5. ./configure --prefix=$HOME/local/openresty --sbin-path=$HOME/local/bin

  6. gmake && gmake install

为了使用 opm ,需要将 $HOME/local/openresty/bin 也加入到 PATH 中

配置 nginx 权限以使之可以使用80端口

  1. 切换回 root 权限

  2. 执行下面的命令(延续我们之前的 www 用户 )

  1. chown root /home/www/local/bin/nginx

  2. chmod u+s /home/www/local/bin/nginx

现在开始,nginx 已经可以启动了。

使用 OPM

安装一个包

  1. opm install sumory/lor

这时屏幕输出如下: 

发布一个包(终于到本文件重点了)

配置你的 git 信息

  1. vi ~/.opmrc

看到如下信息:

 这里有两个值,一个是 githubaccount,顾名思义,你的基友网站的帐号
另外一个是 github
token,按照提示,登录 github 后,进入https://github.com/settings/tokens,

  1. 选择generate new token:

  2. 按照文档的要求,选择 read:org,user:email 的权限:

  3. 将生成的 token贴到.opmrc 文件下。

配置包的信息

1.进入要发布的目录下: 2.新建一个 dist.ini 的文件。 其内容如下:

  1. name = open-tiny-util

  2. abstract = Utils of Openresty

  3. author = yfge(geyunfei@gmail.com)

  4. is_original = yes

  5. license = apache2

  6. repo_link = https://github.com/yfge/open-tiny-util

  7. lib_dir = lib

  8. doc_dir = lib

  9. version = 0.1

  10. main_module = lib/tiny/util/array.lua

name 是包名称,最终发布会以你的github帐号/name 进行命名
比如本拐的这个小工具就是 yfge/open-tiny-util
absctract 是包的说明
auhor 作者 isoriginal 说明是一个原创的代码库还是 fork 他人的分支(好程序员的设定)
lib
dir 源码的目录
docdir 文档的目录
vesion 版本,现在似乎只支持 x.x.x 的形式,不能加 beta 之类的
main
module 主入口,这个如果不写的话会自动生成。
注意:main_module 的 _VERSION 要和 version 一致,或是二者任取其一也可以。

配置好了以后,运行:

  1. opm build

输出如下提示:
最后,发布你的包:

  1. opm upload

这时在 opm.openresty.org 已经可以看你的发布了:

最后,我们可以试验一下安装:

  1. opm install yfge/open-tiny-util

OK 开始你的 OPM 之旅吧


关于老拐瘦


散养程序猿,野生架构狮

二流搬砖工,三流摄影师

假正经真逗比,装文艺实二逼

所以,这么一个公众号里

会有代码,有段子,有美图,有鸡汤

反正,乱七八遭的,没准碰上哪个刚好就烦到您了呢

啥也不说,扫码关注吧



相关内容

    暂无相关文章