搭建本地pypi源方法 – 僅同步openstack依賴的的pypi軟體包
阿新 • • 發佈:2019-01-05
使用devstack搭建openstack開發環境,一個很頭疼的問題就是devstack通過pip安裝依賴的一些軟體包,由於網路環境的差異,導致很多無法連線外網或者連線外網受限的實驗室環境非常崩潰,前面一篇文章介紹過《基於CentOS的pip本地源搭建方法》,文中的方法是採用bandsnatch工具與官方的pypi源同步,此方法對於openstack開發者來說,有以下缺點:
(1)bandsnatch僅支援全量同步,不支援指定軟體包同步,同步量巨大,非常耗時,而且openstack僅僅依賴少量的軟體包;
(2)bandsnatch僅支援與https的源進行同步,不支援http的源同步,只能與官方源同步,不能與國內速度快的源,比如豆瓣的源同步;
這裡介紹一種僅同步openstack依賴的pypi軟體包的方法,而且但支援與https的源同步,也支援與http的源同步。
具體步驟如下:
(1)建立存放pypi軟體包的目錄,比如在根下建立目錄/pypi
- # mkdir /pypi
- sudo pip install pip2pi
-
git clone https://github.com/wolever/pip2pi
-
cd pip2pi
- sudo python setup.py install
-
vim ~/.pip/.pip.conf
-
[global
- index-url = http://pypi.douban.com/simple
-
pip2tgz /pypi name==version
- 比如: pip2tgz /pypi pbr==0.5.21
-
pip2tgz /pypi -r ./requirements.txt
- 注: requirements.txt裡面寫入需要同步的pypi軟體包
-
pbr>=0.6,<
-
SQLAlchemy>=0.7.8,<=0.9.99
-
amqplib>=0.6.1
-
anyjson>=0.3.3
-
argparse
-
boto>=2.12.0,!=2.13.0
-
eventlet>=0.13.0
-
Jinja2
-
kombu>=2.4.8
-
lxml>=2.3
-
Routes>=1.12.3
-
WebOb>=1.2.3
-
greenlet>=0.3.2
-
PasteDeploy>=1.5.0
-
Paste
-
sqlalchemy-migrate>=0.8.2,!=0.8.4
-
netaddr>=0.7.6
-
suds>=0.4
-
paramiko>=1.9.0
-
pyasn1
-
Babel>=1.3
-
iso8601>=0.1.9
-
jsonschema>=2.0.0,<3.0.0
-
python-cinderclient>=1.0.6
-
python-neutronclient>=2.3.4,<3
-
python-glanceclient>=0.9.0
-
python-keystoneclient>=0.7.0
-
six>=1.5.2
-
stevedore>=0.14
-
websockify>=0.5.1,<0.6
-
wsgiref>=0.1.2
-
oslo.config>=1.2.0
-
oslo.rootwrap
-
pycadf>=0.4.1
- oslo.messaging>=1.3.0a9
- dir2pi /pypi ###對pypi目錄下的所有軟體包建立索引
-
pip2acmeco name
- pip2acmeco -r requirements.txt
- ln -s /pypi /var/www/html/pypi
(8)配置使用新搭建的pypi源
-
vim ~/.pip/.pip.conf
-
[global]
- index-url = http://your_host_ip/pypi/simple
注: 可能對不同的os發行版或版本,會出現某些特殊的問題,後續會專門寫篇文章總結碰到的問題。
---------------------------------------------------
微博:@Marshal-Liu
Email: [email protected]
歡迎交流!
---------------------------------------------------