Installing “app-portage/eix” in Gentoo to manage your portage updates you might encounter this error, when trying to use “eix” for the first time:
Writing database file /var/cache/eix/portage.eix... cannot open database file /var/cache/eix/portage.eix for writing (mode = 'wb')
The chances are missing directory “/var/cache/eix/” or the user:group of the “/var/cache/eix/” is root:root, which is NOT right.
The user:group must be “portage:portage”.
So the solution is really simple:
mkdir -p /var/cache/eix chown portage:portage /var/cache/eix
Output – the errors you might get
Using the eix-sync failed with:
root@srv1 ~ # eix-sync * eix-cache does not exist * Running eix-update Reading Portage settings... Building database (/var/cache/eix/portage.eix)... [0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat) Reading category 167|167 (100) Finished [1] "myportage" /usr/local/myportage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished Applying masks... Calculating hash tables... Writing database file /var/cache/eix/portage.eix... cannot open database file /var/cache/eix/portage.eix for writing (mode = 'wb') * eix-update failed * Time statistics: 6 seconds for initial eix-update 6 seconds total
Using the “eix-update” failed, too.
root@srv ~ # eix-update Reading Portage settings... Building database (/var/cache/eix/portage.eix)... [0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat) Reading category 167|167 (100) Finished [1] "myportage" /usr/local/myportage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished Applying masks... Calculating hash tables... Writing database file /var/cache/eix/portage.eix... cannot open database file /var/cache/eix/portage.eix for writing (mode = 'wb')
Output 2 – Successful update with eix
root@srv ~ # eix-update Reading Portage settings... Building database (/var/cache/eix/portage.eix)... [0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat) Reading category 167|167 (100) Finished [1] "myportage" /usr/local/myportage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished Applying masks... Calculating hash tables... Writing database file /var/cache/eix/portage.eix... Database contains 19544 packages in 167 categories
Thanks for posting this. It led me to change the owner:group of the files contained WITHIN /var/cache/eix/ to portage:portage. They had been created with my user’s username:group by having run eix-update as user.
Hello,
Thanks. For me :
mkdir -p /var/cache/eix
chown portage:portage /var/cache/eix/*