11

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

 3 years ago
source link: https://blog.csdn.net/xiaoquqi/article/details/9563997
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何搭建本地的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的时候,速度应该会快很多。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK