挖井

类库大魔王的挖井日记

挖一口属于自己的井


本地镜像Rust nightly build

自从Rust版本号跳到1.0,即使离正式发布还有很长一段时间,我就开始打算要学一下Rust,主要还是因为想跟Go比较一下,用Go也一年了,已经能做些比较实用的小项目了,我想看看Rust有哪些方面更优秀,或者说比Go更合适来做某些方面的开发。

虽然还没正式开始学,但兵马未动,粮草先行。我先看看怎么安装Rust,然后看到Rust的快速迭代,可以用命令安装每天的nightly build:

curl -s https://static.rust-lang.org/rustup.sh | sudo sh -s -- --channel=nightly

但是在我大天朝如此奇特的网络环境中,这个命令会有些问题。情况好一点的话,也就是下载速度会很慢,情况差一点就下载压根被重置了,貌似是因为下载的URL中包含了特殊字符串“64”,咳咳。所以建立个镜像来做这个事很有必要。

首先,我有个7*24小时开机的Raspberry Pi当下载机,写个简单的shell脚本加到cron中去每天上午10点定时执行一次,用于下载最新的nightly build包到本地:

#!/bin/bash
cd /home/pi/rust/dist
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-unknown-linux-gnu.tar.gz
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-unknown-linux-gnu.tar.gz.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-i686-unknown-linux-gnu.tar.gz
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-i686-unknown-linux-gnu.tar.gz.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-apple-darwin.pkg
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-apple-darwin.pkg.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-apple-darwin.tar.gz
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-apple-darwin.tar.gz.asc
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-apple-darwin.tar.gz.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-pc-windows-gnu.exe
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/rust-nightly-x86_64-pc-windows-gnu.exe.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/channel-rust-nightly.sha256
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/channel-rust-nightly.asc
curl -O --socks5 127.0.0.1:1080 https://static.rust-lang.org/dist/channel-rust-nightly

这里最重要的就是通过socks5代理翻墙了。为什么是每天上午10点,也是稍微有点讲究的,我是假设Raspberry Pi从官网下载速度并不快,但又要下载大约500MB的东西,而每天我本地更新Rust的时间基本上是晚上7点后,所以要留出足够多的时间用于下载,又尽量少的时间空档。

然后把本地目录/home/pi/rust通过http服务器暴露出来,假设是在http://192.168.3.100/rust/,最后把最上面那个更新安装Rust的命令稍微修改一下:

curl -s --socks5 127.0.0.1:1080 https://static.rust-lang.org/rustup.sh | sed 's/https:\/\/static\.rust\-lang\.org/http:\/\/192.168.3.100\/rust/g' | sed 's/http:\/\/static\-rust\-lang\-org\.s3\-website\-us\-west\-1\.amazonaws\.com/http:\/\/192.168.3.100\/rust/g' | sudo sh -s -- --channel=nightly

这样就能以Raspberry Pi的最大输出速率更新Rust到最新的nightly build啦!

本文地址:

https://minidump.info/blog/2015/04/local-mirror-rust-nightly/

上一篇

写了个DDNS客户端

前几天发现公司网络有个奇怪的问题,公司的DNS解析居然把花生壳(oray.com)和公云(pubyun.com)的域名给劫持了。我在家里放了个7*24在线的树莓派,然后用cron每分钟用curl调用花生壳和公云的API刷新一下自己的IP,再把一个有泛域名证书的二级域名CNAME到公云的动态域名...…

Shareware 全文阅读
下一篇

生成iOS Push Notification证书

昨天又折腾了大半天iOS Push Notification的证书,之前也折腾过一次,真是麻烦,网上的文章大多步骤相似却不能只靠文章中的步骤得到能用的证书。这里暂且记一下。 在本机Keychain Access里点Application菜单-Certificate Assistant-Req...…

Coding 全文阅读