0x00 引言
软件仓库是一个预备好的目录,或是一系列存放软件的服务器,或是一个网站,包含了软件包和索引文件。多数Linux发行版都有自己的软件安装、配置方案,同时还有各自的软件包管理系统。为了省去用户四处寻找合适软件安装包的麻烦,这些发行版将常用的软件集中到一个服务器上,并为用户提供了自动下载、安装软件的接口,这就是我们所说的“软件仓库”。为了方便大众访问,人们为这些软件仓库建立了大量的“镜像”,使世界各地的用户都能方便地使用。不同发行版的软件仓库一般不同,如用户接口各异、软件丰富程度不同、镜像分布不同等等。
0x01 仓库源地址
源地址通常是很长的一串地址,由四个部分组成,例如下述源地址:
1 | deb http://10.0.10.25/uos eagle main contrib non-free |
- deb/deb-src : 表示deb包地址/源码包地址。当你要 ‘apt-get source’ 源码时,必须使用 ‘deb-src’ 。当你要 ‘apt-get install’ 软件时,则必须使用deb。
- http://10.0.10.25/uos : 这个字段是仓库的http访问地址。
- eagle : 这个段是表示仓库的codename。可用 ‘lsb_release -a’ 指令查询。
- main contrib non-free : 这个字段是仓库的分组目录,linux根据软件不同属性进行分组。
0x02 源管理文件
Linux中的源管理文件主要是sources.list,它是一个普通可编辑的文本文件,保存了ubuntu软件更新的源服务器的地址:
1 | # 编辑sources.list |
除了使用sources.list文件来管理源地址,同时 sources.list.d/ 路径为单独在文件中写入源的地址提供了一种方式,通常用来安装第三方的软件。
1 | # 到 /etc/apt/sources.list.d/ 路径下新建 *.list |
0x03 软件包首选配置
关于软件包的版本管理,可通过修改AptConfigure[1]来配置。
查看软件包版本信息
1 | # 查看某个软件包的版本号、可选的版本包以及对应的仓库 |
查看所有仓库源信息
1 | # 查看所有仓库源信息 |
新建首选配置文件
1 | # 在 /etc/apt/preferences.d/ 路径下新建配置文件(无后缀) |
比如新建一个名为99debian-backports的配置文件,并输入如下内容,可以让claws-mail以后所有的更新包都按照a=stretch-backports的源来更新,900即为该源的置信值,值越高越是首选:
1 | Package: claws-mail |
同样,也可以为所有的软件包都设置该源为首选项:
1 | Package: * |