emerge system or emerge world fail with error listed below. emerge <package_name> appears to still work. Reproducible: Always Steps to Reproduce: 1.emerge -up system or emerge -up world 2. 3. Actual Results: main etc # emerge -up system These are the packages that I would merge, in order: Calculating system dependencies |Traceback (most recent call last): File "/usr/bin/emerge", line 2517, in ? if not mydepgraph.xcreate(myaction): File "/usr/bin/emerge", line 1135, in xcreate if not self.create(myk): File "/usr/bin/emerge", line 825, in create if not self.select_dep("/",mydep["/"],myparent=mp,myuse=myuse): File "/usr/bin/emerge", line 962, in select_dep myeb=portage.portdb.xmatch("bestmatch-visible",x) File "/usr/lib/portage/pym/portage.py", line 4690, in xmatch myval=best(self.xmatch("match-visible",None,mydep,mykey)) File "/usr/lib/portage/pym/portage.py", line 4701, in xmatch myval=match_from_list(mydep,self.xmatch("list-visible",None,mydep,mykey)) File "/usr/lib/portage/pym/portage.py", line 4687, in xmatch myval=self.gvisible(self.visible(self.cp_list(mykey))) File "/usr/lib/portage/pym/portage.py", line 4782, in gvisible myaux=db["/"]["porttree"].dbapi.aux_get(mycpv, ["KEYWORDS"]) File "/usr/lib/portage/pym/portage.py", line 4535, in aux_get if doregen or not self.eclassdb.is_current(cat,pkg,self.auxdb[cat][pkg] ["INHERITED"].split()): File "/usr/lib/portage/pym/portage.py", line 4380, in is_current self.setup_package(cat, pkg) File "/usr/lib/portage/pym/portage.py", line 4357, in setup_package self.packages[cat] = self.dbmodule(self.cachedir, cat+"-eclass", [], uid, portage_gid) File "/usr/lib/portage/pym/portage_db_cpickle.py", line 23, in __init__ self.db = mypickle.load() EOFError Expected Results: list of packages to be upgraded main root # emerge info Portage 2.0.50-r1 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.4.23_pre8-gss-r2) ================================================================= System uname: 2.4.23_pre8-gss-r2 i686 Celeron (Mendocino) Gentoo Base System version 1.4.3.10 Autoconf: sys-devel/autoconf-2.58 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://mirrors.tds.net/gentoo http://gentoo.chem.wisc.edu/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://gentoo.noved.org/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="acpi apm arts avi berkdb cdr crypt cups dvd encode foomaticdb gdbm gif gpm gtk2 imlib java jpeg libg++ libwww mad mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline samba sdl slang spell ssl svga tcpd truetype x86 xml2 xmms xv zlib"
I have a simular problem. Check if youre worldfile (/mnt/hda5/var/cache/edb/world) is gone (emthy). At least so is mine. To those helping us: is there a way to restore my worldfile?
Yep. /var/cache/edb/world is a zero byte file.
Are you out of diskspase? After I deleted some files and did "emerge sync" emerge world -up works fine. However my worldfile is still gone... (/var/cache/edb/eclass.pickle seems to contain the name of at lest some installed packages, but I am not sure if it is a complete list, and also dependencyes are listed her)
Sure was out of disk space. I was trying to emerge gcc when I ran out of disk space and it also failed (due to the disk space). I guess it triggered this problem too. Well. As you suggested, I freed up some space, ran emerge sync and now emerge -up world no longer errors, but my world file is still shot.
Created attachment 25377 [details] quick & dirty world file creator - searches for all installed ebulds and prints them out I did some digging around and found this tool called gencheck, http://www.kolbu.com/source_code.php and code http://www.kolbu.com/gentoo/gencheck and made a few modifications so it can build a new world file.
You will need to direct the output of that script into your world file. #world_creator > /var/cache/edb/world And with that, I think we are good to go.
Created attachment 25379 [details] quick & dirty world file creator - searches for all installed ebulds and prints them out corrected a flaw - need to add a newline to the end of each entry.
Created attachment 25430 [details] world_cleaner Thankyou, the script works fine! (of corse, it is Perl :) ) I also got the problem from emerging gcc, so oure problems were quite identical. Youre script inspired me to do some coding myself, so I have now created a script to clean up the worldfile a little bit more efficient. I uploaded it here in case you are intrested...
PS! The script only has 'world' (this dir) as the worldfile. You should change it to the path to the worldfile you wishes to edit...