美文网首页程序员
Nexus搭建Pypi私库

Nexus搭建Pypi私库

作者: 宅男9号 | 来源:发表于2019-03-01 16:48 被阅读72次

    系统环境: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私库

        本文链接:https://www.haomeiwen.com/subject/dwwduqtx.html