Ubuntu的软件源格式详解

linux有许多的发行版,产生了许多的软件包管理工具,例如redhat/centosyumubuntu/debianapt-getsuseyast等,由于默认官方的软件仓库都在国外,加上GFW的各种限制(你懂的)。经常出现软件包安装更新缓慢甚至下载超时等异常情况,非常影响工作效率。经常的下载超时。其实国内有许多第三方软件仓库镜像源,而且都是安全可靠,且定期保持和官方源同步,我们只需要修改下软件仓库配置,就可以实现从国内仓库安装你想要的软件工具,大大提升你的安装更新效率。

debianUbuntu包管理工具就是都是apt,先看Ubuntu的软件源的格式(以阿里云软件源为例):

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-srchttp://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

整个软件源结构可以分解为四个部分:

第一部分 第二部分 第三部分 第四部分
软件包格式 软件包服务器地址 发行版版本代号 软件包的分类目录
deb/deb-src http://mirrors.aliyun.com/ubuntu/ 
trusty/trusty-updates/trusty-security/trusty-backports/proposed main、restricted、universe、multiverse

第三部分严格来说不算是发行版版本代号,它应该是Ubuntu系统发布之后,在此基础上进行的安全性更新的分类。

第四部分是按照软件包的自由度来分类的:

Ubuntu的软件源格式详解

这里重点介绍dists和pool两个文件夹,其他的文件夹平常在我看来需要了解的意义不大。

dists/:

本目录包含“发行版”(distributions),此处是获得 Ubuntu 发布版本(releases)和已发布版本(pre-releases)的软件包的正规途径。有些旧软件包及 Contens-*.gz Packages.gz 等文件仍在其中。存在于dists目录下的物理目录名,例如trusty-updates和trusty-security,就是“附加的仓库”。当某个Ubuntu发行版处于维护阶段。将包的必要升级和安全更新放在附加的仓库里。其附加仓库通常有“版本代号-updates”、“版本代号-security”、“版本代号-proposed”等等。dists目录包含的全是Ubuntu发行版目录及其附加仓库目录(如:trusty、trusty-update、trusty-security、trusty-backports就是Ubuntu trusty发行版目录及其附加仓库目录)。

pool/:

所有 Ubuntu 发布版及已发布版的软件包的物理地址。软件包均放进一个巨大的“池子(pool)”,按照源码包名称分类存放。为了方便管理,pool目录下按属性再分类(main、restricted、 universe和multiverse),分类下面再按源码包名称的首字母归档。这些目录包含的文件有:运行于各种系统架构的二进制软件包,生成这些二进制软件包的源码包。 

下面我们试着在已知Ubuntu镜像站服务器地址的情况下在sources.list自己写出一行可用的软件源,下面以中科大Ubuntu镜像站为例

首先我们要记下可以进入包含dists和pool目录的服务器地址,如下图画红线的部分http://mirrors.ustc.edu.cn/ubuntu:

Ubuntu的软件源格式详解

这个服务器地址http://mirrors.ustc.edu.cn/ubuntu/其实就对应我们软件源格式的第二部分,第一部分就是deb或者deb-src,第三部分就是Ubuntu的发行版版本代号(如trusty),至于最后一部分,一般都是main、universe、restricted、multiverse这四个(也就是pool目录下面的子目录名称)。所以一条软件源就写成了:deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main universe restricted multiverse。如果在下载软件包的时候也想要下载软件包的源码的话那就再重新复制一条,但是要把deb换成deb-src(如:deb-src http://mirrors.ustc.edu.cn/ubuntu/ trusty main universe restricted multiverse)。

我们知道Ubuntu还有其他的附加仓库,Ubuntu附加仓库的命名格式是“版本代号-限定词”,限定词是这update、security、proposed、backports四个词中的一个,比方说版本代号trusty和限定词update组合就是trusty-update附加仓库,trusty和security组合就是trusty-security附加仓库,以此类推可以自行写出Ubuntu所有的附加仓库的目录名称。

在sources.list文件里只有一条包含发行版仓库trusty的软件源还不够,我们还要写出包含其他4个附加仓库的软件源,只要把已经写好的软件源中的trusty依次替换成trusty-update、trusty-security、trusty-proposed、trusty-backports即可,下面是完整的包含所有附加仓库的软件源:

deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-update main universe restricted multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-security main universe restricted multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-proposed main universe restricted multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ trusty-backports main universe restricted multiverse

将这四条软件源再一并写入sources.list,加上之前写入的一条deb http://mirrors.ustc.edu.cn/ubuntu/ trusty main universe restricted multiverse,总共五条,有了这五条我们就可以更好更安全地下载和更新我们的软件包了。

下面再附上我自己写的网易163的软件源:

deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-update main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main universe restricted multiverse




 

 

 

来源:wykeinstein

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年2月2日
下一篇 2018年2月3日

相关推荐