ubuntu software-center 软件中心今天突然发现打不开了,就是在启动的过程中启动一半就退出了,多次启动无果。首先想到的办法当然是最彻底的两句话
sudo apt-get purge software-center
sudo apt-get install software-center
结果未果,启动起来还是首先一个窗体初始化
接着。。就直接关闭了。然后查看它的输出信息,发现原来是py输出中文导致的,因为我们窗体上有很多中文字体的组件需要加载,而python处理的时候有一个使用ascii编码格式化字符串的操作,所以就这一语言差异导致这个bug的产生。
产生所在地址/usr/share/software-center/softwarecenter/db/categories.py第269行的debug print
# debug print for cat in categories: LOG.debug("%s %s %s" % (cat.name, cat.iconname,cat.query))
为了解决这个问题,可以将值为中文的字符串 cat.name给格式成utf-8,我这里就直接将LOG.debug注释掉了
# debug print try: for cat in categories: pass #LOG.debug("%s %s %s" % (cat.name, cat.iconname, cat.query)) except Exception as error: print error exit(0)
PS:本来标题叫做ubuntu software-center的bug,可是当我手贱地打开另外一台装有ubuntu14.04的机器的时候,赫然发现它的debug print是这样写的
# debug print for cat in categories: LOG.debug("%s %s %s" % (cat.name.decode(‘utf8‘),cat.iconname,cat.query))
看来这个bug已经有人报道了,不过现在用12.04以及以前版本的人也是大有人在,希望能帮助遇到相同问题的朋友。
ubuntu12.04 software-center 的一个BUG,布布扣,bubuko.com
ubuntu12.04 software-center 的一个BUG
原文:http://my.oschina.net/000quanwei/blog/294663