1. 程式人生 > >搭建本地pypi源方法 – 僅同步openstack依賴的的pypi軟體包

搭建本地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. 比如: pip2tgz /pypi pbr==0.5.21
(5)批量同步
  1. pip2tgz /pypi -./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 -/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發行版或版本,會出現某些特殊的問題,後續會專門寫篇文章總結碰到的問題。



---------------------------------------------------
微博:@Marshal-Liu
Email: [email protected]
         歡迎交流!

---------------------------------------------------