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-srchttp://mirrors.aliyun.com/ubuntu/ 
trusty/trusty-updates/trusty-security/trusty-backports/proposedmain、restricted、universe、multiverse

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

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


main(主要的)--“main”组件包括了自由软件、可以被自由发布的软件和被Ubuntu团队完全支持的软件。其中包括了大多数流行的和稳定的开源软件,当您安装Ubuntu时默认安装的就是这些软件。
restricted(限制的)--“restricted”组件是专供普遍用途,而且没有自由软件版权,但依然被Ubuntu团队支持的软件。请注意,因为不能直接修改软件,因而我们可能不能提供完全的技术支持,即便如此,我们还能向实际作者反馈Bug报告。
universe(宇宙,世界,全人类)--“universe”组件是整个自由、开源Linux世界的缩影。在“universe”组件中,你可以找到大多数开源软件,以及在开源版权下的软件,所 有这些都是在公共源的基础上建立的。这些软件都是使用“main”中的组件编写的,它们能与“main”组件相安无事地共同运行,但它们没有安全升级的保 障。“universe”组件包含了数以千计的软件。虽然是公共的,用户必须明白它们与稳定的Ubuntu核心的软件的差异和不稳定。
multiverse(多元的)--multiverse”组件包含了“不自由”的软件,这意味着这些软件不满足 Ubuntu相对于“main”组件的各种版权政策。当您使用这些软件时,如何调整各种权力以及遵重版权所有者的问题,就完全依靠您自己把握了。 这些软件不被我们支持,而且通常不能被修改和更新,您将自己承担任何风险。 现在,作为以上位置的新增功能,实际上新的软件包都存储在pool目录中

下面我们来看一下Ubuntu软件源镜像站的目录结构(以中科大Ubuntu软件源镜像站为例):

http://mirrors.ustc.edu.cn/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:


这个服务器地址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








 

 

 

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值