The summary already explains it, emerge fails to clean if $PORTAGE_TMPDIR/binpkgs/ does not exist. This is with sys-apps/portage-2.1.1_pre3-r3. >>> Safely unmerging already-installed instance... Traceback (most recent call last): File "/usr/bin/emerge", line 3940, in ? emerge_main() File "/usr/bin/emerge", line 3935, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/bin/emerge", line 3475, in action_build mergetask.merge(pkglist, favorites, mtimedb) File "/usr/bin/emerge", line 1957, in merge prev_mtimes=ldpath_mtimes) File "/usr/lib/portage/pym/portage.py", line 2947, in doebuild vartree=vartree, prev_mtimes=prev_mtimes) File "/usr/lib/portage/pym/portage.py", line 3166, in merge mydbapi=mydbapi, prev_mtimes=prev_mtimes) File "/usr/lib/portage/pym/portage.py", line 6679, in merge cleanup=cleanup, mydbapi=mydbapi, prev_mtimes=prev_mtimes) File "/usr/lib/portage/pym/portage.py", line 6317, in treewalk self.unmerge(oldcontents, trimworld=0, ldpath_mtimes=prev_mtimes) File "/usr/lib/portage/pym/portage.py", line 5978, in unmerge mydbapi=self.vartree.dbapi, vartree=self.vartree) File "/usr/lib/portage/pym/portage.py", line 2731, in doebuild builddir_lock = portage_locks.lockdir( File "/usr/lib/portage/pym/portage_locks.py", line 35, in lockdir return lockfile(mydir,wantnewlockfile=1) File "/usr/lib/portage/pym/portage_locks.py", line 64, in lockfile raise portage_exception.DirectoryNotFound, os.path.dirname(mypath) portage_exception.DirectoryNotFound: '/tmp/binpkgs'
Same here. Same portage 2.1.1_pre3-r3. Here's a couple more tracebacks, same package, first after merging the update, second after trying a manual emerge -c when automatic one didn't work. (PORTAGE_TMPDIR and PKG_TMPDIR are both /tmp, which is a tmpfs. FEATURES=buildpkg is set. Ask if you need full emerge --info.) net-misc/dhcpcd selected: 2.0.8-r1 protected: 2.0.8-r2 omitted: none >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. >>> Waiting 2 seconds before starting... >>> (Control-C to abort)... >>> Unmerging in: 2 1 >>> Unmerging net-misc/dhcpcd-2.0.8-r1... No package files given... Grabbing a set. Traceback (most recent call last): File "/usr/bin/emerge", line 3940, in ? emerge_main() File "/usr/bin/emerge", line 3935, in emerge_main myopts, myaction, myfiles, spinner) File "/usr/bin/emerge", line 3475, in action_build mergetask.merge(pkglist, favorites, mtimedb) File "/usr/bin/emerge", line 2021, in merge "clean", [xsplit[0]], ldpath_mtimes) File "/usr/bin/emerge", line 2332, in unmerge vartree=vartree, ldpath_mtimes=ldpath_mtimes) File "/usr/lib/portage/pym/portage.py", line 3173, in unmerge ldpath_mtimes=ldpath_mtimes) File "/usr/lib/portage/pym/portage.py", line 5978, in unmerge mydbapi=self.vartree.dbapi, vartree=self.vartree) File "/usr/lib/portage/pym/portage.py", line 2731, in doebuild builddir_lock = portage_locks.lockdir( File "/usr/lib/portage/pym/portage_locks.py", line 35, in lockdir return lockfile(mydir,wantnewlockfile=1) File "/usr/lib/portage/pym/portage_locks.py", line 64, in lockfile raise portage_exception.DirectoryNotFound, os.path.dirname(mypath) portage_exception.DirectoryNotFound: '/tmp/binpkgs' net-misc/dhcpcd selected: 2.0.8-r1 protected: 2.0.8-r2 omitted: none >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. >>> Waiting 2 seconds before starting... >>> (Control-C to abort)... >>> Unmerging in: 2 1 >>> Unmerging net-misc/dhcpcd-2.0.8-r1... No package files given... Grabbing a set. Traceback (most recent call last): File "/usr/bin/emerge", line 3940, in ? emerge_main() File "/usr/bin/emerge", line 3921, in emerge_main ldpath_mtimes, raise_on_missing=False): File "/usr/bin/emerge", line 2332, in unmerge vartree=vartree, ldpath_mtimes=ldpath_mtimes) File "/usr/lib/portage/pym/portage.py", line 3173, in unmerge ldpath_mtimes=ldpath_mtimes) File "/usr/lib/portage/pym/portage.py", line 5978, in unmerge mydbapi=self.vartree.dbapi, vartree=self.vartree) File "/usr/lib/portage/pym/portage.py", line 2731, in doebuild builddir_lock = portage_locks.lockdir( File "/usr/lib/portage/pym/portage_locks.py", line 35, in lockdir return lockfile(mydir,wantnewlockfile=1) File "/usr/lib/portage/pym/portage_locks.py", line 64, in lockfile raise portage_exception.DirectoryNotFound, os.path.dirname(mypath) portage_exception.DirectoryNotFound: '/tmp/binpkgs'
It's been already fixed in SVN. Meanwhile, just create the directory. :)
It's fixed in svn r3985. Run `emerge --clean` after you've created the directory and everything should be fine.
This has been released in 2.1.1_pre3-r4.