nx3m的总结

来源:互联网 发布:自动统计百度贴吧数据 编辑:程序博客网 时间:2024/06/08 04:38

ngx3m 是一个使用Python开发的自动查找、安装Tengine/nginx的工具,目前功能尚不完善。ngx3m包括三个主要组件:模块资源库、命令行工具、模块发布工具。主要设计思想见:设计思想

使用


部署

  1. pip install githubpy
  2. pip install markdown
  3. git clone https://code.csdn.net/lyt_44/ngx3m.git

切换目录至ngx3m/ngx3m下便可以使用命令行工具。

命令行工具选项

  1. python ngx3m.py [options] [cmds]

options

以下选项可一次指定多个。

  • -p/--prefix 
    指定tengine的prefix,可以是已经安装的tengine,也可以是待安装的。该选项使用一次后,ngx3m会记录下来,下一次可不需指定。
  • -n/--ngx_src 
    如果要使用源码进行编译,必须指定tengine源码目录。 该选项只需要指定一次。
  • -a/--arguments 
    如果有其他的config选项,通过该选项来指定。
  • -d 
    明确要求使用dso tool进行安装。

cmds

以下命令一次只能指定一个。 
- install(模块安装)

  1. python ngx3m.py install module_name
  • search(模块搜索)
  1. python ngx3m.py search module_name
  • upgrade(模块升级)
  1. python ngx3m.py upgrade module_name
  • update(资源库更新)
  1. python ngx3m.py update
  • reset(复位,仅供测试)
  1. python ngx3m.py reset

无法获取代码

ngx3m会通过github的api从github上获取模块源代码,如果出现网络连接的问题 
- 检查系统/etc/hosts文件中是否有api.github.com对应项,如果有的话,请删除。 
- 使用代理或VPN,免费代理推荐goagent(请设置系统全局代理).

资源库

需要安装依赖:

  1. pip install githubpy

ngx3m/resources中resource.py是获取资源的主要文件。本地可以直接执行一下命令获取:

  1. python resource.py

如果要部署到其他平台,可以导入resource中的Resource类进行操作。 
如果出现github Limit,那么需要在resource.py中输入github账户和密码。

发布工具

暂未实现,平台搭建之后会完善。

ngx3m的问题

目前ngx3m已经可以使用了,但是我自认为代码写得比较烂,不过总算解决了从无到有的问题。这一个多月的开发基本上都集中在命令行工具上,然而这只是整个系统的一部分。

命令行工具

  1. 目前实现的ngx3m架构比较混乱(我自己目前能力只能这样了,正在修炼中....),之后需要重构。
  2. Nginx模块安装中需要超级权限,于是要求使用sudo,但是正常流程中./configure 和make 阶段是不需要超级权限的,这样导致一个问题:使用ngx3m编译模块后的源码目录里创建的文件也都必须使用超级权限来操作。千言万语汇成一句话------>Python怎么灵活控制权限呢?

资源库

目前的资源库是用Python脚本从Nginx的wiki和github上爬取来的,脚本运行也非常依赖网络状况(GFW限制,sae上基本没办法正常运行),因此后期会自己做一个资源库,包含自己的数据库和网页。

发布工具

因为目前没有一个平台来支撑,所有发布工具实际上基本没有怎么实现,在平台搭建完成之后这部分会完成的。

未来

目前ngx3m比较粗糙,可能bug也很多,后期会找些小伙伴重写,打算构架一个模块发布和部署平台。

感谢

感谢陈传文老师的耐心指导。


    0 0
    原创粉丝点击