前言:

国内的Linux初学者一般都是从CentOS起步,对于yum源的配置基本都能搞懂,而对于apt的源配置可能有些同学就有点蒙圈了,所以在这里就简单介绍一下关于这个apt源
相关链接:我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Centos7配置本地yum源的方法》, 一起来围观吧 https://blog.csdn.net/qq_36154886/article/details/84075150?utm_source=app

1、复习Yum

标准的源配置如下:

[root@openeuler spzx]# more /etc/yum.repos.d/openEuler.repo
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/RPM-GPG-KEY-openEuler

1.1、详细解析

1.1.1、源文件

源文件的大致信息如下:

后缀名.repo
作用定义软件源
单文件可定义源数量理论无限
配置文件存放路径/etc/yum.repos.d/

1.1.2、源文件参数解析

解析使用下面的模板进行讲解

[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/RPM-GPG-KEY-openEuler
[OS]定义一个仓库的ID
name定义一个仓库的名称 [可自定义]
baseurl定义此仓库的路径(url),[需保证该路径存在,可以是本地/网络路径]
enabled是否启用此仓库,1为启用,0为关闭,默认关闭
gpgcheck是否启用gpg检查,1为启用,0为关闭,默认开启
gpgkey指定一个gpg检查的文件,当开启gpg检查的时候必须指定该参数,未开启则可以不写

PS:
GPG检查是一个校验安装包是否可信的一种检测方式,当添加了自定义源的时候,该功能就会阻止自定义源的引用,避免造成系统损坏,所以在添加源的时候,请先确保该源是否符合当前系统,不正确的配置会容易造成系统崩溃或依赖错误

1.1.3、扩展知识

通过yum配置源,可以一次性定义多个仓库,但是不要设置重复的ID,下面列出两种定义多个仓库 的例子

方案1:一文多仓

顾名思义,就是通过一个配置文件去定义多个仓库,这种用法主要作为组合用法,也就是说这一个配置文件能完整的安装你所需的软件,那么这时候就可以把所需安装的软件的仓库全部配置在一个文件,当不需要的时候,直接移动该文件即可禁用
一个配置文件定义多个仓库

[root@openeuler spzx]# more /etc/yum.repos.d/openEuler.repo
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/RPM-GPG-KEY-openEuler

[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-20.09/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/everything/$basearch/RPM-GPG-KEY-openE

[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-20.09/EPOL/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/EPOL/$basearch/RPM-GPG-KEY-openEuler

方案2:N文N仓

也就是定义几个仓库就用几个文件,例如docker、k8s等,当需要某个的时候就放在配置目录,不需要就移动或改后缀,亦或把enabled改为0,如下:

[root@openeuler yum.repos.d]# ls
docker-ce.repo  openEuler.repo
[root@openeuler yum.repos.d]# more docker-ce.repo 
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[root@openeuler yum.repos.d]# more openEuler.repo 
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
#    http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.

[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/OS/$basearch/RPM-GPG-KEY-openEuler

[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-20.09/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.09/everything/$basearch/RPM-GPG-KEY-openEuler

2、apt源

2.1、简单了解apt源

源文件的大致信息如下:

后缀名.list
作用定义软件源
单文件可定义源数量理论无限
自定义配置文件存放目录/etc/apt/sources.list.d/
系统默认源文件/etc/apt/sources.list

2.2、源的标准配置

首先看一下标准的源配置

root@debian:~# more /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian/ buster main
deb-src http://mirrors.ustc.edu.cn/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

# buster-updates, previously known as 'volatile'

deb http://mirrors.ustc.edu.cn/debian/ buster-updates main
deb-src http://mirrors.ustc.edu.cn/debian/ buster-updates main

deb http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib

从上面的配置可以看出,一个仓库可以直接一行配置即可定义,这相对yum来说更简洁,但是相对的,对于初学者(自学)来说可能会更难理解(当初的我就是这样),但是不慌,我来教你。

2.3、apt配置文件解析

作用

首先选择一段比较具有代表性的进行讲解,如下:

deb http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
参数说明
deb定义一个二进制软件包仓库
deb-src定义一个源码包仓库
http://mirrors.ustc.edu.cn/debian/仓库的URL(等同于yum的baseurl)
buster-backports定义一个发行版代号
main定义一个main仓库,该仓库属于官方维护的(等同于yum的base源)
non-free定义一个非自由 (non-free) 软件源(类似于yum的epel源),非自由软件不属于 Debian 正式发行的一部份。它们的存在只是开发人员 为了用者的方便而包装
contrib带有非自由依赖关系的DSFG兼容软件

2.4、配置方法

想要学会一个知识,必须是建立在理解的基础上,死记硬背只能应付一时,当需要学习的东西越来越多的时候,以前的死记硬背就会消耗更多的精力,所以,下面教你怎么去理解这个配置,语法如下:

2.4.1、语法

(1)最小化配置

此配置方法采用一行一个仓库的方法进行配置,优点是不同的仓库可以采用不同的URL,管理较灵活,需要禁用某个仓库的时候就在前面加个注释即可,缺点则是内容太多。

语法如下:

${声明仓库类型,可选:deb/deb-src}	${声明仓库地址,可选:http/https/ftp}	${声明系统代号,例如buster}	${声明仓库,例如main}	

案例如下:

deb http://mirrors.ustc.edu.cn/debian/ buster main
deb https://mirrors.cloud.tencent.com/debian/ buster non-free

(2)一次性声明

此配置方法采用一个URL同时定义多个仓库,优点是配置内容简洁,增加仓库方便,缺点则是当不想使用某个仓库的时候,只能删除。

语法如下:

${声明仓库类型,可选:deb/deb-src}	${声明仓库地址,可选:http/https/ftp}	${声明系统代号,例如buster}	${声明仓库,例如main}	${声明仓库,例如:non-free}.......

案例如下:

deb http://mirrors.ustc.edu.cn/debian/ buster main non-free contrib

2.4.2、实践

假设你的系统默认的源配置内容被删除了,那么就可以通过下面的方法进行配置,首先第一步是查看系统发行版
命令:

cat /etc/os-release  | grep VERSION_CODENAME | sed 's/VERSION_CODENAME=//g'

执行结果:
在这里插入图片描述

root@debian:~# cat /etc/os-release  | grep VERSION_CODENAME | sed 's/VERSION_CODENAME=/
buster
root@debian:~# 

从结果来看,这个系统的发行版是:buster,所以这里就可以得出以下配置了

deb http://mirrors.ustc.edu.cn/debian/ buster 

但是此时你可能不知道这个发行版在这个URL里有几个仓库,所以接下来就是打开这个链接了(国内镜像站有很多可选项,具体可参考这篇:Debian10常用国内源)

在这里我打开的是腾讯云镜像站,得到的页面信息如下:
在这里插入图片描述
然后,我们进入第一个目录:dists,可以看到,此时列出了很多发行版的目录,这时候,找到我们第一步得出的:buster,进入该目录
在这里插入图片描述
进入之后,得出这样的一个页面:
在这里插入图片描述
所以,此时使用这个镜像站我们能配置的源仓库有三个,分别是:

contrib
main
non-free

然后结合前面得出的配置,再加上这三个,就可以得出最后的配置

deb https://mirrors.cloud.tencent.com/debian/ buster  main  contrib non-free
deb-src https://mirrors.cloud.tencent.com/debian/ buster  main  contrib non-free

在这里插入图片描述

root@debian:~# more /etc/apt/sources.list
deb https://mirrors.cloud.tencent.com/debian/ buster  main  contrib non-free
deb-src https://mirrors.cloud.tencent.com/debian/ buster  main  contrib non-free
root@debian:~# apt update
命中:1 https://mirrors.cloud.tencent.com/debian buster InRelease
获取:2 https://mirrors.cloud.tencent.com/debian buster/contrib Sources [42.9 kB]
获取:3 https://mirrors.cloud.tencent.com/debian buster/contrib amd64 Packages [50.5 kB]
获取:4 https://mirrors.cloud.tencent.com/debian buster/contrib Translation-en [44.5 kB]
已下载 138 kB,耗时 2秒 (67.3 kB/s)                          
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有 19 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