搭建本地pypi源方法 – 仅同步openstack依赖的的pypi软件包
2014-07-15 22:03
274 查看
使用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
(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/.pip.conf
[global]
index-url = http://pypi.douban.com/simple (4)单个软件包同步
pip2tgz /pypi name==version
比如: pip2tgz /pypi pbr==0.5.21
(5)批量同步
pip2tgz /pypi -r ./requirements.txt
注: requirements.txt里面写入需要同步的pypi软件包
下面来看下nova模块的requirements.txt文件里面的内容,执行批量同步后,会依次将以下软件同步到/pypi目录下,自己也可以按照如下格式编写适合自己的requirements.txt:
pbr>=0.6,<1.0
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
(6)同步完成后要建立索引
dir2pi /pypi ###对pypi目录下的所有软件包建立索引
或者对指定的软件包更新其索引
pip2acmeco name
pip2acmeco -r requirements.txt
(7)配置web访问界面,以apache为例
ln -s /pypi /var/www/html/pypi
重启apache即可。
(8)配置使用新搭建的pypi源
vim ~/.pip/.pip.conf
[global]
index-url = http://your_host_ip/pypi/simple
注: 可能对不同的os发行版或版本,会出现某些特殊的问题,后续会专门写篇文章总结碰到的问题。
---------------------------------------------------
微博:@Marshal-Liu
Email: ustcdylan@gmail.com
欢迎交流!
---------------------------------------------------
(1)bandsnatch仅支持全量同步,不支持指定软件包同步,同步量巨大,非常耗时,而且openstack仅仅依赖少量的软件包;
(2)bandsnatch仅支持与https的源进行同步,不支持http的源同步,只能与官方源同步,不能与国内速度快的源,比如豆瓣的源同步;
这里介绍一种仅同步openstack依赖的pypi软件包的方法,而且但支持与https的源同步,也支持与http的源同步。
具体步骤如下:
(1)建立存放pypi软件包的目录,比如在根下创建目录/pypi
# 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/.pip.conf
[global]
index-url = http://pypi.douban.com/simple (4)单个软件包同步
pip2tgz /pypi name==version
比如: pip2tgz /pypi pbr==0.5.21
(5)批量同步
pip2tgz /pypi -r ./requirements.txt
注: requirements.txt里面写入需要同步的pypi软件包
下面来看下nova模块的requirements.txt文件里面的内容,执行批量同步后,会依次将以下软件同步到/pypi目录下,自己也可以按照如下格式编写适合自己的requirements.txt:
pbr>=0.6,<1.0
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
(6)同步完成后要建立索引
dir2pi /pypi ###对pypi目录下的所有软件包建立索引
或者对指定的软件包更新其索引
pip2acmeco name
pip2acmeco -r requirements.txt
(7)配置web访问界面,以apache为例
ln -s /pypi /var/www/html/pypi
重启apache即可。
(8)配置使用新搭建的pypi源
vim ~/.pip/.pip.conf
[global]
index-url = http://your_host_ip/pypi/simple
注: 可能对不同的os发行版或版本,会出现某些特殊的问题,后续会专门写篇文章总结碰到的问题。
---------------------------------------------------
微博:@Marshal-Liu
Email: ustcdylan@gmail.com
欢迎交流!
---------------------------------------------------
相关文章推荐
- 搭建本地pypi源方法 – 仅同步openstack依赖的的pypi软件包
- mysql同步复制搭建方法指南详细步骤
- vista/win7本地连接状态未知,依赖服务或组无法启动的六种解决方法
- JavaScript实现同步于本地时间的动态时间显示方法
- MySQL同步复制搭建方法指南详细步骤
- yum localinstall 解决本地rpm包的依赖问题,以及yum 命令常用方法
- mysql同步复制搭建方法
- 【OpenStack】OpenStack系列1之OpenStack本地开发环境搭建&&向社区贡献代码
- maven添加本地jar 依赖的方法
- 利用pip2pi搭建本地pypi源
- 用reposync 同步YUM源到本地,搭建本地YUM源服务器
- openstack搭建过程中强制删除实例的方法
- (转)本地搭建环境wamp下提示不支持GD库的解决方法
- Openstack的python依赖包安装方法
- JavaScript实现同步于本地时间的动态时间显示方法
- 【转】用phpnow搭建本地php环境的方法说明
- vista/win7本地连接状态未知,依赖服务或组无法启动的六种解决方法
- centos6搭建本地openstack软件源
- 如何搭建搭建各个版本的openstack的本地yum源?
- centos6.5本地yum源搭建及使用方法