Ubuntu使用apt来管理软件包,apt可以将软件库存储在如下文件中:
/etc/apt/sources.list 和 /etc/apt/sources.list.d/目录中带.list后缀的文件中。可以使用命令 man sources.list 来查看apt的完整存储机制。通过编辑这些文件,我们可以添加、删除、或者临时关闭某些软件库。
下面详细分析文件sources.list的格式和写法
以字符’#'开头的行代表该行是一行注释
不以’#'开头的行是apt repository,它的格式为:
deb: 二进制包仓库
deb-src: 二进制包的源码库
URI:库所在的地址,可以是网络地址,也可以是本地的镜像地址
deb http://网址 。。。。。
deb [trusted=yes] http://网址 。。。。。
#本地源
deb file:///路径 。。。。。
codename: Ubuntu版本的代号。可以用命令lsb_release -sc来查看
当前系统的代号。
components: 软件的性质(free或non-free等)
详解 deb
deb后面的内容有三大部分:deb URI section1 section2
下面以deb http://us.archive.ubuntu.com/ubuntu/ trusty universe为例进行说明。
URI: 库所在的地址 --URI支持http,ftp,以及本地文件cdrom等路径。
其中,比较重要的就是dists目录和pool目录。dists目录包含了当前库的所有软件包的索引。这些索引通过系统版本分类在不同的文件夹。
进入dists目录,看到如下内容:
可以看到很多文件夹,这些文件夹都是以下格式命名的:
codename
codename-backports
codename-proposed
codename-security
codename-updates
其中codename就是Ubuntu不同版本的代号,上图中的文件夹名其实就是对应了deb后面的section1。
可以看到Ubuntu14.04版本对应的代号是trusty, 因此我们可以根据需要填写不同的section1。
有main, multiverse, restricted, universe文件夹,这些文件夹名其实对应deb后面的section2。这些文件夹里面包含了不同软件包索引。这几个文件夹内包的区别在于:
main: 完全的自由软件。
restricted: 不完全的自由软件。
universe: Ubuntu官方不提供支持与补丁,全靠社区支持。
multiverse:非自由软件,完全不提供支持和补丁。