(cross-posting from the Gentoo forum)
I try editing the .eclass
file in order to correct the error, but it seems my edits are being defeated by a cache somewhere. The initial error occurs when I run the command emerge --config =dev-db/mysql-5.7.12
, which I must do in order to finish installing my build of MySQL. The command fails and /var/log/mysql/mysqld.err
says:
[ERROR] Too many arguments (first extra is
''--init-file=/var/tmp/portage/dev-db/mysql-5.7.12/temp/tmp.COaXRiJpf9'').
I traced it to a file named mysql-multilib-r1.eclass
. I found two versions of this file on my system; one in the main Gentoo repository (priority -1000) under /usr/portage/eclass/
, and the other in the overlay repository (+50). The overlay repository is maintained by Layman and the name of the overlay is ‘mysql’. — I’m using it to gain access to MySQL 5.7, which hasn’t arrived in the main repository yet. — Specifically I traced the error to line 953 in the overlay version of the file, or 945 in the main version:
initialize_options="--initialize-insecure '--init-file=${sqltmp}'"
Probably the single quotes are causing the --init-file
option to be interpreted as a proper argument. I just need to remove them. But when I do, it has no effect. My edits to this file — no matter which version I edit — are ignored. I’ve been careful to delete the contents of /var/tmp/portage
in case it’s caching there. I also tried synchronizing the repositories:
layman --sync ALL
emerge --sync
I tried synchronizing them before editing the two versions of the file, and also after editing — in this case clobbering my edits to the main version but (oddly) not the overlay version. Neither helped.
The Gentoo developer manual suggests that I might need to ‘manually touch all relevant overlay files after updating overlay eclasses’. I tried doing that, too; touching all files under these directories:
/usr/portage/dev-db
/usr/portage/eclass
/usr/portage/virtual/mysql
/var/lib/layman/mysql/dev-db
/var/lib/layman/mysql/eclass
/var/lib/layman/mysql/metadata
/var/lib/layman/mysql/profiles
/var/lib/layman/mysql/virtual
When I next ran the emerge
command, it began by outputting:
Performing Global Updates
(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.*'
/var/lib/layman/mysql/profiles/updates/3Q-2014.
But still my edits were ignored. — How can I edit this .eclass
file so that my edits actually take effect? Or how else can I work around an error like this?