0%

利用码云镜像加速kerl

gitee 下载加速已失效,因为 gitee 在下载页面加了机器验证,无法再通过命令行来下载,目前国内安装erlang最优解,建议使用asdf来安装:

1
OTP_GITHUB_URL="https://hub.fastgit.org/erlang/otp" asdf install erlang 23.0

如有更好的方式,请告知本人,谢谢

最近在用kerl安装不同版本的erlang,因为kerl默认是从官网下载包的,但是erlang的官网本来就慢,不知道是不是没有CDN或者国内没有对应的CDN节点,速度实在堪忧。

幸好kerl支持动态配置从github的包来构建,但是测试了一下github的下载也是非常慢。

突然灵机一动,想到码云(gitee)有做一下热门的开源项目的镜像,跟github上的项目是定时同步的,因此是否可以去利用这个呢?

实验一下便知!

update releases

因为官网的releasesgithub上的releases是不完全一直的,因此需要先update releases

1
OTP_GITHUB_URL="https://gitee.com/mirrors/erlang" KERL_BUILD_BACKEND=git kerl update releases

执行成功之后会打印版本号列表出来,细心的同学可能会发现想对官网的列表来说,git上的列表会丰富很多。

build

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
OTP_GITHUB_URL="https://gitee.com/mirrors/erlang/repository" KERL_BUILD_BACKEND=git kerl build 19.3.6.13 19.3.6.13
Downloading OTP-19.3.6.13.tar.gz to /home/pwf/.kerl/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 32.4M 0 32.4M 0 0 779k 0 --:--:-- 0:00:42 --:--:-- 2157k
Extracting source code
Building Erlang/OTP 19.3.6.13 (19.3.6.13), please wait...
WARNING: It appears that a required development package 'libssl-dev' is not installed.
APPLICATIONS DISABLED (See: /home/pwf/.kerl/builds/19.3.6.13/otp_build_19.3.6.13.log)
* jinterface : No Java compiler found

DOCUMENTATION INFORMATION (See: /home/pwf/.kerl/builds/19.3.6.13/otp_build_19.3.6.13.log)
* documentation :
* xsltproc is missing.
* fop is missing.
* xmllint is missing.
* The documentation can not be built.

Erlang/OTP 19.3.6.13 (19.3.6.13) has been successfully built

可行!!!

需要注意一点,因为gitee的包下载路径默认增加了一个repository目录路径,所以update releasebuild时指定的OTP_GITHUB_URL值是不一样的:

1
2
OTP_GITHUB_URL="https://gitee.com/mirrors/erlang" KERL_BUILD_BACKEND=git kerl update releases
OTP_GITHUB_URL="https://gitee.com/mirrors/erlang/repository" KERL_BUILD_BACKEND=git kerl build 19.3.6.13

install

1
2
3
4
5
6
kerl install 19.3.6.13 ~/kerl/19.3.6.13
Installing Erlang/OTP 19.3.6.13 (19.3.6.13) in /home/pwf/kerl/19.3.6.13...
You can activate this installation running the following command:
. /home/pwf/kerl/19.3.6.13/activate
Later on, you can leave the installation typing:
kerl_deactivate

再在~/.bashrc增加一个alias:

1
alias erl19='. /home/pwf/kerl/19.3.6.13/activate && kerl active'

然后运行erl19,就可以用19版本的erlang了。

脚本

最后放个快速使用的脚本,

用法跟kerl一样,只是不用自己去设置环境变量了, gitee_kel.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env bash

export KERL_BUILD_BACKEND=git

case $1 in
build)
export OTP_GITHUB_URL="https://gitee.com/mirrors/erlang/repository"
;;
*)
export OTP_GITHUB_URL="https://gitee.com/mirrors/erlang"
;;
esac

kerl $@

完成!!!

参考连接

梦想基金
feng19 微信

微信

feng19 支付宝

支付宝

欢迎关注我的其它发布渠道