Comments (6)
Hello,
To verify that it is the fault of low space on /tmp I replaced the line 418 with
with tempfile.TemporaryDirectory( dir="/media/myfilesysten......" ) as download_dir:
With this change it worked, so to face my issue, it would be sufficient to make the temp folder configurable.
But what is the point of the tmp folder, why is the download not directly written to the target folder?
from conda-mirror.
With this change it worked, so to face my issue, it would be sufficient to make the temp folder configurable.
Great, I'll do that in the next week or so
But what is the point of the tmp folder, why is the download not directly written to the target folder?
I run conda-mirror
as an hourly cron job. It felt easier to download everything to a staging directory and then validate all the packages in that staging directory, removing packages that do not pass validation (size/md5/sha256). Only once packages have been downloaded are they promoted from the staging directory to the directory where they are being served from. I honestly hadn't considered that /tmp
might not have enough space to do a full channel mirror. This issue will only be hit the first time you mirror the channel since that's going to require >10GB of space. Additionally, if I directly download to the directory where the packages are being served from, I occasionally hit the issue where conda install <package>
would be grabbing a partially downloaded package and fail. Though that issue could also be avoided by downloading the file to a temp file in that directory and then moving it to its actual package name <package_version_buildnumber.tar.bz2>.
In any event, the problem should be solved by adding a command line argument that will allow you to specify where the transient download directory should be.
from conda-mirror.
Thanks for the explanation, that makes sense
from conda-mirror.
@MWigger I'd also welcome a PR from you implementing this feature 😄 I'll get to it eventually, but it's not a priority for me at the moment
from conda-mirror.
Being a co-worker of @MWigger I have applied some changes to fix this issue. Find the implementation in my current pull request. It's based on adding a new parameter for specifying the temporary directory to be used, with having a suitable default set and using this setting as the dir parameter of tempfile.TemporaryDirectory to use the setting. Tests pass successfully and the implementation solves our current problem.
from conda-mirror.
Closed by #21. Thanks for the report @MWigger and thanks for the implementation @jneines ! New release is available on pypi that has these changes (0.6.0)
from conda-mirror.
Related Issues (20)
- [BUG] Problematic implementation of the mirror
- [Optimization] Shuffle package validation order before validating
- keep old packages HOT 12
- Validation errors caused by incomplete tar file
- Question about Incremental Syncing HOT 5
- SSL Issue when creating mirror HOT 1
- sync only new packages HOT 8
- Specifying multiple platforms HOT 3
- How to catch stalling HTTP connections? HOT 1
- New release/version in pypi/conda-forge? HOT 3
- Release 0.8.0
- Cannot use conda-mirror behind proxy HOT 1
- Allow to filter packages based on the target Python version
- Fetching 'noarch' platform.
- Respect previous downloaded packages and generated `repodata.json`.
- Fetching necessary dependencies for the whitelist. HOT 1
- NOTYPE error of 'package'
- Issues with sha256 checksums HOT 2
- Support for .conda package mirroring HOT 1
- support https://anaconda.org/rapidsai
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from conda-mirror.