各種各樣的映象加速

hedzr發表於2019-10-15

mirrors-for-coder

這裡做一個集中,儘管以前都是遇到時立即搜尋,但是集中一下之後,看起來也很壯觀的。

當然,歡迎完善它。

China Mirrors

GitHub Clone

通過HTTPS協議Clone倉庫的話,可能會遇到速度很慢的情況。

根據經驗,在慢的時候中斷Clone捎帶片刻重複命令的話,你可能會得到正常速度,這種偷雞的策略適合於小小倉庫。

對於大型倉庫,改走SSH協議進行clone的話,走到正常速度的機率較大,但此時的速度相較於HTTPS而言通常會有所損耗。

但下面還有一種較為費事的方法,通過修改 hosts 檔案來完成提速,無需科學也無需代理加速也無需映象加速(GitHub是不太可能有映象的)。具體來說請接下去閱讀:

首先在 www.ipaddress.com/ 查詢這三個域名的地址:

  1. github.com
  2. assets-cdn.github.com
  3. github.global.ssl.fastly.net

然後按照查詢的結果填寫到 /etc/hosts 中,windows使用者請查詢 %WINDIR%/system32/drivers/etc/hosts 檔案。請注意修改 hosts 檔案通常需要 sudo 許可權 或者管理員許可權。修改內容如同下面:

140.82.118.3    github.com
185.199.109.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
185.199.108.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
151.101.113.194 github.global.ssl.fastly.net
複製程式碼

如果你有國外的伺服器,也可以通過dig指令來查詢:

$ dig github.com +short
140.82.118.3
複製程式碼

Docker CE

Docker CE 的具體加速辦法有很多種,然而各種版本的本質都是一樣的,一般來說你需要找到 docker daemon 的配置檔案 /etc/docker/daemon.json,然後修改它像這樣:

{
  "insecure-registries" : [
    "registry.mirrors.aliyuncs.com"
  ],
  "debug" : true,
  "experimental" : false,
  "registry-mirrors" : [
    "https://docker.mirrors.ustc.edu.cn",
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com"
  ]
}
複製程式碼

如果你在這個檔案中自定義了其他專案,或者這個檔案中已經存在其他定義,請注意保持。

參考:docs.docker.com/engine/refe…

Ubuntu Apt Source

如果你使用桌面版本,則 Ubuntu 的軟體源設定中,你可以選取最近的地區,例如中國大陸,從而加速軟體包下載速度。

如果使用 Server 版本,則可以明確地使用清華映象(或者自行使用其他映象)

# 預設註釋了原始碼映象以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 預釋出軟體源,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
複製程式碼

以上例子為 18.04 版本的替換內容。你可以直接訪問清華開源站查詢其他版本:

mirror.tuna.tsinghua.edu.cn/help/ubuntu…

其他方法

askubuntu.com/questions/3…

使用 apt-select

可以用pip安裝它:

pip install apt-select
複製程式碼

然後執行它並跟隨提示走:

apt-select --country US -t 5 --choose
複製程式碼
使用mirrors CDN

apt-get now supports a 'mirror' method that will automatically select a good mirror based on your location. Putting:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse
複製程式碼

on the top in your /etc/apt/sources.list file should be all that is needed to make it automatically pick a mirror for you based on your geographical location.

你可以無腦地使用 sed 來搞定:

sudo sed -i 's%us.archive.ubuntu.com/ubuntu/%mirrors.ubuntu.com/mirrors.txt%' /etc/apt/sources.list
複製程式碼

Alpine Apk

清華提供一種Apk源加速方式:mirror.tuna.tsinghua.edu.cn/help/alpine…

在終端輸入以下命令以替換TUNA映象源: sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
複製程式碼

製作 Docker 映象時,這是很有用的,節約生命真的是美德。

Arch Linux Pacman

清華提供一種 Arch Linux 軟體倉庫加速方式:mirror.tuna.tsinghua.edu.cn/help/archli…

編輯 /etc/pacman.d/mirrorlist, 在檔案的最頂端新增: Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

更新軟體包快取: sudo pacman -Syy

Go Modules

使用 Golang v1.11 以上,為你的專案啟用 Go Modules 功能,然後就可以使用 GOPROXY 環境變數來透明地使用映象代理。

比較著名的大陸加速器為:

export GOPROXY=https://goproxy.cn
# Windows 應該使用 set GOPROXY=xxxx 語法
複製程式碼

然後 go mod download 以及 go mod tidy 就足夠快了。

