[实况转播]从KDE 4.2升级到4.3指南@gentoo(跨slot)

来源:互联网 发布:nginx模块开发 编辑:程序博客网 时间:2024/05/22 10:44

Gentoo update KDE 4.2 to 4.3 Guide
自从今年1月份,华丽的KDE 4.2发布以后,经过了近半年时间,在8月4日进一步华丽的KDE 4.3发布出来了,前几天,即9月1日,其第一个维护版本4.3.1也发布了。
由于在gentoo中,KDE 4.2和4.3分别属于不同的slot,所以不可能通过简单的emerge –sync和emerge -uDN world来吧现有的KDE4.2全面升级到4.3。而且,若是你在原先安装KDE4.2的时候,没有启用kdeprefix这个USE,(USE是 gentoo的包管理器portage的一组可定制标志,定义全部或某个软件包启用哪些特色,在portage中实现./configure –enable-xxx和--disable-xxx的配置效果),那么在存在KDE 4.2的情况下直接emerge kdebase-meta:4.3会由于一些包的4.2版本和4.3版本相互block而无法安装。(我尝试过,portage会阻止这种情况,portage总是会表现的意想不到的强大)

[ebuild NS ] kde-base/kscreensaver-4.3.1 [4.2.4] USE="opengl pam (-aqua) -debug (-kdeprefix)" 0 kB
[nomerge ] kde-base/konqueror-4.3.1 [4.2.4] USE="auth bookmarks handbook (-aqua) -debug (-kdeprefix) -thumbnail"
[nomerge ] kde-base/kurifilter-plugins-4.3.1 [4.2.4] USE="(-aqua) -debug (-kdeprefix)"
[blocks b ] kde-base/kurifilter-plugins:4.2[-kdeprefix] ("kde-base/kurifilter-plugins:4.2[-kdeprefix]" is blocking kde-base/kurifilter-plugins-4.3.1)
[blocks b ] kde-base/kurifilter-plugins:4.3[-kdeprefix] ("kde-base/kurifilter-plugins:4.3[-kdeprefix]" is blocking kde-base/kurifilter-plugins-4.2.4)
[uninstall ] kde-base/kurifilter-plugins-4.2.4 USE="-debug (-kdeprefix)"
[nomerge ] kde-base/kdebase-meta-4.3.1 [4.2.4] USE="semantic-desktop (-kdeprefix) -policykit"
[ebuild NS ] kde-base/kurifilter-plugins-4.3.1 [4.2.4] USE="(-aqua) -debug (-kdeprefix)" 0 kB
[blocks b ] kde-base/kstart:4.3[-kdeprefix] ("kde-base/kstart:4.3[-kdeprefix]" is blocking kde-base/kstart-4.2.4)
[nomerge ] kde-base/kdebase-meta-4.3.1 [4.2.4] USE="semantic-desktop (-kdeprefix) -policykit"

<插播广告>升级以前,我使用的是KDE 4.2
image
升级以后,KDE 4.3来到了我的身边,她天生丽质,清新怡人。
image
回眸一笑,千娇百媚。
image
KDE 4,您桌面环境的最佳选择!
好了,现在回到我们的安装现场……
所以,为了从KDE 4.2升级到4.3,我遵循了以下步骤:
Following Step in order to update KDE 4.2 to 4.3
1、查看都安装了那些KDE 4.2软件包
Step 1, have a look which packages were installed with KDE 4.2
这里并不需要了解全部,只要了解记录到world里面的包就行。
fgrep kde /usr/lib/portage/world >> ~/kde-4.2_installed-ebuild.txt

2、删除所已经安装的KDE4.2的软件包
Step 2, remove all KDE 4.2 package were installed
emerge -C `eix -I -C kde-base –only-names -u`

gentoo官方文档中提供了另外一种方法,Linuxsir论坛上也有人提供了一种方法。
another mothed form gentoo offical document,and limuxsir forum.
3、由于KDE 4.x(包括4.3)还位于测试分支,必须把需要安装的KDE 4.3的软件包的名称加入到package.keywords文件中去,才能在gentoo中安装它。
Setp 3, need package.keywords,download it
在这里我制作了这个kde-4.3文件,包含了可能需要安装的大部分KDE 4.3的软件包。大家可以下载这个文件,并把它放置到/etc/portage/package.keywords/目录下即可。关于package.keywords的用法,可以参看《Gentoo Linux 手册》的“使用Portage”一章下“文件和目录”中的“Portage文件”小节。
4、万事具备后,就开始安装了,执行
Step 4, install KDE 4.3 packages if everything is fine.
emerge -tva kdebase-meta

即可。其中kdebase-meta可以被替换成你在第一步查看到了软件包列表,这样你就可以安装和你原先KDE 4.2系统同样多新版软件包。
插播意外事件:PyQt4
issue with PyQt4
我在安装到这一步的时候,遇到了这样一个提示:
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
dev-python/PyQt4:0
('installed', '/', 'dev-python/PyQt4-4.5.4-r4', 'nomerge') pulled in by
>=dev-python/PyQt4-4.4.0[X] required by ('ebuild', '/', 'kde-base/plasma-workspace-4.3.1', 'merge')
('ebuild', '/', 'dev-python/PyQt4-4.5.4-r4', 'merge') pulled in by
>=dev-python/PyQt4-4.5[dbus,sql,svg,webkit,X] required by ('ebuild', '/', 'kde-base/pykde4-4.3.1', 'merge')
(and 1 more)
Explanation:
New USE are correctly set, but --newuse wasn't requested, so an
installed package with incorrect USE happened to get pulled into the
dependency graph. In order to solve this, either specify the --newuse
option or explicitly reinstall 'dev-python/PyQt4:0'.

当时直接
emerge -C PyQt4

回避了。
5、测试一下!
Step 5, have fanny with it
未尽事宜,请查看Gentoo官方文档《gentoo KDE Guide》
Any Question, please refer to offical gentoo KDE guide.