0. 引言

  1. 由于 apt-get 获取的应用来自于国外,往往下载速度极慢,因此部分公司、学校将部分或所有软件的更新同步到自己的服务器,这些软件包下载来源就是国内的源。由于不同源同步的软件不一定完全相同,所以存在部分软件在部分源可以下载,在其他源下载不到的情况
  2. 本文会详细介绍 apt 源的配置内容,说明两种架构、不同源、不同系统版本需要怎么填写apt源
  3. apt 源用于 apt/apt-get 下载软件,源的配置文件为 /etc/apt/sources.list,编辑该文件可以看到当前的源,配置前建议先备份现有源

1. 总体介绍

在这里插入图片描述

2. 推荐的源

序号地址
1阿里http://mirrors.aliyun.com/
2网易http://mirrors.163.com/
3搜狐http://mirrors.sohu.com/
4华为云http://repo.huaweicloud.com/
5中国官方http://cn.archive.ubuntu.com/
6官方http://archive.ubuntu.com/
7清华http://mirrors.tuna.tsinghua.edu.cn/
8中科大http://mirrors.ustc.edu.cn/

3. 不同架构

使用 apt-get 的服务器架构有 x86_64 和 aarch64 两种,一般称为 x86 和 arm。
使用命令arch可以查看当前系统架构。
部分源同时提供两种架构的下载,x86 选择 ubuntu,arm 选择 ubuntu-ports,例如阿里云

在这里插入图片描述

因此完整的源路径为:

  • x84: http://mirrors.aliyun.com/ubuntu/
  • arm: http://mirrors.aliyun.com/ubuntu-ports/

部分源仅提供 x86 架构的软件,例如 官方源

在这里插入图片描述

完整的x84源路径为

  • http://archive.ubuntu.com/ubuntu/

4. 软件包类型

正常使用中 apt-get 往往只用来下载软件包后立马安装,实际上 apt-get 允许下载软件二进制包但不安装,也允许直接下载源码包,以下为三种下载包的方式

  • apt-get install: 下载二进制软件包并直接安装
  • apt-get download: 仅下载二进制软件包(可以传到其他服务器用于离线安装)
  • apt-get source: 下载源码包(可以修改源码,往往用于自定义安装路径)

其中 install 和 download 获取的包相同,仅在本地处理方式不同,与 source 获取的包不同。设置 apt 源时,需指定该源用于下载二进制软件包还是源码包,大部分的源会同时提供这两种软件包类型,指定类型需要写在源路径之前

源类型配置项
二进制包deb
源码包deb-src

大部分情况下,只需要下载二进制包,但多配置一个也没有影响,同时配置需要写两行

deb     http://mirrors.aliyun.com/ubuntu/
deb-src http://mirrors.aliyun.com/ubuntu/

5. 不同系统版本

不同的系统版本使用的源是不相同的,下表中存在的版本按照版本代号对应配置源,不在表中的版本,找表中历史最近一个版本作为源
使用命令cat /etc/os-release可以看到当前系统版本, VERSION_ID 为版本号, VERSION_CODENAME 为版本代号。也可以用os-release查询(只要不报错)

序号版本代号
114.04trusty
216.04xenial
318.04bionic
420.04focal
521.10impish
622.04jammy
722.10kinetic

配置源时,版本代号跟在源链接后面,下载时会找对应的子目录,例如 使用 阿里源-x86-22.04 版本的服务器的源,配置为

deb http://mirrors.aliyun.com/ubuntu/ jammy

6. 软件包状态

ubuntu 官网会提供各个版本的软件包维护时间,点击链接直达。
但官网上的不够直观,可视化效果如下(图片来源):

在这里插入图片描述

红色为更新/新增功能的阶段,粉色为更新已有功能的阶段,紫色为维护阶段
当前时间为23年4月,从图片上可以看出

  • 14.04 及之前的已经不维护了
  • 16.04、18.04 正在后期维护
  • 20.04 正在持续维护阶段
  • 22.04 正在更新/新增功能的阶段

对于这四种状态的软件包,在源链接里会分到对应四个子目录(加上没状态的共计五个)

序号状态说明代号
1不维护过期功能backports
2后期维护安全security
3持续维护更新中updates
4持续更新预发布proposed

*没有状态的子目录,个人觉得可能是未分类的部分

一般不使用已经不维护的功能,因此只写四个。如果服务器中存在很古老的项目就全写,如果服务器是独立的老项目,为不引入新包,不写持续更新中的软件。不同状态、不同服务器型号的源在同级目录下,配置时写在源链接后面一位

阿里云源的链接

在这里插入图片描述

因此一般使用只写四个,格式如下(阿里云-x86-22.04版本-不需要下载源码包-不使用过期软件):

deb http://mirrors.aliyun.com/ubuntu/ jammy
deb http://mirrors.aliyun.com/ubuntu/ jammy-security
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed

7. 软件包支撑级别

从上述中的任一个状态的软件包点进去,可以看到软件包分成四类

在这里插入图片描述

这四类是软件包被支持的等级

序号代号说明支撑级别
1main核心包官方提供支撑和补丁
2restricted标准包官方一定程度上提供支撑和补丁
3universe扩展包官方不提供支撑和补丁,社区提供
4multiverse自定义包不提供支撑和补丁

除非用于安全性要求比较高的项目的服务器,配置源时不选择自定义包甚至扩展包,其他的服务器一般全部配置。配置源时,软件包分级写在源后面第二位开始,可以写多个。例如阿里云-x86-22.04-二进制包-持续更新的包-需要四种支撑级别的包

可以写成一行

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

也可以写成四行

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main
deb http://mirrors.aliyun.com/ubuntu/ jammy-security restricted
deb http://mirrors.aliyun.com/ubuntu/ jammy-security universe
deb http://mirrors.aliyun.com/ubuntu/ jammy-security multiverse

(当然也能写成2-3行)

8. 综上所述

配置 阿里源-x86-22.04-二进制包和源码包都要-需要过期除外的其他包-需要所有分级的包,源配置如下:

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

如果你需要的配置跟我某一项不一样,根据上面的说明对应修改即可
在这里插入图片描述


  • 本人知识、能力有限,若有错漏,烦请指正,非常非常感谢!!!
  • 转发或者引用需标明来源
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