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,224
  • 41
  • 111
  • 163
  • I'm not quite sure if I understand what you exactly want to do. So you want to have a repository of packages (say, a `yum repo`) on a central server and be able to update that package from that server? What does this have to do with the `conda update` or `conda create` commands? – nKn Sep 29 '15 at 18:36
  • @nKn when I say repository in this sense, I mean a centralized repository of conda installations and python packages. This would enable the clients to `conda update` or `conda create` but instead of looking for the continuum servers, it would pull from the local server. – James Mertz Sep 29 '15 at 18:40
  • 1
    You can mirror repo.continuum.io (for your platform), serve it up, and add that as a channel on the local computers. – asmeurer Sep 29 '15 at 20:55
  • Another (paid) option is [Anaconda Server](https://www.continuum.io/content/anaconda-subscriptions). – asmeurer Sep 29 '15 at 20:56

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
  • 3