如何搭建本地的PIP源提高Devstack和venv环境的安装速度

背景

使用Devstack进行研发环境搭建的时候,或者在进行单元测试创建venv环境时,总是需要从pip源进行大量安装,而因为网络问题导致无法正常安装的情况屡有发生,那么这里就介绍一下如何搭建本地的OpenStack的PIP源,并且如何在客户端正确设置来使用他们。

PIP源的搭建

首先,无疑先要有个Apache环境,建立一个叫pip的目录,存放所有的pip安装包。

搭建源的方法有两种,一种是直接将公网的pip源下载到本地,之后用crontab定期同步就可以了,这样的好处是大而全,不好的是对于网络带宽较小的,简直就是拉锯战。

这里介绍的第二种方法可能更经济实惠,我是从之前一篇源代码安装OpenStack获得的启发。基本的思路就是把所有的pip-requires和test-requires文件汇聚到一个文件,之后利用pip进行download,做到为OpenStack量身定制。

find . -name pip-requires -exec cat {} \; > pip-requires.all

find . -name test-requires -exec cat {} \; > test-requires.all

当然我们也可以把他们合并在一起,方便下载。这里建议把pip升级到最新版本之后再去下载,这里用一小段脚本去实现下载,而并没有用到pip -r的指令,因为通过实践发现,在遇到重复的pip包时候,pip会自动的停止下载。

#!/bin/bash

PIP_REQUIRE="pip-requires"
CACHE_PATH="pip"

while read LINE
do
  if [[ $LINE =~ ^[a-zA-Z] ]]
  then
    echo $LINE
    yes w | pip install $LINE --no-install -d pip -I
  fi
done < $PIP_REQUIRE

这样就完成了定制版pip源的下载。

客户端的设置

经过试验发现,如果通过本地的pip源进行安装,需要让pip和easyinstall同时指向本地pip源,否则仍然会有包从远程进行下载。具体方式如下:

vi $HOME/.pip/pip.conf

[global]
find-links = http://192.168.0.30/pip
no-index = true

vi $HOME/.pydistutils.cfg

[easy_install]
index_url = http://192.168.0.30/pip

此时再次运行devstack或者run_tests.sh -f -V的时候,速度应该会快很多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老孙正经胡说

创作不易,感谢您的关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值