Thread: Moving/Using Postgres Binaries on multiple machines

Moving/Using Postgres Binaries on multiple machines

From
Francis Reed
Date:
If I want to create a postgres database on multiple machines, is the
practice of tarring or zipping up binaries compiled on one machine and
untarring them on another, and using the binaries (initdb etc) acceptable?.
This removes the need for having a compiler and environment on the target
machine, or is it necessary always to have such an environment on any
machine you intend to use postgres on? Postgres seems to have enough
environment options to allow this to work, overriding the original library
locations and paths etc from the original machine on which postgres was
compiled.

Does anyone see a problem with this approach?

Thanks!

Francis

Re: Moving/Using Postgres Binaries on multiple machines

From
Richard Huxton
Date:
Francis Reed wrote:
> If I want to create a postgres database on multiple machines, is the
> practice of tarring or zipping up binaries compiled on one machine and
> untarring them on another, and using the binaries (initdb etc) acceptable?.
> This removes the need for having a compiler and environment on the target
> machine, or is it necessary always to have such an environment on any
> machine you intend to use postgres on? Postgres seems to have enough
> environment options to allow this to work, overriding the original library
> locations and paths etc from the original machine on which postgres was
> compiled.
>
> Does anyone see a problem with this approach?

Possibly hundreds. You clearly can't move from Sun/SPARC to BSD/x86 to
Linux/PPC. What platform are you interested in and why isn't there a
package manager for it?

--
   Richard Huxton
   Archonet Ltd

Re: Moving/Using Postgres Binaries on multiple machines

From
Martijn van Oosterhout
Date:
Sure, this is what Linux distributers do. They compile postgresql into
a binary package which is installed on the user's machine.

It works as long as the environments are reasonably compatable, all
have readline, similar libc, etc.

Hope this helps,

On Wed, Nov 24, 2004 at 12:30:28PM -0000, Francis Reed wrote:
> If I want to create a postgres database on multiple machines, is the
> practice of tarring or zipping up binaries compiled on one machine and
> untarring them on another, and using the binaries (initdb etc) acceptable?.
> This removes the need for having a compiler and environment on the target
> machine, or is it necessary always to have such an environment on any
> machine you intend to use postgres on? Postgres seems to have enough
> environment options to allow this to work, overriding the original library
> locations and paths etc from the original machine on which postgres was
> compiled.
>
> Does anyone see a problem with this approach?
>
> Thanks!
>
> Francis
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Attachment

Re: Moving/Using Postgres Binaries on multiple machines

From
Francis Reed
Date:
That's what we had hoped.

We tested the principle with postgres 7.4.6 but found a what we believe is a
compile time dependancy in create_conversion.sql where $libdir is not being
resolved properly during the initdb process on the second machine. The usual
environment variables don't seem to help (LD_LIBRARY_PATH; PATH; PGLIB etc).
Anyone come across that?

Thx

-----Original Message-----
From: Martijn van Oosterhout [mailto:kleptog@svana.org]
Sent: 24 November 2004 13:33
To: Francis Reed
Cc: 'pgsql-general@postgresql.org'
Subject: Re: [GENERAL] Moving/Using Postgres Binaries on multiple
machines


Sure, this is what Linux distributers do. They compile postgresql into
a binary package which is installed on the user's machine.

It works as long as the environments are reasonably compatable, all
have readline, similar libc, etc.

Hope this helps,

On Wed, Nov 24, 2004 at 12:30:28PM -0000, Francis Reed wrote:
> If I want to create a postgres database on multiple machines, is the
> practice of tarring or zipping up binaries compiled on one machine and
> untarring them on another, and using the binaries (initdb etc)
acceptable?.
> This removes the need for having a compiler and environment on the target
> machine, or is it necessary always to have such an environment on any
> machine you intend to use postgres on? Postgres seems to have enough
> environment options to allow this to work, overriding the original library
> locations and paths etc from the original machine on which postgres was
> compiled.
>
> Does anyone see a problem with this approach?
>
> Thanks!
>
> Francis
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Re: Moving/Using Postgres Binaries on multiple machines

