Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mariadb-10.1.9 won't install because of conflicting mysql_config binaries #12072

Closed
linuxfood opened this issue Jan 1, 2016 · 14 comments
Closed

Comments

@linuxfood
Copy link

Seems like some days ago there was a split of the output paths for mariadb that makes it impossible to install or upgrade mariadb as near as I can tell.

This is the commit: e97b63a

collision between ‘/nix/store/mkmiziygv2v9hsq14xjs4lyjj12ncgsc-mariadb-10.1.9-lib/bin/mysql_config’ and ‘/nix/store/kbl8fh8mpdmisrhbaarg14v17024mbnq-mariadb-10.1.9/bin/mysql_config’; use ‘nix-env --set-flag priority NUMBER PKGNAME’ to change the priority of one of the conflicting packages

The suggested fix doesn't work because there's only one package in question.

@linuxfood
Copy link
Author

For now I've locally forked the config for mariadb to change the cp to a mv.

@mogorman
Copy link
Contributor

mogorman commented Jan 2, 2016

would changing mysql_config to mariadb_config be the right fix?

@linuxfood
Copy link
Author

@mogorman The two programs are literally identical. As far as I can tell, it's just invalid to have it in both output paths. The comment in the commit doesn't make sense to me. @wkennington could you elaborate a little on the intended purpose of the change?

My trivial one line change of 'cp' -> 'mv' at least makes it possible to create the user environment, but, I don't know if I've broken something else since I haven't tried to build any other expression that depends on mariadb yet.

@vcunat
Copy link
Member

vcunat commented Jan 2, 2016

I assume that you don't need mariadb.lib in the user env and mariadb.out is enough, but that's rather a side step.

@retrry
Copy link
Contributor

retrry commented Mar 2, 2016

I do too get this error still and I can't install mysql to user profile.

$ nix-env -iA nixos.mysql                                                                                                                                                
installing ‘mariadb-10.1.9’
building path(s) ‘/nix/store/0l8vqmcqng2ykiws4hxhavpzzh4mq4sh-user-environment’
Wide character in die at /nix/store/64jc9gd2rkbgdb4yjx3nrgc91bpjj5ky-buildenv.pl line 79.
collision between ‘/nix/store/b9799ll2ji4s505s6vy27wsh8zy8wsnz-mariadb-10.1.9-lib/bin/mysql_config’ and ‘/nix/store/6833bdiydb9ldv1j5dzgzqg1y1yh514d-mariadb-10.1.9/bin/mysql_config’; use ‘nix-env --set-flag priority NUMBER PKGNAME’ to change the priority of one of the conflicting packages
builder for ‘/nix/store/vv3akfnfbvbqym1p50iind80l5q2wfd0-user-environment.drv’ failed with exit code 255
error: build of ‘/nix/store/vv3akfnfbvbqym1p50iind80l5q2wfd0-user-environment.drv’ failed

@vcunat
Copy link
Member

vcunat commented Mar 6, 2016

NixOS/nix#815 will give us a nice tool to specify that we only want mariadb.out when installing into a user env.

@HittingSmoke
Copy link

Is there still no fix for this aside from forking the config? Trying to get Nix setup to handle my web servers.

@nicholasknight
Copy link

I started playing with Nix and quickly ran into this on OS X. :(

Is this heavily dependent on internal development work in Nix, or is there something I, as someone not familiar with the internals, can do to move it forward?

If the answer is "take over MariaDB maintenance in nixpkgs because the current maintainer(s) lack time", that's something I'm willing to try. I just really don't want to maintain a separate fork and make all our engineers use it for an indeterminate period of time.

@davidak
Copy link
Member

davidak commented Apr 28, 2016

@nicholasknight in general, you can fix issues and create pull requests.

but this is not a build problem. it's a collision of two outputs. i think you need deep understanding of how nix works to fix this.

@zimbatm
Copy link
Member

zimbatm commented May 15, 2016

how hard would it be to wrap one of the outputs with lib.lowPrio ?

@vcunat
Copy link
Member

vcunat commented May 16, 2016

The problem is that nix installs all outputs by default. That is changeable with recent nix, after NixOS/nix#815.

@domenkozar
Copy link
Member

@vcunat do we have a workaround for this except for reverting multiple outputs?

@vcunat
Copy link
Member

vcunat commented Jun 2, 2016

nix-env -f . -iA mariadb works for me now. I think it's because of NixOS/nix#815.

Note: this problem was there long before merging the closure-size branch.

@vcunat vcunat closed this as completed Jun 2, 2016
@vcunat
Copy link
Member

vcunat commented Jun 2, 2016

Note: it "works" because now only .out is installed and not .lib. If you forced installing both, you would run into this problem again, but I can't see why someone might want both outputs in their user env.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants