Open eternal-sorrow opened 1 year ago
There can be many reasons for your experience.
You might have configured eix in some way to keep the data from the previous eix file. A simple way to do this for overlays not existing anymore is by setting KEEP_VIRTUALS.
A more likely possibility is that the cache eix is reading its data from is stale.
I suggest you to check where eix-update is reading the data from your overlay and what cache method it is using for that overlay: eix-update shows this information.
Then depending on your cache method, check whether there is data in the metadata/cache directory of your overlay which contains this information. Or in /var/cache/edb/$PATH_TO_YOUR_OVERLAY.
I use sqlite cache method for my repostories. Is there any way to make sure packages are removed from sqlite cache if they do not exist in the overlay?
Okay, removing sqlite file and then running emerge --metadata
and then eix-update
removed the stale ebuild versions from eix. Is there any way to make this automatic and not so drastic - removing the whole cache and regenerating it?
I think emerge --metadata alone should be enough. You should always run this before eix-update if you use cache method sqlite.
Portage does it automatically after every emaint sync
.
I think emerge --metadata should remove nonexistent ebuilds from the sqlite cache. There might be a bug in the portage implementation. It might be worth filing a bug against portage. If should be intentional that portage never cleans up the sqlite file, I am afraid that the sqlite method of eix cannot be used anymore: I see no reasonable way to solve this problem, as intentionally eix does not check for ebuilds when using the sqlite cache for speed reasons.
Just tried it - did emerge --metadata
and then eix-update
. The old ebuilds are still visible by eix
.
I experienced the same issue, some old ebuilds from my local overlay were still showing up.
This worked for me:
/var/cache/edb/dep/var/db/repos/$my_repo_name
rm /var/cache/eix/*
emerge --metadata
eix-update
I'm using assign
cache method (as suggested on the Gentoo Wiki). Maybe this tip is no longer relevant? I also found a few old repositories I'm no longer using in /var/cache/edb/dep/var/db/repos/
.
I had a ebuild in my local overlay, but I removed it long ago. It is still listed in eix even though it doesn't exist in the overlay. The database was updated many times since then.