-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Conda does not use hard links to root packages #4881
Comments
In Ubuntu, is the root environment created by the same user who is trying to create the flowers environment? |
Yes both are the same users (me) and anaconda is installed in my home directory. Here is the full output
I've decided to let it run once. Now I can
and then again
The following output gets created
So the previously downloaded packages must get cached somewhere. The question is why does it seem like the root packages are not present in this cache? The same thing happened when running the first time
I thought maybe it just fetched a newer numpy package, but I have updated anaconda in my root environment and when I created the first new environment with anaconda in it it also downloaded every package. |
Could you please share the output for |
Sure.
|
Here some output that shows, that the inode numbers differ for the same library in the root and another environment -> no hard links :(
|
@MarvinGee That is because
|
Okay. Could you explain to me what is supposed to get hard linked between the environments (with the same version of a library of course) or where I can inform myself, please? Do they only use a common package cache and on installation copy/extract the package from the cache in the new environment as a completely new file and therefore inode, or is conda supposed to look if the package is already installed in another existing environment and create a hard link to the appropiate inode? |
IIUC, conda first downloads the package tarball from whichever channel you ask it to download from and it is kept in the directory
Now, this directory will have all the tarballs and their extracted contents. Each package tarball has the file Now, looking at an example (on installation of the conda package: curl): The files to be installed into the environment are:
The files which need to be patched are:
If conda succeeds in creating hard links, then set(all files ∈
The files which are present in
Proof of patch:
|
Hi there, thank you for your contribution to Conda! This issue has been automatically locked since it has not had recent activity after it was closed. Please open a new issue if needed. |
After installing the anaconda python 3.6 version I run
and it starts to download packages from the Internet. I abort, because I am on a metered connection. Shouldn't conda create a hard link because numpy is already available in the root environment?
When i run the following command
it downloads all the required packages, which is expected. Then I run
and it does not download everything again. Why doesn't this work with the packages present in the root environment?
This happens on my Ubuntu 16.10 and my Windows 7 machine.
The text was updated successfully, but these errors were encountered: