LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: meteo

如何在保持系统精简干净的情况下升级,欢迎拍砖

[复制链接]
 楼主| 发表于 2004-6-11 08:09:51 | 显示全部楼层

回orphen

dev-libs/glib-1.2.10-r5
dev-libs/glib-2.4.1
sys-libs/db-4.1.25_p1-r3
sys-libs/db-1.85-r1
x11-libs/gtk+-1.2.10-r11
x11-libs/gtk+-2.4.1
这些都有用,不要删除
发表于 2004-6-11 08:10:33 | 显示全部楼层
问题是,我怎么知道哪些包不应该删除~
你要说是应用软件还好说,我最起码知道自己用不用,可是其他的呢?
 楼主| 发表于 2004-6-11 08:17:53 | 显示全部楼层
关于emerge ebuild不会被加入world里,我是在emerge -p depclean的时候发现的,很多软件明明是我手工安装的,却偏偏被放到了删除的列表里面,后来想起来这些包都是直接用emerge ebuild安装的。我觉得这应该不是bug,因为ebuild文件的来源太复杂了,很多时候甚至个人自己写一个ebuild都有可能,如果ebuild也加入world可能就会更乱了。
发表于 2004-6-11 08:34:15 | 显示全部楼层
我刚试了一个办法
先备份/var/cache/edb/world文件
然后,qpkg -I >world
再然后,手动删除world文件中的软件的版本号,要一行一行删,比较郁闷~
这样,emerge -up world就会更新全部的软件包
发表于 2004-6-11 08:40:23 | 显示全部楼层

但是会和用原来的world文件emerge的有些不同

These are the packages that I would merge, in order:

Calculating world dependencies ...done!
[ebuild     UD] sys-kernel/linux-headers-2.4.21-r1 [2.6.5]
[ebuild     UD] app-text/xpdf-2.03 [3.00-r1]==================正常
[ebuild     UD] net-ftp/gftp-2.0.16-r1 [2.0.17]
[ebuild  N    ] dev-perl/Text-Balanced-1.95
[ebuild  N    ] dev-perl/Parse-RecDescent-1.94
[ebuild  N    ] dev-perl/File-Spec-0.84-r1
[ebuild  N    ] dev-perl/digest-base-1.05
[ebuild  N    ] dev-perl/Digest-MD5-2.33
[ebuild  N    ] dev-perl/Test-Harness-2.30
[ebuild  N    ] dev-perl/Inline-0.44-r1
[ebuild  N    ] dev-perl/Filter-1.29
[ebuild  N    ] dev-perl/ExtUtils-F77-1.14-r1
[ebuild  N    ] dev-perl/PDL-2.4.0-r1
[ebuild  N    ] media-libs/mpeg-lib-1.3.1-r1
[ebuild  N    ] gnome-base/ORBit-0.5.17
[ebuild  N    ] media-libs/imlib-1.9.14-r1
[ebuild  N    ] gnome-base/gnome-libs-1.4.2
[ebuild  N    ] media-libs/gdk-pixbuf-0.22.0
[ebuild  N    ] dev-perl/XML-Writer-0.4-r2
[ebuild  N    ] x11-libs/gtkglarea-1.2.3-r1
[ebuild  N    ] dev-perl/gtk-perl-0.7008-r11
[ebuild  N    ] media-gfx/gimp-1.2.5
[ebuild     UD] net-misc/d4x-2.5.0_rc2 [2.5.0_rc4]==============正常

只有标记的两个是原来有的(我更新了“U”标记的)
 楼主| 发表于 2004-6-11 08:59:40 | 显示全部楼层
不要用qpkg -I,这样把所有安装的包都列在world里了,实际上world里面列出的并不是所有安装的包,而是你用emerge xxx命令主动安装的包,比如三个包a, b, c, a依赖于b和c,那么你emerge a的时候,b和c都会被装上,但是不会被记载到world里面,他们属于被依赖的包。所以当你emerge unmerge a的时候,b和c就不再被依赖,这时候emerge depclean就会把b和c列出来。如果用qpkg -I的话,那么a b c都会被列到里面,这样系统就不清楚到底哪个包是你需要的了。
如果你用qpkg -I的话,某次删除了a,那么b和c实际上已经不需要了,可是由于world里面有,gentoo就以为你仍然需要他们,这样就会形成“呆帐”
发表于 2004-6-11 09:00:36 | 显示全部楼层
经检验,以上方法可用
多出来的是因为原来的world文件里没有,也就是通过emerge ebuild安装的
发表于 2004-6-11 09:04:06 | 显示全部楼层
不要用qpkg -I,这样把所有安装的包都列在world里了,实际上world里面列出的并不是所有安装的包,而是你用emerge xxx命令主动安装的包,比如三个包a, b, c, a依赖于b和c,那么你emerge a的时候,b和c都会被装上,但是不会被记载到world里面,他们属于被依赖的包。所以当你emerge unmerge a的时候,b和c就不再被依赖,这时候emerge depclean就会把b和c列出来。如果用qpkg -I的话,那么a b c都会被列到里面,这样系统就不清楚到底哪个包是你需要的了。

如此说来,emerge -uv world就不会更新b,c了
而emerge -uDv world又是不必要的(我认为)会多出很多来
 楼主| 发表于 2004-6-11 09:15:42 | 显示全部楼层
对emerge -uv world和emerge -uDv world的区别就是在这里
emerge -uv world不会更新b和c,而emerge -uDvworld则会
强烈建议你应该用emerge -uDv world,因为实际上只有emerge -uv world容易出问题的。
 楼主| 发表于 2004-6-11 09:19:38 | 显示全部楼层
我现在升级都是用emerge -uDv world,记得刚用gentoo的时候,第一次用emerge -uDv world是会被吓一跳,但是绝对是应该的,而且你升级一次以后,以后只要定期升级,需要更新的包很少,那些包不是不必要的,其实你看看emerge的manual就知道了,-D的目的就是把world里面的软件包依赖的软件包也进行升级,这显然是必要的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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