• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<八>企业级开源仓库nexus3实战应用–使用nexus3配置Python私有仓库

nexus eryajf 2周前 (01-05) 98°C 已收录 0个评论
本文预计阅读时间 10 分钟

*系列汇总*

一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通。事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存下来,然后每次就需要手动的上传,不方便极了。我听了之后,一方面确实因为各种忙碌没有抽开时间,但另一方面,则是每当打开私服面对着满屏的英文时,我都觉得眼前私服毕竟还能用,就不折腾了。

直到偶然一个契机,在网上看到一篇介绍nexus3.x的文章,文章写得也比较清晰,我也有兴致细读下去,就这样,开启了我的nexus3私服之旅。

开始我以为这个只是针对maven私服而存在的工具,后来才发现它所支持的,竟然将运维日常所面临的各种私服都包括了,这就极大的引发了我的钻研兴致,从maven私服的研究开始,一发不可收拾的,就又写出了一个nexus3系列教程,涵盖了安装,配置,maven私服,maven私服从2.x到3.x的迁移,docker私服,npm私服,yum私服,纵观全网络,大概也找不到一个人如此这般的,倾尽所有的,知无不言的,言无不尽的将nexus3作为一个系列写成文章的了。而现在,如果再有人与我说起私服的事情,至少我不会跑了,或许更想停下来了,,,哈哈。这就是付出学习所给人带来的心境上的转化!

前言啰嗦几句,愿您在这个小系列中,学习愉快!

想要查看本系列其他文章:请点此处跳转

希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!

很多时候在部署一些开源的Python项目时,会被各种包的问题给恶心到,要么是找不到,要么是网络问题下不下来,在许多不够细心地时候,就那么踩坑了。现在公司有一些小伙伴在写Python项目,私服也在,因此拉出来简简单单添加了一下Python的,过程同其他几种私服一样的,都非常简单,这里仅做简单记录。

搭建Python私服,我们依旧使用nexus3。

与其他私服一样的,Python私服同样有三种类型:

  • hosted : 本地存储,便于开发者将个人的一些包上传到私服中
  • proxy : 提供代理其他仓库的类型,如豆瓣的pypi仓库
  • group : 组类型,实质作用是组合多个仓库为一个对外的地址

那么就来一个一个创建。

1,创建blob存储。

为其创建一个单独的存储空间。

image-20191229210621347

2,创建hosted类型的pypi。

  • Name: 定义一个名称local-pypi
  • Storage
    Blob store,我们下拉选择前面创建好的专用blob:pypi-hub。
  • Hosted
    开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy。这个很重要!

image-20191229210848795

3,创建一个proxy类型的pypi仓库。

  • Name: proxy-pypi
  • Proxy
    • Remote Storage: 远程仓库地址,这里填写: http://pypi.python.org/pypi/
      上边的是官方的仓库地址,还有其他几个国内常见的,罗列如下:
    • 阿里云:http://mirrors.aliyun.com/pypi/
    • 中国科技大学:https://pypi.mirrors.ustc.edu.cn/
    • 豆瓣:http://pypi.douban.com/
    • 清华大学:https://pypi.tuna.tsinghua.edu.cn/
    • 中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/
  • Storage: pypi-hub。

其他的均是默认。

整体配置截图如下:

image-20191229211631506

另外几个仓库同上操作,一一创建,当然也不必全部都加,根据自己实际需求添加即可。

4,创建一个group类型的pypi仓库。

  • Name:group-pypi
  • Storage:选择专用的blob存储pypi-hub。
  • group : 将左边可选的4个仓库,添加到右边的members下。

整体配置截图如下:

image-20191229212003673

这些配置完成之后,就可以使用了。

5,验证使用。

1,指定配置

新建一台环境干净的主机,安装好Python的pip环境。可通过如下命令进行安装:

$ yum -y install release
$ yum -y install python36 python36-devel

然后通过命令行随便安装一个包,安装的时候,将代理指向我们的私服来。这个地方遇到了两个坑,这里用两个注意来进行提醒。

  • 注意:在指定刚刚配置的私服时,需要在统一对外的地址最后加上一个simple。
  • 注意:在第一次进行安装测试的时候,一定要指定测试包的版本,否则可能会报如下错误:
    ERROR: Could not find a version that satisfies the requirement django (from versions: none)
    ERROR: No matching distribution found for django
    

    这个时候指定一下包的版本,就下载成功了,而在往后的下载,就不需要指定版本了。

通过如下命令进行验证:

$ pip3.6 install --trusted-host 10.3.0.41 -i http://10.3.0.41:8081/repository/group-pypi/simple django

WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3.6 install --user` instead.
Collecting django
  Downloading http://10.3.0.41:8081/repository/group-pypi/packages/6a/23/08f7fd7afdd24184a400fcaebf921bd09b5b5235cbd62ffa02308a7d35d6/Django-3.0.1-py3-none-any.whl (7.4MB)
    100% |████████████████████████████████| 7.4MB 80.3MB/s
Collecting asgiref~=3.2 (from django)
  Downloading http://10.3.0.41:8081/repository/group-pypi/packages/a5/cb/5a235b605a9753ebcb2730c75e610fb51c8cab3f01230080a8229fa36adb/asgiref-3.2.3-py2.py3-none-any.whl
Collecting pytz (from django)
  Downloading http://10.3.0.41:8081/repository/group-pypi/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)
    100% |████████████████████████████████| 512kB 78.3MB/s
Collecting sqlparse>=0.2.2 (from django)
  Downloading http://10.3.0.41:8081/repository/group-pypi/packages/ef/53/900f7d2a54557c6a37886585a91336520e5539e3ae2423ff1102daf4f3a7/sqlparse-0.3.0-py2.py3-none-any.whl
Installing collected packages: asgiref, pytz, sqlparse, django

这个时候去私服的库里看下,已经可以看到刚刚安装的几个包了。

image-20191229213306188

2,全局配置

通过添加全局配置,就不需要每次执行编译的时候指定私服地址了:

mkdir ~/.pip

cat > ~/.pip/pip.conf << EOF
[global]
timeout = 60
trusted-host =  10.3.0.41
index-url = http://10.3.0.41:8081/repository/group-pypi/simple
EOF

保存之后,本机的代理就走本地的私服了。


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<八>企业级开源仓库nexus3实战应用–使用nexus3配置Python私有仓库
喜欢 (0)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!永远不要忘记,激情的奋进,就是美好的未来!

您必须 登录 才能发表评论!