微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

搭建本地pypi源方法 – 仅同步openstack依赖的的pypi软件包

    使用devstack搭建openstack开发环境,一个很头疼的问题就是devstack通过pip安装依赖的一些软件包,由于网络环境的差异,导致很多无法连接外网或者连接外网受限的实验室环境非常崩溃,前面一篇文章介绍过《 基于CentOS的pip本地源搭建方法 》,文中的方法是采用bandsnatch工具与官方的pypi源同步,此方法对于openstack开发者来说,有以下缺点:
    (1)bandsnatch仅支持全量同步,不支持指定软件包同步,同步量巨大,非常耗时,而且openstack仅仅依赖少量的软件包;
    (2)bandsnatch仅支持与https的源进行同步,不支持http的源同步,只能与官方源同步,不能与国内速度快的源,比如豆瓣的源同步;
   这里介绍一种仅同步openstack依赖的pypi软件包的方法,而且但支持与https的源同步,也支持与http的源同步。

具体步骤如下:
(1)建立存放pypi软件包的目录,比如在根下创建目录/pypi
  1. # mkdir /pypi
(2)安装pip2pi软件
sudo pip install pip2pi
或者编译安装
git clone https://github.com/woLever/pip2pi
  • cd pip2pi
  • sudo python setup.py install
  • (3)配置要同步的pypi源,比如以与豆瓣的pypi源同步为例
    vim ~.pip.conf
  • [global]
  • index-url = http/pypi.douban/simple
  • (4)单个软件包同步
    pip2tgz /pypi name==version

  • 比如: pip2tgz /pypi pbr=0.521
  • (5)批量同步
    /pypi -./requirements.txt
  • 注: requirements.txt里面写入需要同步的pypi软件包
  • 下面来看下nova模块的requirements.txt文件里面的内容,执行批量同步后,会依次将以下软件同步到/pypi目录下,自己也可以按照如下格式编写适合自己的requirements.txt:
    pbr>=0.6,<1.0
  • sqlAlchemy.7.8<.9.99
  • amqplib.1
  • anyjson.3.3
  • argparse
  • boto=2.12.0!.13.0
  • eventlet.0
  • Jinja2
  • kombu.4.8
  • lxml.3
  • Routes=1.3
  • WebOb.2.3
  • greenlet.2
  • PasteDeploy.5.0
  • Paste
  • sqlalchemy-migrate.4
  • netaddr.6
  • suds.4
  • paramiko.0
  • pyasn1
  • Babel.3
  • iso8601.1.9
  • jsonschema<3.0
  • python-cinderclient.6
  • python-neutronclient<3
  • python-glanceclient-keystoneclient.0
  • six.2
  • stevedore.14
  • websockify<0.6
  • wsgiref.2
  • oslo.config.0
  • oslo.rootwrap
  • pycadf.1
  • oslo.messaging.0a9
  • (6)同步完成后要建立索引
    dir2pi /pypi ###对pypi目录下的所有软件包建立索引
    或者对指定的软件包更新其索引
    pip2acmeco name
  • pip2acmeco -r requirements.txt
  • (7)配置web访问界面,以apache为例
    ln -/var/www/html重启apache即可。
    (8)配置使用新搭建的pypi源
  • vim .conf
  • /your_host_ip/pypi/simple

  •   注: 可能对不同的os发行版或版本,会出现某些特殊的问题,后续会专门写篇文章总结碰到的问题。
    ---------------------------------------------------
    微博:@ Marshal-Liu
    Email: [email protected]
             欢迎交流!
     
    ---------------------------------------------------

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

    相关推荐