apt源配置详细全面介绍


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查询(只要不报错)

序号 版本 代号
1 14.04 trusty
2 16.04 xenial
3 18.04 bionic
4 20.04 focal
5 21.10 impish
6 22.04 jammy
7 22.10 kinetic

配置源时,版本代号跟在源链接后面,下载时会找对应的子目录,例如 使用 阿里源-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. 软件包支撑级别

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

在这里插入图片描述

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

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

除非用于安全性要求比较高的项目的服务器,配置源时不选择自定义包甚至扩展包,其他的服务器一般全部配置。配置源时,软件包分级写在源后面第二位开始,可以写多个。例如阿里云-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

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


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