|
发表于 2010-4-5 14:43:20
|
显示全部楼层
Post by dickeny;2080729
折腾到了快天亮,基本理解Emerge的工作思路了。
原来根本没有什么固定依赖关系,想删删哪个就直接删:
[php]emerge -C xxx_pkg[/php]删,删除完毕后再检查依赖关系(似乎是用LDD检查链接库?):
[php]emerge -p --depclean[/php]不过,这样的删除方式让我很不习惯,甚至不知道怎么列出目前已经安装的软件包有哪些。。。
这个理解基本是不对的。你的方法也太暴力。
比方说,emerge时你,结果会自动emergeN多包,而gnome这个包反而是个空包,它只是一个集合,确定了gnome这个桌面环境所需要的所有包,而每个包有有各自的依赖关系。
完成之后,系统会把gnome记录在文件里,而其他一起被安装上的包只是作为gnome的依赖留在系统中。
删除gnome时,使用:
达到的效果是把world文件里gnome那一行删掉,实际上没有删除什么文件。
然后emerge --depclean,那些当时被gnome“牵扯”进来并且现在没有被其他包所依赖的包就会自动被删除。这种依赖关系并不是由ldd决定的。
只有revdep-rebuild使用ldd来检查错误。
想看你安装了哪些包,就是老大给出的 eix -I --only-names,到我想你更需要的是知道安装了哪些你直接需要的包,而不是把一些依赖也列出来。最直接的办法就是看world文件:- less /var/lib/portage/world
复制代码 |
|