# Ubuntu更换阿里源

> 作者：zning（https://ning.ae） · 发布：2016/06/26 13:29 下午 (UTC+8) · 原文：https://zning.me/14860133407080.html

网上应该可以找到很多关于ubuntu源的设置方法，但是如果不搞清楚就随便设置的话，不仅不能起到应有的效果，还会由于一些问题导致apt不可用。

最正确的更换源的方法应该如系统提示的：

	## a.) add ‘apt_preserve_sources_list: true‘ to /etc/cloud/cloud.cfg
	## or do the same in user-data
	## b.) add sources in /etc/apt/sources.list.d
	## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl

这种方法有点没弄明白在`/etc/apt/sources.list.d`应该添加的是什么内容，如果是源文件的话，最后更改的模板又是什么作用？也没有去尝试，有时间会解决一下。

以下提供设置阿里源的方法，其他源也可以如法炮制：

1. 首先查看自己的ubuntu系统的codename，这一步很重要，直接导致你更新的源是否对你的系统起效果，查看方法：

		lsb_release -a

	如，我的系统显示：

		No LSB modules are available.
		Distributor ID:	Ubuntu
		Description:	Ubuntu 14.04.2 LTS
		Release:	14.04
		Codename:	trusty

	显示了一些ubuntu的版本信息，需要得到的是Codename，比如，我这里是trusty

2. 确认阿里源支持：

	登陆以下网页：http://mirrors.aliyun.com/ubuntu/dists/

	该网页显示了阿里云支持的ubuntu系统下各个Codename版本，确保自己的Codename在该网页中存在（一般都会有的）

2. 备份系统源：

		sudo cp /etc/apt/sources.list /etc/aptsources.list_bak

3. 添加新的源文件：

		sudo vim /etc/apt/sources.list

	并添加以下内容：注意，每一行的trusty应该用第一步查看得到的Codename来代替

		deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe

4. 保存并且`sudo apt-get update`，更新成功

5. 以下提供配置脚本：

		Codename=$( (lsb_release -a)|awk ‘{print $2}‘|tail -n 1 )
		echo "\
		deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
		deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
		deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe ">sources.list
		apt-get update
		
	`sudo`运行该脚本即可（注意运行之前最好备份之前的sources.list）
