本文如果对你有帮助请帮忙Star一下,以帮助更多的人。
由于众所周知的原因,中国的开发者在下载各种依赖的时候速度都比较慢。因此部分有实力的高校、公司在国内搭建了方便开发者的各种镜像仓库,并且几乎都是和国外的源定时同步的。本仓库主要收集方便中国开发者提速的源,以及配置的方式。
下面的操作方式在不同的系统可能会有细微的差别,欢迎大家补充和纠正。
目录
Docker
首先从网上搜索国内的docker registry源,然后修改docker的配置并重启docker。在这里我比较推荐使用免费的阿里云镜像加速器(至少截至2020年09月03日还是免费的),目前使用一直比较平稳。
- 获取镜像加速url
注册一个阿里云账号并登录,在产品与服务
中搜索容器镜像服务
,跟随引导完成必要的一些步骤,然后来到这个页面,就可以看到自己专有的加速器地址了。
- 给docker客户端配置镜像加速器
这里以MacOS为例,其他系统类似。如果没有/etc/docker/daemon.json
文件,则可以直接通过下面的命令完成配置;如果该文件已经存在了,则选择自己熟悉的文本编辑器编辑该文件,添加加速器地址的配置。如果你使用的带界面的客户端,也可以在Preferences... -> Docker Engine
显示的编辑器中添加相应的配置。
1 | sudo mkdir -p /etc/docker |
注意:将https://xxx.mirror.aliyuncs.com
替换成你自己的镜像加速器地址。再次提醒,配置完成后,重启docker之后才会生效。
除了阿里云的源,还有一些其他的源可以参考:
- https://registry.docker-cn.com
- http://hub-mirror.c.163.com
- http://docker.mirrors.ustc.edu.cn
- http://mirror.azure.cn/help/docker-registry-proxy-cache.html
Nodejs
下面是NPM的配置方式,以淘宝的源为例。
- 临时使用
1 | 为单用户安装 |
- 默认使用
1 | # npm |
除了淘宝的源,还有一些其他的源可以参考:
另外,可以通过nrm
管理多个NPM的源,相应的yarn
也有yrm
。
Python
PyPI (Python Package Index) 是 Python 编程语言的软件存储库。开发者可以通过 PyPI 查找和安装由 Python 社区开发和共享的软件,也可以将自己开发的库上传至 PyPI 。这里以阿里云的源为例。
- 临时使用
1 | pip install -i https://mirrors.aliyun.com/pypi/simple <package-name> |
注意,simple
不能少, 是 https
而不是 http
- 默认使用
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
1 | pip install pip -U |
除了阿里云的源,还有一些其他的源可以参考:
- https://pypi.tuna.tsinghua.edu.cn/simple
- https://pypi.mirrors.ustc.edu.cn/simple
- https://pypi.douban.com/simple
- http://mirror.azure.cn/pypi/simple
Anaconda
的配置方式可以参考清华大学的Anaconda镜像使用帮助
Java
- Maven 配置
打开 Maven 的配置文件(windows机器一般在maven安装目录的conf/settings.xml),在<mirrors></mirrors>
标签中添加 mirror 子节点:
1 | <mirror> |
如果想使用其它代理仓库,可在<repositories></repositories>
节点中加入对应的仓库使用地址。以使用spring代理仓为例:
1 | <repository> |
- gradle 配置
在 build.gradle 文件中加入以下代码:
1 | allprojects { |
如果想使用 maven.aliyun.com 提供的其它代理仓,以使用 spring 仓为例,代码如下:
1 | allprojects { |
除了Spring的仓库之外,阿里云还提供一些其他的源:
- central https://maven.aliyun.com/repository/central
- jcenter https://maven.aliyun.com/repository/public
- public https://maven.aliyun.com/repository/public
- google https://maven.aliyun.com/repository/google
- gradle-plugin https://maven.aliyun.com/repository/gradle-plugin
- spring https://maven.aliyun.com/repository/spring
- spring-plugin https://maven.aliyun.com/repository/spring-plugin
- grails-core https://maven.aliyun.com/repository/grails-core
- apache snapshots https://maven.aliyun.com/repository/apache-snapshots
Goproxy
使用go1.11以上版本并开启go module机制,下面以阿里云的源为例:
1 | export GO111MODULE=on |
除了阿里云的源,还有一些其他的源可以参考:
Ruby
这里以配置Ruby China
的源为例:
1 | gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ |
Bundler
用户参考如下配置:
1 | bundle config mirror.https://rubygems.org https://gems.ruby-china.com |
这样你不用改你的Gemfile
的source
。
1 | source 'https://rubygems.org/' |
除了Ruby China的源,还有一些其他的源可以参考:
- https://mirrors.aliyun.com/rubygems
- https://mirrors.tuna.tsinghua.edu.cn/rubygems
- https://mirrors.ustc.edu.cn/rubygems
- http://mirror.azure.cn/rubygems
Alpine apk
Alpine Linux 是一个面向安全,轻量级的基于musl libc与busybox项目的Linux发行版。
下面以配置阿里云的源作为例子:
1 | sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories |
除了阿里云的源,还有一些其他的源可以参考:
- dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn
Centos yum
CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本;是一个稳定,可预测,可管理和可复制的免费企业级计算平台。
更换源之前,建议先备份一下,下面以阿里云的源为例:
1 | mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup |
下载阿里云的源:
1 | Centos 6 |
生成缓存:
1 | yum makecache |
注意: 非阿里云ECS用户会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com'
信息,不影响使用。用户也可自行修改相关配置:
1 | sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo |
除了阿里云的源,还有一些其他的源可以参考:
- https://mirrors.tuna.tsinghua.edu.cn/help/centos
- http://mirrors.ustc.edu.cn/help/centos.html
- http://mirror.azure.cn/help/centos.html
Debian apt
Debian GNU/Linux ,是一个操作系统及自由软件的发行版,由一群自愿付出时间和精力的用户来维护并更新。它附带了超过 59000 个软件包,这些预先编译好的软件被打包成一种良好的格式以便于用户安装和使用。
下面以阿里云的源为例:
debian 7.x (wheezy)
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
1 | deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib |
debian 8.x (jessie)
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
1 | deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib |
debian 9.x (stretch)
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
1 | deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib |
除了阿里云的源,还有一些其他的源可以参考:
Ubuntu apt
Ubuntu,是一款基于 Debian Linux 的以桌面应用为主的操作系统,内容涵盖文字处理、电子邮件、软件开发工具和 Web 服务等,可供用户免费下载、使用和分享。
下面以阿里云的源为例:
用你熟悉的编辑器打开/etc/apt/sources.list
,替换默认的http://archive.ubuntu.com/
为mirrors.aliyun.com
。
ubuntu 16.04 配置如下
1 | deb http://mirrors.aliyun.com/ubuntu/ xenial main |
ubuntu 18.04(bionic) 配置如下
1 | deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse |
ubuntu 20.04(focal) 配置如下
1 | deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse |
除了阿里云的源,还有一些其他的源可以参考:
- https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu
- http://mirrors.ustc.edu.cn/help/ubuntu.html
- http://mirror.azure.cn/help/ubuntu.html
Homebrew
Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 系统上的软件安装过程。它拥有安装、卸载、更新、查看、搜索等很多实用的功能,通过简单的一条指令,就可以实现包管理,十分方便快捷。
下面以阿里云的源为例:
名称 | 说明 |
---|---|
brew | Homebrew 源代码仓库 |
homebrew-core | Homebrew 核心源 |
homebrew-cask | 提供 macOS 应用和大型二进制文件的安装 |
homebrew-bottles | 预编译二进制软件包 |
- Bash 终端配置
1 | 替换brew.git: |
- 恢复默认配置
出于某些场景, 可能需要回退到默认配置, 你可以通过下述方式回退到默认配置。
首先执行下述命令:
1 | 重置brew.git: |
然后删掉 HOMEBREW_BOTTLE_DOMAIN
环境变量,将你终端文件~/.bash_profile
中HOMEBREW_BOTTLE_DOMAIN
行删掉, 并执行source ~/.bash_profile
。
除了阿里云的源,还有一些其他的源可以参考:
iOS
CocoaPods
是一个 Cocoa 和 Cocoa Touch 框架的依赖管理器,具体原理和 Homebrew
有点类似,都是从 GitHub 下载索引,然后根据索引下载依赖的源代码。
下面以清华大学的源为例:
对于旧版的 CocoaPods 可以使用如下方法使用 tuna 的镜像:
1 | $ pod repo remove master |
新版的 CocoaPods 不允许用pod repo add
直接添加master库了,但是依然可以:
1 | $ cd ~/.cocoapods/repos |
最后进入自己的工程,在自己工程的podFile
第一行加上:
1 | source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' |
注意: 从1.7.2
开始,已经完全切到CDN
上了。1.8
以上甚至把CDN
作为默认源使用,在Podfile
最上面添加即可。
1 | source 'https://cdn.cocoapods.org/' |
除了清华大学的源,还有一些其他的源可以参考:
Git
以下内容摘自原仓库的说明文档,推荐优先参考原文档。
fgit是一个可以无缝替换git命令行的工具,使用优化线路为使用github.com加速。
官方介绍的特点:
- 目前实测git clone速度超过15MB/S
- 支持github.com私有库,也支持push
- 两种工作模式:镜像(反向代理)模式和HTTP代理模式,都是实时连接github.com,不是缓存
- 支持包括clone/push/pull/fetch在内的各种git命令,兼容git命令行参数,可以用来无缝替换git命令行
- 只针对github.com加速,不干扰对非github.com库的使用
- 使用go语言开发,不是shell脚本或.bat,跨平台。Windows 10、Linux (Unbuntu)、Mac (x86)都实测通过
安装
- Mac
1 | sudo curl -L https://github.com/fastgh/fgit/releases/download/v1.0.0/fgit.darwin -o /usr/local/bin/fgit |
- Linux
1 | sudo curl -L https://github.com/fastgh/fgit/releases/download/v1.0.0/fgit.linux -o /usr/local/bin/fgit |
使用
和常规的git命令行几乎相同,支持各种命令行参数
对于公共库,clone/pull/fetch时默认使用镜像模式,基于安全考虑,镜像模式不支持push以及私有库
镜像模式例如:
fgit clone https://github.com/spring-projects/spring-boot.git --depth=1
两种情况会判定为需要push或者私有库,此时会使用HTTP代理模式,代理模式比镜像模式安全
push
URL中包含用户名,那么会被判定为需要push或者私有库。
对于clone命令,URL是从clone的URL中解析得到,对于其它git命令,则使用git remote -v
得到代理模式例如:
fgit push origin master
fgit clone https://fastgh@github.com/fastgh/fgit.git
也可以通过
--use-proxy
选项强制走HTTP代理模式,例如:fgit --use-proxy clone https://github.com/fastgh/fgit.git
代理服务器的优化线路成本高,所以大家尽量使用镜像模式,以节省服务器带宽资源
其它功能:
可以打开调试开关,看一看fgit的工作过程:下载服务器列表 –> 设置镜像或代理 –> 执行git –> 回复镜像或代理
fgit --debug clone https://github.com/fastgh/fgit.git
fgit首次运行时,会在用户主目录下生成一个配置文件.fgit.json,包含服务器地址等信息,必要时可以通过设置这个文件选择接入其它服务方,或指定镜像服务器或代理服务器