专栏首页江涛的博客Ubuntu 换源看这一篇就够了

Ubuntu 换源看这一篇就够了

背景

Ubuntu是新生代农民工比较常用的Linux系统。由于一些原因,当我们用官网的源的更新和下载包的时候,很慢、很卡、很费时间。所以,我们应该把它换成国内的源。

换源

ubuntu的源存放在/etc/apt/source.list,在换源之前我们要记得对之前的源进行备份,这样的好处是,万一你不行,你还可以复原回去。然后我们可以用vim操作这个文件,可以把之前的删了注释都行,按住SHIFT + G跳到最后一行后,按住o进入编辑模式,然后贴下源哇,具体的操作步骤如下(以21.04为例):

cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources/list

# source && source code
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
# Advance distribution source, Not recommended
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse

# source && source code
deb http://mirrors.aliyun.com/ubuntu hirsute main restricted
deb http://mirrors.aliyun.com/ubuntu hirsute-updates main restricted
deb http://mirrors.aliyun.com/ubuntu hirsute universe
deb http://mirrors.aliyun.com/ubuntu hirsute-updates universe
deb http://mirrors.aliyun.com/ubuntu hirsute multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-updates multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-security main restricted
deb http://cn.archive.ubuntu.com/ubuntu hirsute-security universe
deb http://cn.archive.ubuntu.com/ubuntu hirsute-security multiverse

按下esc, 输入:wq

然后敲sudo apt-get update && apt-get upgrade

脚本为王

ubuntu有很多个版本,12.04之前的我们就不管它了,太老了。每一个版本都有一个代号,比如trusty(14.04)、xenial(16.04)、bionic(18.04)、groovy(20.10)、hirsute(21.04)。不管代号怎么变,相关的源的网址它是固定的,比如五道口的源是https://mirrors.tuna.tsinghua.edu.cn/ubuntu, 阿里的源是http://mirrors.aliyun.com/ubuntu。所以,我们其实可以写个脚本去做这件事,输入是ubuntu的版本号,输出是相关的源(这里选五道口和阿里的吧)。

脚本如下:

#!/bin/bash

function change_sources() {
  echo "#======= change sources.list start =======#"
  echo "Input Your Ubuntu Version:"
  read UBUNTU_VERSION
  echo "Your Ubuntu Version is ${UBUNTU_VERSION}"
  if [ ${UBUNTU_VERSION} = "12.04" ] || [ ${UBUNTU_VERSION} = "14.04" ] || [ ${UBUNTU_VERSION} = "16.04" ] || [ ${UBUNTU_VERSION} = "18.04" ] || [ ${UBUNTU_VERSION} = "20.10" ] || [ ${UBUNTU_VERSION} = "21.04" ]; then
    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    cp ./apt/${UBUNTU_VERSION}/sources.list /etc/apt/sources.list
    apt-get update && apt-get upgrade
  fi
  echo '#======= change sources.list end =======#'
}

change_sources

操作步骤如下:

git clone https://gitee.com/taoge2021/env-config.git
cd env-config/linux/ubuntu/sources
chmod u+x change-sources.sh
./change-source.sh

这个是完整的日志:

