LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5008|回复: 7

apt-get update后,为什么tasksel和dselect的内容都没有更新呢?

[复制链接]
发表于 2003-7-23 16:34:32 | 显示全部楼层 |阅读模式
>>root@debian:~# tasksel
>>No tasks found on this system.
>>Did you update your available file?

who to do?
发表于 2003-7-23 17:09:33 | 显示全部楼层
try: dselect -> update
 楼主| 发表于 2003-7-23 17:56:00 | 显示全部楼层
thx
发表于 2003-7-23 20:39:05 | 显示全部楼层
刚才手头有点事,现在来解释一下原因

实际上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差太多)
 楼主| 发表于 2003-7-23 21:36:57 | 显示全部楼层
good
发表于 2003-7-24 09:13:23 | 显示全部楼层
谢谢
发表于 2003-7-24 09:36:05 | 显示全部楼层
太感谢拉,终于明白为什么它们不会一致拉.
发表于 2006-2-23 20:49:53 | 显示全部楼层
太感谢了,正急需ing
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表