From
Doug McNaught
Date:
Francis Reed <freed@iel.ie> writes:

> If I want to create a postgres database on multiple machines, is the
> practice of tarring or zipping up binaries compiled on one machine and
> untarring them on another, and using the binaries (initdb etc) acceptable?.
> This removes the need for having a compiler and environment on the target
> machine, or is it necessary always to have such an environment on any
> machine you intend to use postgres on? Postgres seems to have enough
> environment options to allow this to work, overriding the original library
> locations and paths etc from the original machine on which postgres was
> compiled.
>
> Does anyone see a problem with this approach?

I've had no problems doing this, though I generally standardize the
install location across multiple machines.

-Doug

Re: Moving/Using Postgres Binaries on multiple machines

From
Richard Huxton
Date:
Francis Reed wrote:
> Hi Richard, Sun/Sparc is the platform of choice in our case. We tested the
> principle with postgres 7.4.6 but found a what we believe is a compile time
> dependancy in create_conversion.sql where $libdir is not being resolved
> properly during the intidb process. The usual environment variables don't
> seem to help (LD_LIBRARY_PATH; PATH; PGLIB etc). Its not clear whether the
> concept of binary distribution is not supported, hence my general question.

Sounds like it should be fine, for your situation*. It could be there is
a glitch in create_conversion.sql, especially if it is something that
won't show if you compile on the machine you want to run on. You might
want to file a bug on it. I'm afraid I don't have a copy of the 7.4.6
tarball to hand.

It might also be worth checking 8.0beta to see if it's fixed there - I
know some relocation changes were made there (because of the Windows
port iirc).

Bit puzzled there isn't some standard binary package already built for
various flavours of Sun box though.

* of course, assuming you're on the same OS version with compatible
libraries etc etc etc.

PS - cc the list and the sender when you reply, it's the convention
round here (though not on most lists I'll grant you)
--
   Richard Huxton
   Archonet Ltd

Re: Moving/Using Postgres Binaries on multiple machines

From
Peter Eisentraut
Date:
Francis Reed wrote:
> We tested the principle with postgres 7.4.6 but found a what we
> believe is a compile time dependancy in create_conversion.sql where
> $libdir is not being resolved properly during the initdb process on
> the second machine. The usual environment variables don't seem to
> help (LD_LIBRARY_PATH; PATH; PGLIB etc). Anyone come across that?

Moving the installation to a different path is not supported for
permanent use before 8.0.  You better try to install in the same
directory layout on all machines where you want to deploy.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

Re: Moving/Using Postgres Binaries on multiple machines

From
"Joshua D. Drake"
Date:
Peter Eisentraut wrote:

>Francis Reed wrote:
>
>
>>We tested the principle with postgres 7.4.6 but found a what we
>>believe is a compile time dependancy in create_conversion.sql where
>>$libdir is not being resolved properly during the initdb process on
>>the second machine. The usual environment variables don't seem to
>>help (LD_LIBRARY_PATH; PATH; PGLIB etc). Anyone come across that?
>>
>>
>
>Moving the installation to a different path is not supported for
>permanent use before 8.0.  You better try to install in the same
>directory layout on all machines where you want to deploy.
>
>
You can also use links, which is what we do. Mammoth Reokicator
automaticaly install in /usr/local/pgsql but we often put it
in /opt and we just link /usr/local/pgsql back.

Sincerely,

Joshua D. Drake







--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL


Attachment

Re: Moving/Using Postgres Binaries on multiple machines

From
Tom Lane
Date:
Francis Reed <freed@iel.ie> writes:
> We tested the principle with postgres 7.4.6 but found a what we believe is a
> compile time dependancy in create_conversion.sql where $libdir is not being
> resolved properly during the initdb process on the second machine.

We only started supporting the idea of a relocatable installation for
8.0; in prior versions you can't just arbitrarily install the files
to a different path than what you said at configure time.  Even in 8.0
the files have to remain in the same relative locations.

            regards, tom lane