Adams Bros Blog

5Dec/090

Gentoo Portage Python Update issues

I have been having some gentoo portage problems due to my system being out of sync. When I finally updated a month or two later, it simply wasn't working. I was getting an error like the following...

Performing Global Updates: /usr/portage/profiles/updates/3Q-2009
(Could take a couple of minutes if you have a lot of binary packages.)
 .='update pass'  *='binary update'  #='/var/db update'  @='/var/db move'
 s='/var/db SLOT move'  %='binary move'  S='binary SLOT move'
 p='update /etc/portage/package.*'
......................................................                    

Performing Global Updates: /usr/portage/profiles/updates/4Q-2009
(Could take a couple of minutes if you have a lot of binary packages.)
 .='update pass'  *='binary update'  #='/var/db update'  @='/var/db move'
 s='/var/db SLOT move'  %='binary move'  S='binary SLOT move'
 p='update /etc/portage/package.*'
..................
Traceback (most recent call last):
 File "/usr/bin/emerge", line 40, in <module>
 retval = emerge_main()
 File "/usr/lib64/portage/pym/_emerge/main.py", line 1328, in emerge_main
 return action_sync(settings, trees, mtimedb, myopts, myaction)
 File "/usr/lib64/portage/pym/_emerge/actions.py", line 2173, in action_sync
 if portage._global_updates(trees, mtimedb["updates"]):
 File "/usr/lib64/portage/pym/portage/__init__.py", line 8572, in _global_updates
 moves = bindb.move_ent(update_cmd)
 File "/usr/lib64/portage/pym/portage/dbapi/bintree.py", line 273, in move_ent
 mytbz2.recompose_mem(portage.xpak.xpak_mem(mydata))
 File "/usr/lib64/portage/pym/portage/xpak.py", line 106, in xpak_mem
 indexglob=indexglob+encodeint(len(x))+x+encodeint(datapos)+encodeint(mydatasize)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 49: ordinal not in range(128)

The solution is simple, but not necessarily easy to think of.  All that needs to be done is to move the 4Q-2009 and 3Q-2009 files somehwere else, and then update python/portage.

[19:31 root@joseph updates] # eselect python list                    
Available python interpreters:                                       
 [1]   python2.4                                                    
 [2]   python2.5 *                                                  
 [3]   python2.6                                                    
[19:31 root@joseph updates] # eselect python set 3
[19:35 root@joseph updates] # emerge -1 portage

Then, move the 4Q-2009 and 3Q-2009 back to the proper locations, and everything should be working.  Next, it's probably good to do a "python-updater -p", followed by your world update.

Filed under: Linux Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

 

No trackbacks yet.