搭建本地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软件

  1. sudo pip install pip2pi

或者编译安装

  1. git clone https://github.com/wolever/pip2pi
  2. cd pip2pi
  3. sudo python setup.py install

(3)配置要同步的pypi源,比如以与豆瓣的pypi源同步为例

  1. vim ~/.pip/.pip.conf
  2. [global]
  3. index-url = http://pypi.douban.com/simple

(4)单个软件包同步

  1. pip2tgz /pypi name==version
  2.  
  3. 比如: pip2tgz /pypi pbr==0.5.21

(5)批量同步

  1. pip2tgz /pypi -r ./requirements.txt
  2. 注: requirements.txt里面写入需要同步的pypi软件包

下面来看下nova模块的requirements.txt文件里面的内容,执行批量同步后,会依次将以下软件同步到/pypi目录下,自己也可以按照如下格式编写适合自己的requirements.txt:

  1. pbr>=0.6,<1.0
  2. SQLAlchemy>=0.7.8,<=0.9.99
  3. amqplib>=0.6.1
  4. anyjson>=0.3.3
  5. argparse
  6. boto>=2.12.0,!=2.13.0
  7. eventlet>=0.13.0
  8. Jinja2
  9. kombu>=2.4.8
  10. lxml>=2.3
  11. Routes>=1.12.3
  12. WebOb>=1.2.3
  13. greenlet>=0.3.2
  14. PasteDeploy>=1.5.0
  15. Paste
  16. sqlalchemy-migrate>=0.8.2,!=0.8.4
  17. netaddr>=0.7.6
  18. suds>=0.4
  19. paramiko>=1.9.0
  20. pyasn1
  21. Babel>=1.3
  22. iso8601>=0.1.9
  23. jsonschema>=2.0.0,<3.0.0
  24. python-cinderclient>=1.0.6
  25. python-neutronclient>=2.3.4,<3
  26. python-glanceclient>=0.9.0
  27. python-keystoneclient>=0.7.0
  28. six>=1.5.2
  29. stevedore>=0.14
  30. websockify>=0.5.1,<0.6
  31. wsgiref>=0.1.2
  32. oslo.config>=1.2.0
  33. oslo.rootwrap
  34. pycadf>=0.4.1
  35. oslo.messaging>=1.3.0a9

(6)同步完成后要建立索引

  1. dir2pi /pypi ###对pypi目录下的所有软件包建立索引

或者对指定的软件包更新其索引

  1. pip2acmeco name
  2. pip2acmeco -r requirements.txt

(7)配置web访问界面,以apache为例

  1. ln -s /pypi /var/www/html/pypi

重启apache即可。

(8)配置使用新搭建的pypi源

  1. vim ~/.pip/.pip.conf
  2. [global]
  3. index-url = http://your_host_ip/pypi/simple


  注: 可能对不同的os发行版或版本,会出现某些特殊的问题,后续会专门写篇文章总结碰到的问题。

猜你喜欢

转载自blog.csdn.net/weixin_41738417/article/details/82259785