调研过程
我们发现了2中可以快速实现私有pypi源的方案,一种是pypiserver,另外一种是pip2pi
首先来说说pypiserver吧
优点
- 运行极其简单,然后执行就对了
- 支持在线传包
- 支持离线放包到数据目录
- 自动生成索引
缺点
- 自动生成索引,访问必须要访pypiserver启动的服务,酱汁性能啥的就不敢保证了。
再来说下pip2pi吧
优点
- 支持主动缓存包功能,即小公司可以通过他做公司内部的镜像站点(主动缓存得指定包名或者使用requirement.txt文件进行,构建全量型的缓存节点的话可以使用bandersnatch)
- 支持主动生成索引( 整体 or 局部 )
缺点
- 没有上传包功能的支持,需要自主实现
- 其他的目前还没测到,后边测到了再更新文章吧
实现过程,其实实现特别简单
安装pip2pi后会有几个可执行命令分别如下:
pip2tgz 下载pip源中的数据,存放到本地
pip2tgz /dir/ django==1.9.7
pip2tgz /dir/ -r list/requirements.txt
生成索引数据
dir2pi /dir/
更新索引(暂没测试)
pip2acmeco django
pip2acmeco -r list/requirements.txt
本次实现,我们仅用到了他的一个功能点"生成索引数据"
- 首先要定义好目录结构,酱汁好实现后边的自动建立索引
/home/web目录../pypi私有仓库目录1/
/home/web目录../pypi私有仓库目录2/
-
开放数据写入接口,这个就是rsync啦,要加验证哦。
-
编写一个自动build的脚本,数据量小的时候可以直接写任务计划1分钟一次,记得要加锁,防止程序同时对一个目录一起操作。
-
web(apache/nginx都可以喽)
网友评论