-
-
Notifications
You must be signed in to change notification settings - Fork 281
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
Too many libgfortrans #263
Comments
OK -- turns out there IS a libgfortran package! But does gcc still install/remove it's own? If this has all been fixed, feel free to close. |
TL;DR this could be better, but will require substantial improvements in Reso: To "fix" the issue just reinstall ...and into the weeds.
Was it not possible to just deactivate that environment?
Correct.
It is. (though it seems you already figured this out)
Generally they do depend on
👍 I think I tried this before and it became a bit painful, but it has been awhile. May try it again as this would make our lives much easier when building multilingual packages. I think it should be doable.
This is a bit complicated. So what we really want would be a build process that builds Maybe something like issue ( conda/conda-build#1338 ) is relevant to this problem. Haven't followed it that closely though so can't give too much more guidance. It might be possible to do some really hacky splitting of our own. Not sure how well that would go or whether people would like it. Also there is this question of how to version all of the pieces.
That's a good idea and probably should be suggested. However, there is more than meets the eye. What if two different files share the same name and location? How then do we install them? Also who "wins" the filename? This has come up before, but unfortunately the refs aren't coming to mind ATM. |
I"ve got the fix working -- and I think in this case, the real problem is that the root environment is fully available when you are in a conda environment -- conda issue -- I brought it up on the list. As for shared files, conda could do a checksum to make sure files with the same name are really the same -- and it probably should otherwise you can fairly easily break a package by overwriting some key part. It could even be pedantic and not allow a package to install a file that's already there. If that was the case, how would we deal with libgfortran?
Anyway, that's my take. AS for splitting up gcc: Couldn't a really kludgy way be to have a recipe that builds and installs the whole mess, then goes in and deletes everything you don't want? Ugly and expensive, but do-able. -CHB |
I think we are down to one Are there other concerns here? |
My situation:
I had a environment up and running, all was well
I needed fortran
I installed the gcc package to get gfortran.
all was well.
BUT ......
It turns out that that gave me a gcc as well, that kinda contaminated the rest of my system, so I had to remove it.
But now numpy is broken:
So I am making an educated guess that numpy depends on openblas, which requires libgfortran, and apparently installs it itself.
gcc also install the same lib. -- so when I remove gcc, I break gfortran.
Ideally, conda would do some kind of reference counting or something, so that it wouldn't remove a file that another package is also using -- but that's a major feature that may never come.
So: shouldn't libgfortran (and similar) be a package by itself, and then gcc and openblas, and who knows what can depend on it?
Also nice for gfortran to be separate from gcc as well...
The text was updated successfully, but these errors were encountered: