Build and runtime dependencies

Hans Mulder hansmu at xs4all.nl
Thu Dec 20 20:42:32 EST 2012


On 20/12/12 23:11:45, Jack Silver wrote:
> I have two Linux From Scratch machine.
> 
> On the first one (the server), I want to build install python 3.3.0 in a
> shared filesystem and access it from the second one (the client). These
> machines are fairly minimal in term of the number of software installed.
> I just want to install python on this filesystem and anything else.
> 
> I would like to know what are the build and runtime dependencies that
> are needed on both machine.
> 
> My understanding is that the core CPython interpreter only needs a C
> compiler to be built.

You need the whole C toolchain: compiler, linker, make, etc.

> For the extension modules, I think that only the
> development headers of some additional libraries are needed on the
> server machine. Hence, I do not need to install all those libraries on
> the client machine. Right ?

Wrong.

Those libraries are typically shared libraries (i.e. .so files). You'll
have to install the shared libraries on both the server and the clients.

The development headers are used only at build time, so they are only
needed on the server.

I don't know the package naming conventions on your distro, but on
Debian the packages you only need on the server tend to contain the
word "dev".  For example, 'sqlite' would be installed on the client
and bots 'sqlite' and 'sqlite-dev' on the server.

> I would like to build as much module I can, so I have a complete python
> installation. Here is the list of dependecies I think I need to install
> on the server machine :
> 
> expat
> bzip2
> gdbm
> openssl
> libffi
> zlib
> tk
> sqlite
> valgrind
> bluez
> 
> anything ?

The source comes with a script named "configure" that tries to find
the headers it needs to build as many extensions modules as possible.

When the script is done, it prints a list of modules it could not
find the headers for.  When this list contains modules you'd like
to build, that means that you're still missing some depencency.

Keep in mind that some modules cannot be built on Linux (for example,
the MacOS module can only be built on MacOS Classic), so you shouldn't
expect to be able to build everything.

> Is there anything I need to install on the client too ?

Yes, the .so files, the actual shared libraries used by these
extensions.


Hope this helps,

-- HansM




More information about the Python-list mailing list