6

I have a set of networked computers that do not have access to the internet. On each of these computers, I need to install the Anaconda Python distribution. This is currently done by manually installing on each machine via a shared folder on a server.

However, this leaves the machines statically set to the version of Anaconda installed and not able to update using the conda update commands. This also means that environments cannot be created using the conda create command.

I would like to setup a centralized server where we can manually maintain the Anaconda Python versions (i.e. python 2.7.x and python 3.x). Users on the other machines would then point to this update server and would be able to update and even create new environments simply by using the conda update or conda create commands.

How do I set this up?

James Mertz
  • 26,529

1 Answers1

7

Create a HTTP server and copy all the content from http://repo.continuum.io/pkgs/. Point to this new server with a .condarc file.

Choose a web server, and put the files referred to in the public repository (above) in there, with identical directory structure (but you don't need the /pkgs/free/ part). Use the respository file (eg. http://repo.continuum.io/pkgs/free/linux-64/repodata.json) to discover all the files, GET them and put onto your internal webserver.

Then, create a .condarc file with this template, supplying your internal web server like:

channels:
  - http://your.web.server/

This tells conda to get packages from your local repo, rather than the public Continuum one.

Once you've done this, running the command conda install anaconda will pull down the latest release of the Anaconda platform, from your internal repository. I have done the above, and can verify it works seamlessly. One word of caution: make sure you mirror the entire repository - don't try to optimise the packages that you include!

Fil
  • 171