+ -
当前位置:首页 → 问答吧 → 颠倒了python-updater和emerge --depclean的顺序,搞出一堆问题

颠倒了python-updater和emerge --depclean的顺序,搞出一堆问题

时间:2009-10-04

来源:互联网

前几天给一台新装的 Gentoo 计算机升级。因为配置比较接近,所以这台计算机的make.conf、package.keywords/use/unmask/mask 都是从我主要用的一台计算机上拷过去的。

升级了什么包具体没有留意,很顺利。估计 Python 从 2.5 升级到 2.6 了。因为升级的信息太多没有留意看,把运行 python-updater 的提示给忽略了。update world 以后,又运行了 emerge --ask --depclean, 扫了一眼,没什么特别的,就是 Python 2.5.x 要被删掉了。按了 Yes,看着屏幕狂刷,觉得世界真是安静了,然后问题就来了:

过了两天, 升级 avahi xulrunner 失败,revdep-rebuild 多次都无果,而且提供的错误信息都不怎么靠谱。仔细查看,xulrunner的错误提示把老子一下子搞懵了:"你丫升级Python后是不是忘了运行python-updater"。忽然想起自己以前的机器运行python-updater时也是折腾了老长的时间,看来这就是那个令人头大的问题。赶紧运行 python-updater,提示找不到以前的版本,只能手动指定:python-updater -o 2.5。刷屏又刷了半天,问题还是没有解决。后来参考了以前的帖子和Gentoo Bugzilla上的报告:
http://bugs.gentoo.org/232338

这样解决了问题:

用eselect python指定当前的python版本;
remerge 下面的包: pygtk pygobject pycairo dbus-python。


但是,不知道这样是否干净地解决了问题,下一次是否又会提示有关Python的错误呢?

作者: shinkansen   发布时间: 2009-10-04

不會。只要那些包安裝到了/usr/lib/python2.6就成。

作者: 亞利艾爾   发布时间: 2009-10-04

抱歉,不太理解亞利艾爾所说的意思。

现在 /usr/lib/python2.5 下面确实是空空如也了,包都在2.6下面,这样就能保证不会再因为pyhon的版本问题而导致编译失败吗?

亞利艾爾手头有没有资料介绍python update的相关内容?现在还是一头雾水,想搞清楚python-updater究竟干了什么,下面两个顺序不同的操作会不会造成差异:

操作顺序1. update python; python-updater; emerge --depclean; revdep-rebuild
操作顺序2. update ptyhon; emerge --depclean; python-updater -o 2.5 ; revdep-rebuild

作者: shinkansen   发布时间: 2009-10-04

python-updater,我個人理解,就是把所有要python的包改用當前eselect python選擇的版本來安裝。所以如果你所有的包都安裝到了你現在選擇的python版本中(2.6就是/usr/lib/python2.6)就不會出問題。
  當然你可能還要注意python3.1下面有沒有包。

作者: 亞利艾爾   发布时间: 2009-10-04

顺序1正常点吧. 顺序2把python2.5先清了, 还python-updater干什么.

这折腾比起我那一次RP极低的把python完全-C, 你这实在不算什么...

作者: cliffordli   发布时间: 2009-10-04

如果先把python舊版本卸載了,處理也很簡單,就是revdep-rebuild && python-updater && emerge --depclaen。

作者: 亞利艾爾   发布时间: 2009-10-04

多谢楼上各位的回复!

作者: shinkansen   发布时间: 2009-10-04

对于Python的这些处理方式我现在已经比较清楚了。

清楚归清楚,可是我上次的问题照样没有解决。挺简单的,不是不是吗?

哎~~ 都是往事了。

这也成了我一直以来的一个遗憾。

作者: tomguy   发布时间: 2009-10-05