Jul 302013
 

为了加快devstack脚本的安装速度,所以必须解决PYPI的本地源制作。为了长远打算,把整个python官方都mirror到本地,类似Ubuntu 12.04的源,定期同步就可以。

要想让Devstack几分钟装完,你必须在本地

  • 本地的ubuntu 12.04源
  • 本地Openstack git源
  • 本地PYPI源

我自己不会写代码,这种活,就比较适合我来做,帮助同事提高一下开发环境搭建速度,这是我能做的事情。目前Ubuntu本地源,已经搞定,稳定运行快1年。git Openstack代码,我打算用gitlab来实现,后面再研究,难度不大。这次重点搞定PYPI。

搞一个本地pypi,其实就是安装python的这个包bandersnatch就可以,如果你是在Ubuntu下,那么估计就很简单,对着文档,应该就几分钟就可以搞定。由于我的Cobbler是在Centos下,日后也打算切换到Centos下,所有就希望在Centos 下去搞定,这样就变得很复杂,因为Centos6.x的Python是2.6.6,而这个软件是必须Python 2.7。

下载一个Python2.7,本地安装,本来也不是复杂的事情,不过自己手工安装,导致mirror的时候,出现https无法使用的问题。今天干净安装了一个centos 6.4,重复多次,总算是搞定。这次作法也比较专业,系统里有两个python版本.

2013年7月30日:基本把bandersnatch跑起来。

开发工具

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel \
ncurses-devel sqlite-devel readline-devel tk-devel

Python2.7.5

当前Python的2.7的最新版本是2.7.5

cd /opt
wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar zxvf Python-2.7.5.tgz
cd Python-2.7.5
./configure --prefix=/usr/local
make && make altinstall

Python2.7的库

centos默认带的是Python2.6的库,不同的版本有不同的库。

https://pypi.python.org/pypi/distribute

Python的网站,很多都是通过https下载,wget无法直接使用https,懒得折腾,下载本地上传到opt目录下.

cd /opt
unzip distribute-0.7.3.zip
cd distribute-0.7.3
python2.7 setup.py install

安装virtualenv

easy_install-2.7 virtualenv

Bandersnatch

https://pypi.python.org/pypi/bandersnatch/1.0.5

安装过程,其实是参考官方文档

cd /opt
virtualenv-2.7 bandersnatch
cd bandersnatch
bin/pip install -r https://bitbucket.org/ctheune/bandersnatch/raw/stable/requirements.txt

有可能运行出现中断和各种错误,多重复运行几次就ok.

设置bandersnatch

cd /opt/bandersnatch
bin/bandersnatch mirror

会出现一个提示

2013-07-30 12:56:45,925 WARNING: Config file '/etc/bandersnatch.conf' missing,
 creating default config.
2013-07-30 12:56:45,926 WARNING: Please review the config file, 
then run 'bandersnatch' again.

你就编辑 /etc/bandersnatch.conf 文件就可以。默认应该就可以,我也只是修改了一下pypi存放的位置,改成在/home 目录下。

#directory = /srv/pypi
directory = /home/pypi

设置Apache

我只需要把 /home/pypi/web 目录链接到apache目录下显示就可以

ln -s /home/pypi/web /var/www/html/pypi

设置客户端

假设你的Pypi目录是 http://10.1.199.5/pypi

在用户主目录下,

mkdir $HOME/.pip
vi $HOME/.pip/pip.conf

输入下面内容

[global]
index-url = http://10.1.199.5/pypi/simple

 

参考文档

http://toomuchdata.com/2012/06/25/how-to-install-python-2-7-3-on-centos-6-2/

https://pypi.python.org/pypi/bandersnatch

http://blog.csdn.net/xiaoquqi/article/details/9563997

http://www.v2ex.com/t/75316

http://pypi.sdutlinux.org/

  7 Responses to “CentOS 6.4 PYPI本地源制作”

  1. 刚好今天下午在尝试搭建pypi镜像,就看到你的blog,太好了。

    • 我是昨晚开始搞,现在正在下载中,速度还不错,估计需要明天晚上才能全部下载完。

  2. 太麻烦,直接pypi-server

  3. 请问 pypi源同步下来要占多少磁盘容量

  4. 试过了devpi, pep381client, pipy-server, bandersnatch才看到这个blog。

 Leave a Reply

(required)

(required)