Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'run-time': 0.05; '21,': 0.07; 'dev': 0.07; 'only,': 0.07; 'referring': 0.07; 'python': 0.09; 'filesystem': 0.09; 'subject:dependencies': 0.09; 'wrong,': 0.09; 'exercise': 0.13; '(the': 0.15; '(but': 0.15; 'dec': 0.15; 'server,': 0.15; 'client,': 0.16; 'compiler,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hint': 0.16; 'least,': 0.16; 'not;': 0.16; 'runtimes': 0.16; 'wrote:': 0.17; 'found,': 0.17; 'instance,': 0.17; '(in': 0.18; 'versions': 0.20; 'libraries': 0.22; 'of.': 0.22; 'setup,': 0.22; 'work,': 0.22; 'this:': 0.23; 'tools,': 0.23; "haven't": 0.23; "i've": 0.23; 'second': 0.24; 'linux': 0.24; 'header:In-Reply- To:1': 0.25; 'am,': 0.27; 'separate': 0.27; '(as': 0.27; 'easiest': 0.27; 'set.': 0.27; 'message-id:@mail.gmail.com': 0.27; "doesn't": 0.28; 'correct': 0.28; 'build,': 0.29; 'case,': 0.29; 'probably': 0.29; "i'm": 0.29; 'install': 0.29; 'maybe': 0.29; 'fri,': 0.30; 'file': 0.32; 'running': 0.32; 'environment,': 0.33; 'to:addr:python-list': 0.33; 'likely': 0.33; 'another': 0.33; 'version': 0.34; 'received:google.com': 0.34; 'architecture': 0.34; 'server': 0.35; 'list': 0.35; 'said,': 0.35; 'received:209.85.220': 0.35; 'similar': 0.35; 'received:209.85': 0.35; 'but': 0.36; "didn't": 0.36; 'should': 0.36; 'uses': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'copying': 0.38; 'files': 0.38; 'planning': 0.38; 'some': 0.38; 'sure': 0.38; 'description': 0.39; 'to:addr:python.org': 0.39; 'step': 0.39; 'build': 0.39; 'header:Received:5': 0.40; 'your': 0.60; 'skip:u 10': 0.60; 'you.': 0.61; 'first': 0.61; 'latest': 0.61; 'kind': 0.61; "you'll": 0.62; 'needing': 0.62; 'repeat': 0.62; 'more': 0.63; 'grab': 0.64; 'subject:Build': 0.65; 'building,': 0.71; 'etc,': 0.84; 'grabbing': 0.84; 'iterative': 0.84; 'rinse': 0.84; 'viable': 0.84; '"apt-get': 0.91; 'silver': 0.91; 'clients,': 0.95 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=tDPouQhkv+7B6/HPf7SFFlhe5INBj9IBYsYnhREBJSw=; b=uL7B30tRnt2l80j8SHHng2zWCGEJs9GAI6q76G6dtlGMYWX0gZjf3KecB2alBU36wu giCcCA+IH8tS4bFXMZdDEwln67XVz/dWS6xSpltWHVtcZ1vNAzfECWpI6yP1a8kfJTam pXc1s49xv+50/v01GyWpyoeeUICmtw3H41Tshwj9FZ0j/e854qbEbnhgyzN1Kp32qno4 F4ItmOdGqJTRfew2xLM7/EcNUzoK2pwBgYFni0FNGKNJda6SiSQPyeSBFTvc/3E+8zeP q3YMd/gAec8q5qh+XfgeQPAPdY0O4Lcjv6eyuXqCXGoY53BSc+KNpRe+Q5FLacfBeD5t yp6Q== MIME-Version: 1.0 In-Reply-To: References: Date: Sat, 22 Dec 2012 03:03:10 +1100 Subject: Re: Build and runtime dependencies From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 39 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1356105793 news.xs4all.nl 6895 [2001:888:2000:d::a6]:47684 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:35302 On Fri, Dec 21, 2012 at 9:11 AM, Jack Silver wrote: > 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). Correct me if I'm wrong, but my understanding of your description is this: System #1 ("server"): Full development environment, C compiler, etc, etc. System #2 ("client"): Run-time only, uses the Python built on System #1. System #3->N: Identical to System 2. This is definitely a viable setup, but you need to make sure the server and clients are running "broadly similar" systems - for instance, they should both be the same architecture (eg amd64), and for convenience, probably should be similar Linux kernel versions and file system layouts, so you don't have to worry about pathing messes and so on. On the server, you'll need all the development tools, all the dev packages for your libraries, and so on (as Hans said, Debian has packages like libbz2-1.0 and libbz2-dev); on the clients, you need only the run-times. The easiest way, I've found, is an iterative process of build, see what didn't work, grab another package (in my case, "apt-get install"), rinse and repeat; in this case, you'll want to do this exercise on the server, grabbing -dev packages, and then repeat it on the client, referring to your list of libraries as a "will likely need this" hint set. (But you might not; chances are you have some of the runtimes already.) One thing to beware of. You say you're planning to use a shared filesystem; that may cause some hassles when you come to do a recompile. I would recommend, at the very least, running some kind of separate "install" step after building, copying the necessary files onto the shared filesystem - that way, if you upgrade to a new version of Python and it doesn't build for some reason (back to needing more packages, perhaps, or maybe you like to live on the edge and you picked up the very latest and it happened to not work), you haven't toasted all your clients. But this might not be an issue for you. ChrisA