zoukankan      html  css  js  c++  java
  • 基于Bandersnatch搭建本地pypi源

    基于Bandersnatch搭建本地pypi源

    准备工作

    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
    yum install libffi-devel -y
    wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
    tar -xvJf Python-3.7.3.tar.xz
    cd Python-3.7.3
    ./configure prefix=/usr/local/python3
    make && make install
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    
    vim ~/.bash_profile
    # .bash_profile
    # Get the aliases and functions
    if[ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
    # User specific environment and startup programs
    PATH=$PATH:$HOME/bin:/usr/local/python3/bin
    export PATH
    
    source ~/.bash_profile
    
    # 测试
    python3 -V
    	Python 3.7.3
    # pip3 -V
       pip 19.0.3 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)
    

    安装bandersnatch

    # pip3 install bandersnatch
    # find / -name master.py
    /usr/local/python3/lib/python3.7/site-packages/bandersnatch/master.py
    # cp /usr/local/python3/lib/python3.7/site-packages/bandersnatch/master.py{,.bak}
    # vim /usr/local/python3/lib/python3.7/site-packages/bandersnatch/master.py
    
    ## 生成配置文件
    # bandersnatch mirror
    2019-05-06 10:30:17,555 WARNING: Config file '/etc/bandersnatch.conf' missing, creating default config.
    2019-05-06 10:30:17,555 WARNING: Please review the config file, then run 'bandersnatch' again.
    
    ## 修改配置文件/etc/bandersnatch.conf,根据自己的情况修改;
    # vim /etc/bandersnatch.conf
    [mirror]
    ; The directory where the mirror data will be stored.
    directory = /srv/pypi
    ; Save JSON metadata into the web tree:
    ; URL/pypi/PKG_NAME/json (Symlink) -> URL/json/PKG_NAME
    json = false
    
    ; The PyPI server which will be mirrored.
    ; master = https://pypi.python.org
    ; scheme for PyPI server MUST be https
    master = https://pypi.python.org
    timeout = 30
    

    根据实际情况,重点修改以下两个配置,directory 指 package 在本地存放的位置(要保证该目录空间足够,预留300G以上),master 指被同步的源。

    ## 下载所有 package 至本地(更新本地的 pacakge也用这个命令)
    bandersnatch -c /etc/bandersnatch.conf mirror
    

    通过nginx发布

    yum install nginx -y
    vim nginx.conf
    server {
        listen *:80;
        server_name locahost;
        root /srv/pypi/web;
        autoindex on;
        charset utf-8;
    }
    

    测试:http://172.28.88.102/simple/

    客户端测试

    # cat ~/.pip/pip.conf
    [global]
    trusted-host=172.28.88.102
    index-url=http://172.28.88.102/simple
    
    # pip install baker
    # pip list  | grep Baker
    Baker (1.3)
    
  • 相关阅读:
    Javascript文件加载:LABjs和RequireJS
    【译】前端开发者的基本要求
    正则基础之——NFA引擎匹配原理
    JavaScript 设计模式 安全沙箱模式
    jsdoc_toolkit
    JS判断手机浏览器
    JavaScript:Object.prototype.toString方法的原理
    FullCalendar 官方文档翻译2
    浏览器缓存机制
    jQuery.extend 函数详解
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/14425800.html
Copyright © 2011-2022 走看看