Nexus搭建Pypi私库

系统环境:Windows 7 64位 专业版,以及 Windows 10 家庭中文版

第一步:搭建工具

  • 工具:Nexus Repository Manager OSS 3.x。我用的是3.13.0-01

  • 下载地址:https://www.sonatype.com/nexus-repository-oss

  • 安装方式:解压即可。我是解压到D:\nexus,这个看个人爱好,但是
    建议目录层级最好㳀一点,效率更好。

  • 启动方式:使用命令行启动。示例:

    cd D:\nexus\nexus-3.13.0-01\bin
    nexus.exe /run
    

    或者

    D:\nexus\nexus-3.13.0-01\bin\nexus.exe /run
    

    当然,你也可以看看官方文档:https://guides.sonatype.com/repo3/quick-start-guides/proxying-maven-and-npm/

  • 添加系统服务。nexus在运行时,会占用命令行窗口。输入回车,
    nexus就会停止运行。

    如果只是想cmd命令提示符不被占用,可以让程序后台运行。命令如下:

    start /b nexus.exe /run
    

    这个命令的作用与Linux下的&相似。示例:

    ./nexus /run &
    

    这样做仅仅只是让命令行(控制台)还可以重复利用而已。关闭cmd命令行
    窗口后,nexus也同样会跟着停止运行。

    因为不想每次开机都要启动一次,也不想每次启动就留一个黑窗口在那,
    而且,做为一个代理仓库,可能会经常用到。所以我将它添加为一个
    开机自启动的服务。以系统管理员身份打开命令提示符,运行如下命令:

    sc create nexus binPath= "D:\nexus\nexus-3.13.0-01\bin\nexus.exe /run" start= auto displayName= "Nexus Repository Manager"
    

    这个时候会提示“[SC] CreateService 成功”。

    运行services.msc命令,打开服务管理页面。就可以找到一个名为
    “Nexus Repository Manager”的服务。

    在服务上右键选择运行,或者是在cmd中执行sc start nexus命令,启动服务。

    如果是win7,这个时候就已经完成了。

    如果是win10,你会发现服务启动不了,你会得到一个这样的错误:

    错误1053:服务没有及时响应启动或控制请求

    这个问题,我找了很久没有找到原因,也没有找到解决办法。这个时候不要慌,
    解决不了就绕过吧。操作如下:

    服务--> Nexus Repository Manager --> 右键选择属性
    --> 恢复 --> 第一次失败后改为运行一个程序 --> 将程序设为
    "D:\nexus\nexus-3.13.0-01\bin\nexus.exe" --> 将命令行参数设置为
    "/run" --> 重新启动服务

第二步:配置代理仓库

  • 打开服务界面:localhost:8081

    注意:不要用IE,IE有可能打不开

  • 管理员登录:(默认帐号)用户名:admin,密码:admin123。

    登录成功后,页面上部原来的立方体图标旁边会多出一个齿轮的图标。
    点击切换到管理界面

  • 创建Blob Stores。在右边的导航栏中,Repository下有一个Blob Stores。
    建议创建一个,而不要都用默认的Default。由于我的私库不仅仅代理了Pypi的,
    还代理了Maven的仓库。为了区分,所以我创建了一个名为Pypi的Blob Store
    用于保存Python的库。

  • 创建Repositories。
    首先创建代理仓库,类型是pypi(proxy),建议多创建几个。

    pypi国内镜像以及官方源

    阿里云 http://mirrors.aliyun.com/pypi/

    中国科技大学 https://pypi.mirrors.ustc.edu.cn/

    豆瓣(douban) http://pypi.douban.com/

    清华大学 https://pypi.tuna.tsinghua.edu.cn/

    中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/

    官方源 http://pypi.python.org/pypi/

    设置代理仓库后,最好再加一个组仓库,类型是pypi(group),
    然后把创建的仓库全部添加进去。这样只要引用组仓库就可以自动
    从所有的仓库中获取数据。

    注意: 代理指向的地址不要加simple结尾

第三步:配置pip

配置好的组仓库地址:http://localhost:8081/repository/pypi/

配置好仓库后,在使用时可以临时使用。

pip install -i http://localhost:8081/repository/pypi/simple some-package

也可以设为默认。更改pip请求配置如下:

pip config set global.index-url http://localhost:8081/repository/pypi/simple

注意: 要在仓库地址后加上simple

配置好仓库地址后,本地就可以正常访问了。但是由于是http的缘故,
非本机访问就会发现如下提示:

The repository located at xxx is not a trusted or secure host and is being ignored. 

这个时候需要验证服务器主机

pip install -i http://localhost:8081/repository/pypi/simple some-package --trusted-host localhost

也可以设为默认。更改pip请求配置如下:

pip config set install.trusted-host localhost

你可能感兴趣的:(Nexus搭建Pypi私库)