openresty的 opm 踩坑之旅
前言
引
从一接触openresty,我一直在追求一种比较优雅的包管理方式
从 git submodules , luarocks 到 opm 可谓踩坑无数
这是一件有时间就会怨念一下的事情
时至今日,终于把 opm 这一套踩全了
不敢私享,抛砖引玉
本文中所有的脚本都在阿里云centos 7.0.4镜像上测试通过
杠
不会用编译安装配置服务器的程序员不是好运维
自从接触了 configure
什么 yum apt-get 都是浮云
环境准备
删除 perl
阿里centOS 的镜像中 perl 的一些组件不是很完备,在这里踩了很多坑
yum remove -y perl
建立工作目录
sudo adduser www
su www
cd $HOME
mkdir $HOME/local
mkdir $HOME/source
安装 perl
su www
cd $HOME/source
wget https://www.cpan.org/src/5.0/perl-5.28.1.tar.gz
tar -xzvf perl-5.28.1.tar.gz
cd perl-5.28.1
./configure.gnu --prefix=$HOME/local
make && make install
配置 path
这样操作完了以后,会发现已经建立了 $HOME/local/bin
的文件夹,需要将这个文件加到 path 中。
源码安装 openresty
cd $HOME/source
wget https://openresty.org/download/openresty-1.13.6.2.tar.gz
tar -xzvf openresty-1.13.6.2.tar.gz
cd openresty-1.13.6.2
./configure --prefix=$HOME/local/openresty --sbin-path=$HOME/local/bin
gmake && gmake install
为了使用 opm ,需要将 $HOME/local/openresty/bin 也加入到 PATH 中
配置 nginx 权限以使之可以使用80端口
切换回 root 权限
执行下面的命令(延续我们之前的 www 用户 )
chown root /home/www/local/bin/nginx
chmod u+s /home/www/local/bin/nginx
现在开始,nginx 已经可以启动了。
使用 OPM
安装一个包
opm install sumory/lor
这时屏幕输出如下:
发布一个包(终于到本文件重点了)
配置你的 git 信息
vi ~/.opmrc
看到如下信息:
这里有两个值,一个是 githubaccount,顾名思义,你的基友网站的帐号
另外一个是 githubtoken,按照提示,登录 github 后,进入https://github.com/settings/tokens,
选择generate new token:
按照文档的要求,选择 read:org,user:email 的权限:
将生成的 token贴到.opmrc 文件下。
配置包的信息
1.进入要发布的目录下: 2.新建一个 dist.ini 的文件。 其内容如下:
name = open-tiny-util
abstract = Utils of Openresty
author = yfge(geyunfei@gmail.com)
is_original = yes
license = apache2
repo_link = https://github.com/yfge/open-tiny-util
lib_dir = lib
doc_dir = lib
version = 0.1
main_module = lib/tiny/util/array.lua
name 是包名称,最终发布会以你的github帐号/name 进行命名
比如本拐的这个小工具就是 yfge/open-tiny-util
absctract 是包的说明
auhor 作者 isoriginal 说明是一个原创的代码库还是 fork 他人的分支(好程序员的设定)
libdir 源码的目录
docdir 文档的目录
vesion 版本,现在似乎只支持 x.x.x 的形式,不能加 beta 之类的
mainmodule 主入口,这个如果不写的话会自动生成。
注意:main_module 的 _VERSION 要和 version 一致,或是二者任取其一也可以。
配置好了以后,运行:
opm build
输出如下提示:
最后,发布你的包:
opm upload
这时在 opm.openresty.org 已经可以看你的发布了:
最后,我们可以试验一下安装:
opm install yfge/open-tiny-util
OK 开始你的 OPM 之旅吧
关于老拐瘦
散养程序猿,野生架构狮
二流搬砖工,三流摄影师
假正经真逗比,装文艺实二逼
所以,这么一个公众号里
会有代码,有段子,有美图,有鸡汤
反正,乱七八遭的,没准碰上哪个刚好就烦到您了呢
啥也不说,扫码关注吧
openresty的 opm 踩坑之旅相关推荐
- Vue踩坑之旅(一)—— 数组、对象的监听
作为一个接触 vue 才一个多月的小白,马上就接手基于 vue 的大型商城项目,其间真是跌跌撞撞踩了好多坑(o(╥﹏╥)o).在此写下自己的踩坑之旅,希望给跟我一样还在自学 vue 的同学一些帮助,另 ...
- 微信开发踩坑之旅 之 开发准备及服务器配置
在工作和兴趣的机缘巧合之下,我开始接触微信开发.在这里简单记述自己的微信开发踩坑之旅. 首先,由于本人标准的理工科生,记述的语言有所不足,我尽量说明准确和详细点. 本文记述主线 ·申请公众号 ·公众号 ...
- VR制作中必须踩的坑365之037(oculus2、UE4、UE5、VR记录一年的踩坑之旅)Maya / ZBrush / Substance Painter倒来倒去
VR制作中必须踩的坑365之037(oculus2.UE4.UE5.VR记录一年的踩坑之旅)Full 3D GAME ASSET workflow ( Maya / ZBrush / Substanc ...
- 重装win10系统+Ubuntu16.04的踩坑之旅(联想拯救者r720)
重装win10系统+Ubuntu16.04的踩坑之旅(联想拯救者r720) 碎碎念:原本双系统用得很开心的,在手贱删了Ubuntu系统的某些隐藏文件之后导致Ubuntu系统不能正常使用,在某种程度强迫 ...
- VR制作中必须踩的坑365之044(oculus2、UE4、UE5、VR记录一年的踩坑之旅)拳击VR小游戏红绿灯
VR制作中必须踩的坑365之043(oculus2.UE4.UE5.VR记录一年的踩坑之旅)拳击VR制作起来,拳击动画人物 How to create box minigame in VR (UE4 ...
- VR制作中必须踩的坑365之045(oculus2、UE4、UE5、VR记录一年的踩坑之旅)iclone8来来来告诉你剁手坑
VR制作中必须踩的坑365之045(oculus2.UE4.UE5.VR记录一年的踩坑之旅) iClone 8 Work in Progress - Part One: Dramatically Si ...
- Android google翻译踩坑之旅
# Android google翻译踩坑之旅 最近由于工作需求,需要为游戏Android平台接入Google翻译的SDK,由于关于翻译的文章非常少,访问官方文档又需要翻墙,更可气的是找到的博客写了 ...
- python 同花顺thstrader_Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)...
代码示例支持 平台: Centos 6.3 Python: 2.7.14 1.1 踩坑案例 pid, ppid是大家比较常见的术语, 代表进程号,父进程号. 但pgid是个什么鬼? 了解pgid之前, ...
- VR制作中必须踩的坑365之042(oculus2、UE4、UE5、VR记录一年的踩坑之旅)2D图片变成3D最快方法:使用怪兽建模(Monster Mash)
VR制作中必须踩的坑365之041(oculus2.UE4.UE5.VR记录一年的踩坑之旅) Turn 2D Images into 3D Objects with Monster Mash! (Fr ...
最新文章
- Web开发常见的软件架构
- 众创汇定制如何革新工业4.0?
- torch多维取数据
- error_reporting()
- 最小割板子题——[USACO5.4]奶牛的电信
- 电脑中没有oracle服务器,用AnySQL在没有oracle客户端的服务器上发送邮件
- Eclipse出现the type java.lang.CharSequence can't be resolved.
- Hadoop安装(Ubuntu Kylin 14.04)
- H3C和cisco单臂路由和三层交换机实现VLAN之间的互通
- 任意Android设备上运行测试
- IT项目经理前景及优劣势分析
- 谈谈我对零售云在云原生总结与思考
- 彻底搞懂二进制、进制换算如此简单!十进制转化二进制,二进制转化十进制
- java sqlite 多线程并发_C#_C#解决SQlite并发异常问题的方法(使用读写锁),本文实例讲述了C#解决SQlite并 - phpStudy...
- kali下经典的ddos攻击软件_Kali-DDoS工具集合
- python人脸识别门禁_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(一)
- 044_面向对象_17_封装
- 纯css打造超能陆战队--大白
- 河南朱砂服务器位置,探访河南境内规模最大的龙山遗址 龙山大墓主人头部疑似涂有朱砂...
- 由Monkey测试引发的跨多个进程的Android系统死锁问题分析
热门文章
- java传真发送_调用java API发送传真
- A站(ACFun)爬虫爬取并播放、下载视频(JAVA)
- openEuler 搭建java开发环境
- 英雄联盟s10信息详解
- Delphi图像处理 -- 高保真反差
- 基于JAVA成都某4S店销售管理系统计算机毕业设计源码+系统+lw文档+部署
- 常用的计算机病毒检测方法都有哪些?
- skt7850鸿蒙策略,s5总决赛小组赛:SKT不败战绩晋级八强
- Latex所有常用数学符号吐血整理(包含大括号、等式对齐、矩阵)
- android锁屏快捷键设置,【Android高级】锁屏功能简单实现