现在的位置: 首页 > 综合 > 正文

学习笔记:apt-get与dselect原理

2013年03月26日 ⁄ 综合 ⁄ 共 963字 ⁄ 字号 评论关闭

实际上apt-get与dselect使用的是不同的文件来保存package信息
apt : /var/lib/apt/lists/
dselect/dpkg/tasksel : /var/lib/dpkg/

再来解释一下dselect更新的流程:
运行dselect
选择update
程序分析/etc/apt/sources.list
自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录

系统自动执行dpkg --merge-avail {Packagefile},将更新的包信息存入/var/lib/dpkg/available文件中
返回dselect初始界面,选择Select 回车
程序会去比较/var/lib/dpkg/available与available-old的区别,标示出最近更新过以及新加入的包

apt-get的更新过程:
执行apt-get update
程序分析/etc/apt/sources.list
自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录

返回

可以看出,dselect的更新过程实际上就是apt-get update的扩展
/var/lib/apt/lists/只存放了包列表,格式跟ftp.debian.org上的一样
/var/lib/dpkg/则是将上面的文件组合并修改成dpkg需要的格式,这个目录里还保存了包的状态(install/purge/remove...),包内的文件列表,deb包的安装卸载脚本等等很多内容

另外,无论是用什么方法下载的deb软件包都会存放在/var/cache/apt/archives/里 (各位自己手动下载的除外 ;-)

apt-get的功能主要是用于下载软件
而dselect则更侧重于管理软件

等同于目前redhat中很流行的apt-rpm/synaptic
apt-rpm就是debian apt的移植版本
synaptic就类似于dselect的图形界面(当然,debian中也有synaptic... rh那个依然是从咱们这儿移植的)
rpm的功能就类似于dpkg (but... 功能比dpkg差太多)

抱歉!评论已关闭.