root@ubuntu-ataola-2:/home/ataola# ./change-sources.sh
#======= change sources.list start =======#
Input Your Ubuntu Version:
21.04
Your Ubuntu Version is 21.04
Hit:1 http://mirrors.aliyun.com/ubuntu hirsute InRelease
Hit:2 http://mirrors.aliyun.com/ubuntu hirsute-updates InRelease
Hit:3 http://mirrors.aliyun.com/ubuntu hirsute-backports InRelease
Get:4 http://mirrors.aliyun.com/ubuntu hirsute-security InRelease [101 kB]
Get:5 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute InRelease [269 kB]
Get:6 http://cn.archive.ubuntu.com/ubuntu hirsute-security InRelease [101 kB]
Get:7 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates InRelease [109 kB]
Get:8 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports InRelease [101 kB]
Get:9 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security InRelease [101 kB]
Get:10 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/main amd64 Packages [1,394 kB]
Get:11 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/main Translation-en [511 kB]
Get:12 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/main amd64 c-n-f Metadata [29.5 kB]
Get:13 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/restricted amd64 Packages [78.0 kB]
Get:14 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/restricted Translation-en [12.0 kB]
Get:15 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/restricted amd64 c-n-f Metadata [436 B]
Get:16 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/universe amd64 Packages [13.2 MB]
Get:17 http://cn.archive.ubuntu.com/ubuntu hirsute-security/universe amd64 Packages [211 kB]
Get:18 http://cn.archive.ubuntu.com/ubuntu hirsute-security/universe Translation-en [41.2 kB]
Get:19 http://cn.archive.ubuntu.com/ubuntu hirsute-security/universe amd64 c-n-f Metadata [4,968 B]
Get:20 http://cn.archive.ubuntu.com/ubuntu hirsute-security/multiverse amd64 Packages [3,364 B]
Get:21 http://cn.archive.ubuntu.com/ubuntu hirsute-security/multiverse Translation-en [828 B]
Get:22 http://cn.archive.ubuntu.com/ubuntu hirsute-security/multiverse amd64 c-n-f Metadata [220 B]
Get:23 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/universe Translation-en [5,441 kB]
Get:24 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/universe amd64 c-n-f Metadata [279 kB]
Get:25 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/multiverse amd64 Packages [206 kB]
Get:26 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/multiverse Translation-en [108 kB]
Get:27 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute/multiverse amd64 c-n-f Metadata [8,124 B]
Get:28 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/main amd64 Packages [325 kB]
Get:29 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/main Translation-en [88.3 kB]
Get:30 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/main amd64 c-n-f Metadata [6,420 B]
Get:31 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/restricted amd64 Packages [158 kB]
Get:32 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/restricted Translation-en [22.1 kB]
Get:33 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/restricted amd64 c-n-f Metadata [476 B]
Get:34 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/universe amd64 Packages [274 kB]
Get:35 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/universe Translation-en [64.3 kB]
Get:36 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/universe amd64 c-n-f Metadata [6,556 B]
Get:37 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/multiverse amd64 Packages [4,376 B]
Get:38 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/multiverse Translation-en [1,136 B]
Get:39 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-updates/multiverse amd64 c-n-f Metadata [252 B]
Get:40 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/main amd64 c-n-f Metadata [112 B]
Get:41 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/restricted amd64 c-n-f Metadata [120 B]
Get:42 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/universe amd64 Packages [3,728 B]
Get:43 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/universe Translation-en [1,252 B]
Get:44 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/universe amd64 c-n-f Metadata [192 B]
Get:45 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-backports/multiverse amd64 c-n-f Metadata [120 B]
Get:46 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/main amd64 Packages [212 kB]
Get:47 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/main Translation-en [55.8 kB]
Get:48 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/main amd64 c-n-f Metadata [3,636 B]
Get:49 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/restricted amd64 Packages [156 kB]
Get:50 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/restricted Translation-en [21.8 kB]
Get:51 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/restricted amd64 c-n-f Metadata [476 B]
Get:52 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/universe amd64 Packages [211 kB]
Get:53 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/universe Translation-en [41.2 kB]
Get:54 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/universe amd64 c-n-f Metadata [4,968 B]
Get:55 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/multiverse amd64 Packages [3,364 B]
Get:56 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/multiverse Translation-en [828 B]
Get:57 https://mirrors.tuna.tsinghua.edu.cn/ubuntu hirsute-security/multiverse amd64 c-n-f Metadata [220 B]
Fetched 24.0 MB in 6s (3,771 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  ubuntu-advantage-tools
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
#======= change sources.list end =======#
root@ubuntu-ataola-2:/home/ataola#
root@ubuntu-ataola-2:/home/ataola# ls /etc/apt
apt.conf.d  auth.conf.d  preferences.d  sources.list  sources.list.bak  sources.list.curtin.old  sources.list.d  trusted.gpg.d
root@ubuntu-ataola-2:/home/ataola# cat /etc/apt/sources.list
# source && source code
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
# Advance distribution source, Not recommended
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse

# source && source code
deb http://mirrors.aliyun.com/ubuntu hirsute main restricted
deb http://mirrors.aliyun.com/ubuntu hirsute-updates main restricted
deb http://mirrors.aliyun.com/ubuntu hirsute universe
deb http://mirrors.aliyun.com/ubuntu hirsute-updates universe
deb http://mirrors.aliyun.com/ubuntu hirsute multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-updates multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu hirsute-security main restricted
deb http://cn.archive.ubuntu.com/ubuntu hirsute-security universe
deb http://cn.archive.ubuntu.com/ubuntu hirsute-security multiverseroot@ubuntu-ataola-2:/home/ataola#

参考文献

https://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8

本文分享自微信公众号 - 前端路桥(ataola),作者:璀错

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git 看这一篇就够了

    今天简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。

    AI科技大本营
  • JVM 看这一篇就够了

    本文转自 https://blog.csdn.net/qq_46153765/article/details/113092445,如有侵权,请联系删除。

    麦洛
  • AQS源码分析看这一篇就够了

    好了,我们来开始今天的内容,首先我们来看下AQS是什么,全称是 AbstractQueuedSynchronizer 翻译过来就是【抽象队列同步】对吧。通过名...

    用户4919348
  • 「Leakcanary 源码分析」看这一篇就够了

    Reference 把内存分为 4 种状态,Active 、 Pending 、 Enqueued 、 Inactive。

    程序亦非猿
  • 了解 MongoDB 看这一篇就够了

    MongoDB 是一款流行的开源文档型数据库,从它的命名来看,确实是有一定野心的。MongoDB 的原名一开始来自于 英文单词"Humongous", 中文含义...

    美码师
  • Flutter DataTable 看这一篇就够了

    columns参数是DataTable的列,rows参数是DataTable的每一行数据,效果如下:

    老孟Flutter
  • Java NIO?看这一篇就够了!

    现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能...

    方志朋
  • Lombok 看这篇就够了

    前提 自从进公司实习后,项目代码中能用 Lombok 的都用了,毕竟这么好的轮子要充分利用好。也可以减少一些 get/set/toString 方法的编写,虽说...

    zhisheng
  • JVM看这篇就够了!

    虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box...

    Java团长
  • 数据类型转换看这篇就够了

    树酱
  • 数据类型转换看这篇就够了

    日常开发中,我们使用到的Js定义的每一个值都属于某一种数据类型,常见的js数据类型有String(字符串)、Number(数字)、Boolean(布尔)、Obj...

    树酱
  • LeakCanary看这一篇文章就够了

    LeakCanary是Square公司基于MAT开源的一个内存泄漏检测工具,在发生内存泄漏的时候LeakCanary会自动显示泄漏信息。

    用户1269200
  • java线程-看这一篇就够了

    Tanyboye
  • 复习Session,看这一篇就够了

    在网络应用中,Session对象存储特定用户会话所需的属性及配置信息,实现会话保持和跟踪,本文将详细总结Session相关的知识点。 session概述 HTT...

    JavaQ
  • SpringMVC入门看这一篇就够了!

    SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于struts2框架

    乔戈里
  • windows提权看这一篇就够了

    windows在日常的渗透中经常遇到,而在内网之前,经常会在所拿到的跳板机进行提权,这样后面横向,内网才能更好的展开(抓hash,必须得系统或管理员权限),所以...

    Gamma实验室
  • SQL优化看这一篇就够了

    索引是帮助MySQL高效获取数据的数据结构。索引内部存在一个键值和对应数据的物理地址,当数据很多的时候,索引文件会很大,所以一般以文件的形式存储于磁盘中,后缀名...

    石的三次方
  • 看懂 Serverless SSR,这一篇就够了!

    作者:Adrian S. 译者:王俊杰,王天云 审校:王俊杰,江柳 了解我们如何为每个Webiny网站获得出色的SEO支持,以及如何在无服务器环境中使用SS...

    腾讯云serverless团队
  • Git总结-看这一篇就够了!

    版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软...

    唔仄lo咚锵

扫码关注云+社区

领取腾讯云代金券