实际上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差太多)