如果你想搭建私服,可以遵循 Go Modules 的 API 規範自己實現一個代理伺服器,也可以使用開源的 athens 專案自建一個伺服器。

如果使用 Golang 1.13 以上版本的話,一下語法可用:

export GOPROXY=direct,https://goproxy.cn,https://goproxy.io,https://gocenter.i
o
複製程式碼

Android SDK

國內有多家組織提供 Android SDK的映象快取,甚至個人也可以很容易地建立這樣的快取,如果你有國內訪問速度很好的國外伺服器的話。

但是,隨著時間推移,現在這些映象基本上都已失效了。

取而代之的是,目前,Android的官方源是可以直連的,且能達到正常速度,所以還是趕緊滴做點負責任的app出來吧,不要只是會矽肺或者偷偷上傳神馬的。

Gradle

Gradle的配置檔案為~/.gradle/init.gradle

allprojects {
	repositories {
		maven {
			url 'https://maven.aliyun.com/repository/public/'
		}
	}
	buildscript {
		repositories {
			maven {
				url 'https://maven.aliyun.com/repository/public/'
			}
		}
	}
}
複製程式碼

以下的映象可以選用

Gem 和 CocoaPods

替換 Ruby 源

首先是 gem 和 ruby 的源應該被替換

移除現有的Ruby映象
$ gem sources --remove https://rubygems.org
複製程式碼
新增國內最新映象
$ gem sources -a https://gems.ruby-china.com
複製程式碼
檢視當前映象
$ gem sources -l
複製程式碼

加速 Cocoapods

幾種加速方法,可能需要自己實際測試那種效果最好。

gitee映象
pod repo remove master   
pod repo add master https://gitee.com/mirrors/CocoaPods-Specs   
pod repo update   
複製程式碼
清華映象
pod repo remove master   
pod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git   
pod repo update   
複製程式碼

對於 Cocoapods 新的版本,需要使用如下的方法:

pod repo remove master
cd ~/.cocoapods/repos
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
複製程式碼
你的 xcode 工程中如果有Podfile的話,請修改加入下面的行:
source 'https://gitee.com/mirrors/CocoaPods-Specs.git'
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
複製程式碼

Homebrew

macOS 中都會安裝 Homebrew,但 brew update 可能會很慢。加速的辦法是替換現有的上游:

git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git

brew update
複製程式碼

復原

(感謝Snowonion Lee提供說明)

git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core.git

git -C "$(brew --repo homebrew/cask)" remote set-url origin https://github.com/Homebrew/homebrew-cask.git

brew update
複製程式碼

以上內容從清華開源上覆制:Homebrew 映象使用幫助

如果想阻止 brew 指令執行時總是嘗試去自動更新,可以設定環境變數:

# forbit autoupdate on homebrew installing
export HOMEBREW_NO_AUTO_UPDATE=1
複製程式碼

Flutter & Dart Pub

flutter 官網有專門的頁面講述加速問題:

flutter.dev/community/c…

Flutter 映象安裝幫助

Flutter 是一款跨平臺的移動應用開發框架,由 Google 開源。用 Flutter 開發的應用可以直接編譯成 ARM 程式碼執行在 Android 和 iOS 系統上。

可以使用清華映象:mirror.tuna.tsinghua.edu.cn/help/flutte…

Flutter 安裝時需要從 Google Storage 下載檔案,如您的網路訪問 Google 受阻,建議使用本映象。使用方法為設定環境變數 FLUTTER_STORAGE_BASE_URL,並指向 TUNA 映象站。

$ export FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter"
複製程式碼

若希望長期使用 TUNA 映象:

$ echo 'export FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter"' >> ~/.bashrc
複製程式碼

此外 Flutter 開發中還需要用到 Dart 語言的包管理器 Pub,其映象使用方法參見Pub 映象安裝幫助

Pub 映象安裝幫助

Pub 是 Dart 官方的包管理器。跨平臺的前端應開發 框架 Flutter 也基於 Dart 並且可以使用大部分 Pub 中的 庫。

如果希望通過 TUNA 的 pub 映象安裝軟體,只需要設定 PUB_HOSTED_URL 這個環境變數指向 mirrors.tuna.tsinghua.edu.cn/dart-pub/ 即可。

以 bash 為例,臨時使用 TUNA 的映象來安裝依賴:

$ PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" pub get # pub
$ PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" flutter packages get # flutter
複製程式碼

若希望長期使用 TUNA 映象:

$ echo 'export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"' >> ~/.bashrc
複製程式碼

