[Distutils] Download-only then build/install on no-net sandbox?

Beau Butler beau.butler at gmail.com
Mon Dec 3 04:26:10 CET 2007


Hi People I'm hoping someone can answer what I think is a quite simple
question,

In short:, how do I tell easy_install i just want it to download an
egg, then compile/install it later? I know how to download/compile,
then install later, but not the other way around?

A little background: My use case is i am doing up-to-date python (2.5)
& TG (1.0.3.2) stuff on a bunch of old platforms (RHEL4, etc that have
py2.3 at best), that are locked down and don't have net access of
their own, just SSH in.

I currently make a virtual-python-like sandbox environment with a
simple makefile that does, roughly:
On my dev machine:
* Gets Python, builds it
* Gets setuptools, python-setup.py-installs it
* Does easy_install -zmaxd . TurboGears etc.
* Packs all that into a single .tgz along with the makefile itself.

I then scp the tgz to the locked-down target box, untar it and run the
makefile again which:
* Builds Python and setuptools
* Does easy_install -f . TurboGears etc.

All this works quite nicely until i want to do things like have
psycopg2. Basically doing things the "zmaxd way" causes the download
and compile steps to occur on my dev machine, and the install on the
target machine, which then fails due to different Postgres libraries.

So my question is - is there an easy way to tell easy_install to just
download the source egg but not build it? So that I can then build it
on the target machine...?

(BTW: slightly ironically the PEAK page
http://peak.telecommunity.com/DevCenter/EasyInstall has this as a FAQ
- "If you have another machine of the same operating system and
library versions (or if the packages aren't platform-specific), you
can create the directory of eggs using a command like this" describing
the zmaxd method, but sadly it says nothing about what to do about
*different* OS versions...)

Many thanks in advance!

Beau Butler
Python And Linux Dude
Auckland, New Zealand




I have created a simple makefile for myself which does a two-step - it
makes a python2.5-with-setuptools sandbox on my dev machine


More information about the Distutils-SIG mailing list