Sunday, July 01, 2007

用 aptitude 处理 debian 软件包的依赖关系

(内容并不超出 aptitude 文档的范围,这里用以提示给没有阅读完整文档的用户)

在使用 aptitude 安装、删除、升级软件包的时候,有时会遇到依赖关系问题,通常可以利用 aptitude 的自动解决功能,但有的时候,我们希望能手工选择一下如何处理依赖关系。

当在软件包界面进行选择时,在出现依赖关系问题时,会在界面下方得到红色提示,这时,按 e ,会得到依赖关系解决方案界面,里面列出了一个解决方案,包含安装、升级、降级、保持、删除若干个软件包,上下移动光标,会发现下方的区域会列出每个软件包可以用来解决该问题的几种方案。

这时可以用 ``.'' 和 ``,'' 前后翻阅不同的解决方案,翻到哪,再按 g 就会执行哪个方案了。

当然,我们还可以更精确的选择,解决方案界面,对哪个软件包按 a 就表示接受对这个软件包的这种处理方式,这样,就极大地限制了备选方案的数量,同理,对软件包按 r 就可以拒绝一个软件包的处理方式。结合 a/r/./, 可以更快地找到合适的解决方案。
fdupes: 发现文件的重复拷贝

在使用了一段时间的计算机之后,很多文件都可能被保存或复制了很多份,而且常常是在无意状态下造成这些副本的,你是不是想把他们找出来并删掉呢?

原则上讲,这个工作并不难,但是比较复杂,需要列出所有文件,比较大小乃至 md5,因为同名文件不一定有相同的内容,尤其是对于 README 这样的文件名,而且相同的文件不一定名称也一样。

fdupes 就是这样一个有用的小工具,它能很高效率地完成这一工作,用法很简单: 在 fdupes 后面加上要查看的所有目录,同时,还有一些开关:
  • -n 不比较所有大小为0的文件
  • -r 递归搜索所有子目录
其它功能参考 man page 吧 :)