Rust Cargo 和 Rustup

Rust 使用 creates.io,國內也有相應的提速手段:

lug.ustc.edu.cn/wiki/mirror…

首先你需要在 $HOME/.cargo/config 中新增如下內容

[registry]
index = "git://mirrors.ustc.edu.cn/crates.io-index"
# Or
# index = "http://mirrors.ustc.edu.cn/crates.io-index"
複製程式碼

如果 cargo 版本為 0.13.0 或以上, 需要更改 $HOME/.cargo/config 為以下內容:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
複製程式碼

有興趣自建的朋友,可以看看:

github.com/rust-lang/c…

清華TUNA 也有 rustup 相應的映象

# export CARGO_HOME=$HOME/.cargo
# export RUSTUP_HOME=$HOME/.rustup
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
複製程式碼

詳見:mirror.tuna.tsinghua.edu.cn/help/rustup…

Maven

採用aliyun映象

編輯 $HOME/.m2/settings.xml,找到 <mirrors> 小節,新增如下內容:

<mirror>
    <id>aliyun-public</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun public</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

<mirror>
    <id>aliyun-central</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun central</name>
    <url>https://maven.aliyun.com/repository/central</url>
</mirror>

<mirror>
    <id>aliyun-spring</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun spring</name>
    <url>https://maven.aliyun.com/repository/spring</url>
</mirror>

<mirror>
    <id>aliyun-spring-plugin</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun spring-plugin</name>
    <url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>

<mirror>
    <id>aliyun-apache-snapshots</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun apache-snapshots</name>
    <url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>

<mirror>
    <id>aliyun-google</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun google</name>
    <url>https://maven.aliyun.com/repository/google</url>
</mirror>

<mirror>
    <id>aliyun-gradle-plugin</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun gradle-plugin</name>
    <url>https://maven.aliyun.com/repository/gradle-plugin</url>
</mirror>

<mirror>
    <id>aliyun-jcenter</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun jcenter</name>
    <url>https://maven.aliyun.com/repository/jcenter</url>
</mirror>

<mirror>
    <id>aliyun-releases</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun releases</name>
    <url>https://maven.aliyun.com/repository/releases</url>
</mirror>

<mirror>
    <id>aliyun-snapshots</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun snapshots</name>
    <url>https://maven.aliyun.com/repository/snapshots</url>
</mirror>  

<mirror>
    <id>aliyun-grails-core</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun grails-core</name>
    <url>https://maven.aliyun.com/repository/grails-core</url>
</mirror>

<mirror>
    <id>aliyun-mapr-public</id>
    <mirrorOf>*</mirrorOf>
    <name>aliyun mapr-public</name>
    <url>https://maven.aliyun.com/repository/mapr-public</url>
</mirror>
複製程式碼

也可以採用 profile 方式,這裡就不再贅述了。

Python pip 和 composer

Pip

  • 清華:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里:pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
  • 華為:pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
  • 豆瓣:pip config set global.index-url https://pypi.douban.com/simple
# 以下可以選用其一

# 清華:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 華為:
pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
# 豆瓣:
pip config set global.index-url https://pypi.douban.com/simple
複製程式碼

Composer

# 以下可以選用其一

# 阿里:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 華為:
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/

# Laravel中文網
composer config -g repo.packagist composer https://packagist.laravel-china.org
複製程式碼

Node 和 npm/Yarn

可以更換映象:

  • 阿里:yarn config set registry https://registry.npm.taobao.org
  • 華為:yarn config set registry https://mirrors.huaweicloud.com/repository/npm/
  • Node-Sass:npm config set sass_binary_site https://mirrors.huaweicloud.com/node-sass/

Vagrant

沒有簡單的辦法。一些周知的映象,可以通過這些地方加速:

  • 對於 Ubuntu 之類,可以取清華映象

    vagrant box add ubuntu/trusty64 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
    
    vagrant box add ubuntu/bionic64 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/20191002/bionic-server-cloudimg-amd64-vagrant.box
    複製程式碼
  • 清華找不到幾個周知映象,所以基本上還是要在 www.vagrantbox.es/ 尋找和新增

    vagrant box add debian/8.1 https://github.com/kraksoft/vagrant-box-debian/releases/download/8.1.0/debian-8.1.0-amd64.box 
    複製程式碼
  • 總的來說,沒有什麼有效的映象,只能想各種辦法去手工下載box,然後再匯入。

Conclusion

CC4

github.com/hedzr/mirro…

相關文章