在中国做开发者,殊为不易。技术创新多发源欧美,尤其开源的工具;国内巨头现在渐渐有些贡献,不过很多东西还是要取自国外。
好不容易跨过语言关,结果发现还有一道高墙。要么是各种原因被GFW连坐(例如各种Google的服务),要么纯粹因为太远不稳定。以前还能说先用工具慢慢下载到本地安装;现在网络越来越快,所以都流行在线安装,光连得上还不行,太慢也会timeout。国外开发者秒下无感的事情,我们这里可以折腾几天。
解决办法就是镜像了。所以现在配置开发环境,第一步是安装工具,第二步马上就是配置镜像,然后才能好好地下载依赖。所以自己整理一个常用的镜像集合,方便每次配置环境时翻查。
只列我在用或者用过的,没有也不必要把全部列上,旧的不行换新的再更新
go proxy
go modules 从 1.13 大修改,到 1.14 宣布 “ready for production use”,已经是包管理的默认选项。
对于内地开发者来说使用 go modules 必备的 GOPROXY,暂时只推荐 goproxy.cn
。
|
|
Ubuntu 软件源
目前使用 163 的源:http://mirrors.163.com/.help/ubuntu.html
里面已经有比较详细的说明,挑选对应的发行版本下载就好。以 14.04 (trusty) 为例:
|
|
使用阿里云服务器的,可以考虑用阿里云的镜像:http://mirrors.aliyun.com/help/ubuntu
将镜像的地址从 http://mirrors.aliyun.com 改为 http://mirrors.aliyuncs.com 可以走内网流量。
npm
推荐淘宝 NPM 镜像:https://npm.taobao.org/
因为除了镜像,他们还提供了定制的 cnpm 代替 npm:
|
|
除了敲命令时前面多个 c,用法上跟 npm 没有任何差别。详情可以看官方的说明。
Maven repository
Maven 仓库推荐阿里云的中央库:http://maven.aliyun.com/nexus/
一般的做法是修改 Maven 的 settings.xml:
|
|
settings.xml 有两个,分别在:
- $M2_HOME/conf/settings.xml :全局设置,在 maven 的安装目录。Windows 为 %M2_HOME%,一般要手动设置。
- ~/.m2/settings.xml :用户设置,需要自己添加。Linux 就是用户目录,Windows 一般在
C:\Users\YourName
。
两个文件如果同时存在,会融合成一个文件;同时存在的设置项,以用户设置为准。
在 pom 设置 repository
但我基本不单独执行 mvn
,都是在 Eclipse 里引用,不知道为什么明明在Eclipse设置了 settings.xml 的位置,但还是不起作用(依然访问官方库);另外,多人协作的项目,每个人都设置一次镜像也是一个麻烦。
这时最好的办法,就是在项目的 pom.xml 设置一下 repository:
|
|
优先级上,项目的设置会覆盖用户的设置。pom 是项目文件的一部分,会一起被提交和拉取,项目导入的时候直接就是到镜像去取依赖了。
gradle 项目设置
如果 Android 项目,那么构建工具就是 gradle。部分新建的 Java 项目,也有尝试用 gradle 管理依赖和构建的。Android 默认使用内置的 google()
和 jcenter()
,由于我们知道的原因,访问非常不稳定,所以也可以替换成 Aliyun 的镜像。
|
|
分别添加在 buildscript
和 allprojects
下的 repositories
。前者是 gradle 依赖,后者是项目依赖。
pip
网上都在推荐豆瓣的源:http://www.jianshu.com/p/785bb1f4700d
临时使用
|
|
- 使用 https 安全是没有问题的。但如果碰上 https 连不上,就要加
--trusted-host
。 - 虽然修改了软件源,但
pip search
命令还是不能用,因为搜索软件使用的协议与安装软件不同。pip search
基于 xmlrpclib 实现,pip install
基于 urllib2 实现。同样地,对pip search
设置代理,也是不起作用的。
想长久生效,就要修改配置文件:
|
|
配置文件的位置,Linux 应该是在用户目录下的 ~/.pip/pip.conf
,如果不存在可以自己创建,pip 会默认从这个文件读取配置。Windows 的配置可以参考 http://blog.csdn.net/styshoo/article/details/52865373 ,跟 Linux 类似,不过有好几个地方,可以echo系统参数,看哪个存在。
Android SDK
AndroidDevTools 上提供的镜像,我都试过,除了 Bugly 其他都不稳定或者根本连不上(所在地是广州)。因为 Bugly 要登录,本不想那么麻烦也没有办法了。不过只要用 QQ 号登录就好,这个估计谁都有。
详细的用法在上面有介绍:https://dsx.bugly.qq.com/repository/1
简单说就是把
域名 : {id}.repository.bugly.qq.com
端口 : 80
填到 SDK Manager 的 proxy 设置里。登录之后每个人有自己的 id。
Jenkins plugins
人肉 ping 测试了一下速度,感觉 http://mirror.esuni.jp 速度还可以,所以就用了这个。
把
http://mirror.esuni.jp/jenkins/updates/update-center.json
填到 Jenkins > 插件管理 > 高级 > 升级站点 即可。
偶尔还是有安装失败,这时只好手动下载插件之后上传了。
本文为本人原创,采用知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议进行许可。
本作品可自由复制、传播及基于本作品进行演绎创作。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,并明确指出修改(如有),不得用于商业用途。谢谢合作。
详情请点击查看协议具体内容。