返回介绍

4.1 仓库

发布于 2024-09-08 18:29:26 字数 5126 浏览 0 评论 0 收藏 0

4.1.1 pypi

pip 国内的一些镜像

pypi 源配置:windows 下/pip/pip.ini,linux 下/.pip/pip.conf,可以配置多源

;linux: pip.conf, windows: pip.ini
[global]
index-url = https://pypi.doubanio.com/simple/
extra-index-url=xxx.xxx.xxx
[install]
trusted-host=pypi.doubanio.com xxx.xxx.xxx
[search]
index-url=https://pypi.doubanio.com/simple/

pypi 私服常用工具有:pypi-server, devpi,

pypi-server 搭建私服
1)安装

# 更新工具,不更新无法识别 long_description
$ python3 -m pip install --user --upgrade setuptools wheel twine

# 安装 pypiserver
$ pip install pypiserver

# 启动 pypi-server
$ pypi-server -p 8080 -P ~/packages

说明:在没有显示指定任何启动参数的时候, pypiserver 是使用 ~/packages (-P 参数指定包路径)来保存 Python 包,同时监听 8080 端口(-p 参数指定监听端口)来提供 PyPI 服务。

2)启动私服

pypi 仓库配置文件:~/.pypirc

# 不同段需要换行
[distutils]
index-servers = localhost
            pypi

[localhost]
repository: http://localhost:8080
username: keefe
password: 123456
[pypi]
repository: https://upload.pypi.org/legacy/
username: keefe
password:

默认情况下,pypiserver 的上传操作是 密码保护的。

启动带密码的私服,需要 passlib、apach2-utils 支持,用 htpasswd 生成密码文件(下面示例中密码文件是.pypipasswd)

pypi-server 启动参数:

  • -P 参数用来指定密码文件。
  • -a 用来指定需要密码保护的操作。
  • -P . -a . 这两个参数同时指定为 . 时,表示所有的操作都不需要密码保护。
# 带密码保护启动,-P 指定密码文件.pypipasswd
$ pypi-server -P ~/.pypipasswd
# 或者 无密码保护启动:-a -p 同时指定为.时,关闭密码保护
$ pypi-server -P . -a .

查看私服 : http://localhost:8080

3)使用

第一次访问会询问 pypi 账户,之后访问.pypirc 文件

$ python setup.py register

# 检查 打包格式是否正确
$ twine checkout dist/*
# 本地测试
$ python -m pytest

# 可指定打包类型:源码包 sdist, 二进制包 bdis.
$ python setup.py sdis bdis_wheel upload -r pypi

# 上传文件到缺省仓库-github
$ python setup.py upload
# 上传文件到私服-localhost, -r 指定仓库名,配置信息在~/.pypirc
$ python setup.py sdist upload -r localhost

# 使用私服: 安装 install、搜索 search
$ pip install --extra-index-url http://localhost:8080/ PACKAGE [PACKAGE2...]
$ pip search -i http://localhost:8080 demo
$ pip install -i http://localhost:8080 demo

4.1.2 conda

anaconda pycharm 的官方仓库。

# conda 配置国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

4.1.3 maven

Maven 仓库的目的是作为团队内所使用的所有软件构件的内部私有构件仓库,将 Maven 构件(jar 和 pom)存储到一个专门的 Maven 仓库比将它们存储到版本控制系统中更有优势,这是因为:

  • 构件(jar)是二进制文件,不属于版本控制系统,版本控制系统在处理文本文件方面比较好
  • 保持较小的版本控制数据库
  • Checkout、update 和其他版本控制的操作可以更快

常用三种 Maven 仓库管理软件:chiva、Artifactory 和 Nexus。

Maven 构件库的类型

maven 仓库分为本地仓库和远程仓库,而远程仓库又包括私服和中央仓库。

  • 本地仓库——位于开发者的机器,由开发者维护,它从位于 HOME 目录(~/.m2) 目录的‘settings.xml’文件中定义的 Maven 仓库上同步,如果在 pom.xml 或 setting.xml 文件中没有设置内部私有远程仓库, 那么开发者机器上的这个本地仓库就会从 ibiblio.org 上的公用 Maven 仓库上同步。
  • 远程仓库(内部私有~私服):这是我们将要设置的仓库,我们将改变 maven 的 pom.xml 或 settings.xml 文件来使用这个库。
  • 远程仓库(中央仓库):maven 公司提供的最大的仓库( ibiblio.org ),里面拥有最全的 jar 包资源,默认情况下,Maven 从这个仓库上同步。私服上没有时会到中央仓库去寻找。中央仓库在外网,下载速度慢。
  • 远程仓库(第三方公共库):其它情况。

4.1.4 npm

详见 《 web 前端框架分析 》npm 章节

# $ cat ~/.npmrc
prefix=~/.nodejs/node_global
cache=~/.nodejs/node_cache
registry=https://registry.npm.taobao.org/
proxy=

4.1.5 docker

详见 《 docker 用户手册

# 登陆 docker Hub, 推送镜像
$ docker login
$ docker push [image:tag]

# 创建私有仓库 Docker Registry 2.0(需 docker 版本高于 1.6.0),Registry 2 不包含界面、用户管理、权限控制等功能,如果想使用这些功能,可使用 Docker Trusted Registry.
$ docker run -d -p 5000:5000 --restart=always --name registry2 registry:2

# 修改 tag,如果 tag 前不加 host:port/,缺省将推送到 github 相应的镜像里(如果有权限)
$ docker tag [old_image:tag] [localhost:5000/new_image:tag]
$ docker push [localhost:5000/new_image:tag]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文