0. 引言
由于 apt-get 获取的应用来自于国外,往往下载速度极慢,因此部分公司、学校将部分或所有软件的更新同步到自己的服务器,这些软件包下载来源就是国内的源。由于不同源同步的软件不一定完全相同,所以存在部分软件在部分源可以下载,在其他源下载不到的情况本文会详细介绍 apt 源的配置内容,说明两种架构、不同源、不同系统版本需要怎么填写apt源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月,从图片上可以看出
对于这四种状态的软件包,在源链接里会分到对应四个子目录(加上没状态的共计五个)
序号 | 状态 | 说明 | 代号 |
---|---|---|---|
1 | 不维护 | 过期功能 | backports |
2 | 后期维护 | 安全 | security |
3 | 持续维护 | 更新中 | updates |
4 | 持续更新 | 预发布 | proposed |
*没有状态的子目录,个人觉得可能是未分类的部分
一般不使用已经不维护的功能,因此只写四个。如果服务器中存在很古老的项目就全写,如果服务器是独立的老项目,为不引入新包,不写持续更新中的软件。不同状态、不同服务器型号的源在同级目录下,配置时写在源链接后面一位
阿里云源的链接
因此一般使用只写四个,格式如下(阿里云-x86-22.04版本-不需要下载源码包-不使用过期软件):
deb http://mirrors.aliyun.com/ubuntu/ jammydeb http://mirrors.aliyun.com/ubuntu/ jammy-securitydeb http://mirrors.aliyun.com/ubuntu/ jammy-updatesdeb 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 maindeb http://mirrors.aliyun.com/ubuntu/ jammy-security restricteddeb http://mirrors.aliyun.com/ubuntu/ jammy-security universedeb http://mirrors.aliyun.com/ubuntu/ jammy-security multiverse
(当然也能写成2-3行)
8. 综上所述
配置 阿里源-x86-22.04-二进制包和源码包都要-需要过期除外的其他包-需要所有分级的包,源配置如下:
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
如果你需要的配置跟我某一项不一样,根据上面的说明对应修改即可
本人知识、能力有限,若有错漏,烦请指正,非常非常感谢!!!转发或者引用需标明来源