Обсуждение: Installing different PostgreSQL versions in parallel

Поиск
Список
Период
Сортировка

Installing different PostgreSQL versions in parallel

От
Rafael Ostertag
Дата:
Hi list

I'm in the course of creating PostgreSQL packages for Solaris. One of the
requirement is to install different PostgreSQL versions in parallel, the other
is to have all the libraries stuffed in one place.

Now, if I install, let's say, pgsql 8.3 and 8.4 in parallel and all libraries
go to /opt/csw/lib, I end up with:

$ ls -l /opt/csw/lib/libpq*
lrwxrwxrwx   1 root     root      libpq.so -> libpq.so.5.2
lrwxrwxrwx   1 root     root      libpq.so.5 -> libpq.so.5.2
-rwxr-xr-x   1 root     bin       libpq.so.5.1
-rwxr-xr-x   1 root     bin       libpq.so.5.2

Which in turn leads to 8.3 binaries loading libpq.so.5.2, effectively mixing
8.3 binaries with 8.4 libraries.

Finally, the question: How bad is it having a pgsql binary version X.Y using a
library X.Z?

Thanks for your help.

Cheers
Rafael

Re: Installing different PostgreSQL versions in parallel

От
raghu ram
Дата:


On Tue, Dec 6, 2011 at 12:13 AM, Rafael Ostertag <raos@opencsw.org> wrote:
Hi list

I'm in the course of creating PostgreSQL packages for Solaris. One of the
requirement is to install different PostgreSQL versions in parallel, the other
is to have all the libraries stuffed in one place.

Now, if I install, let's say, pgsql 8.3 and 8.4 in parallel and all libraries
go to /opt/csw/lib, I end up with:

$ ls -l /opt/csw/lib/libpq*
lrwxrwxrwx   1 root     root      libpq.so -> libpq.so.5.2
lrwxrwxrwx   1 root     root      libpq.so.5 -> libpq.so.5.2
-rwxr-xr-x   1 root     bin       libpq.so.5.1
-rwxr-xr-x   1 root     bin       libpq.so.5.2

Which in turn leads to 8.3 binaries loading libpq.so.5.2, effectively mixing
8.3 binaries with 8.4 libraries.

Finally, the question: How bad is it having a pgsql binary version X.Y using a
library X.Z?


To overcome this issues,use "--prefix=PREFIX " option while running "configure",so that PostgreSQL 8.3 version related directories [i.e bin,include,lib,share] will store in preferred PREFIX location.

Ex: ./configure --prefix=/usr/local/pgsql83
      ./configure --prefix=/usr/local/pgsql84

Once completion of PostgreSQL installation,you will see "bin,include,lib,share" directories are created under the /usr/local/pgsql83 location.

--Raghu Ram



Re: Installing different PostgreSQL versions in parallel

От
John R Pierce
Дата:
On 12/06/11 8:30 PM, raghu ram wrote:
>
>     I'm in the course of creating PostgreSQL packages for Solaris. One
>     of the
>     requirement is to install different PostgreSQL versions in
>     parallel, the other
>     is to have all the libraries stuffed in one place.
>
>     Now, if I install, let's say, pgsql 8.3 and 8.4 in parallel and
>     all libraries
>     go to /opt/csw/lib, I end up with:
>
>     $ ls -l /opt/csw/lib/libpq*
>     lrwxrwxrwx   1 root     root      libpq.so -> libpq.so.5.2
>     lrwxrwxrwx   1 root     root      libpq.so.5 -> libpq.so.5.2
>     -rwxr-xr-x   1 root     bin       libpq.so.5.1
>     -rwxr-xr-x   1 root     bin       libpq.so.5.2
>
>     Which in turn leads to 8.3 binaries loading libpq.so.5.2,
>     effectively mixing
>     8.3 binaries with 8.4 libraries.
>
>     Finally, the question: How bad is it having a pgsql binary version
>     X.Y using a
>     library X.Z?
>
>
> To overcome this issues,use "--prefix=PREFIX " option while running
> "configure",so that PostgreSQL 8.3 version related directories [i.e
> bin,include,lib,share] will store in preferred PREFIX location.
>
> Ex: ./configure --prefix=/usr/local/pgsql83
>       ./configure --prefix=/usr/local/pgsql84
>
> Once completion of PostgreSQL installation,you will see
> "bin,include,lib,share" directories are created under the
> /usr/local/pgsql83 location.
>

its apparent to me from the /opt/csw prefix he mentions that he's
building PostgreSQL for the Blastwave/OpenCSW Solaris software
repositories, and HAS to put the libs in /opt/csw/lib due to project
policies.



--
john r pierce                            N 37, W 122
santa cruz ca                         mid-left coast


Re: Installing different PostgreSQL versions in parallel

От
Rafael Ostertag
Дата:
Hi John
On Tue, Dec 06, 2011 at 08:35:58PM -0800, John R Pierce wrote:
> On 12/06/11 8:30 PM, raghu ram wrote:
> >
> >    I'm in the course of creating PostgreSQL packages for Solaris. One
> >    of the
> >    requirement is to install different PostgreSQL versions in
> >    parallel, the other
> >    is to have all the libraries stuffed in one place.
> >
> >    Now, if I install, let's say, pgsql 8.3 and 8.4 in parallel and
> >    all libraries
> >    go to /opt/csw/lib, I end up with:
> >
> >    $ ls -l /opt/csw/lib/libpq*
> >    lrwxrwxrwx   1 root     root      libpq.so -> libpq.so.5.2
> >    lrwxrwxrwx   1 root     root      libpq.so.5 -> libpq.so.5.2
> >    -rwxr-xr-x   1 root     bin       libpq.so.5.1
> >    -rwxr-xr-x   1 root     bin       libpq.so.5.2
> >
> >    Which in turn leads to 8.3 binaries loading libpq.so.5.2,
> >    effectively mixing
> >    8.3 binaries with 8.4 libraries.
> >
> >    Finally, the question: How bad is it having a pgsql binary version
> >    X.Y using a
> >    library X.Z?
> >
> >
> >To overcome this issues,use "--prefix=PREFIX " option while
> >running "configure",so that PostgreSQL 8.3 version related
> >directories [i.e bin,include,lib,share] will store in preferred
> >PREFIX location.
> >
> >Ex: ./configure --prefix=/usr/local/pgsql83
> >      ./configure --prefix=/usr/local/pgsql84
> >
> >Once completion of PostgreSQL installation,you will see
> >"bin,include,lib,share" directories are created under the
> >/usr/local/pgsql83 location.
> >
>
> its apparent to me from the /opt/csw prefix he mentions that he's
> building PostgreSQL for the Blastwave/OpenCSW Solaris software
> repositories, and HAS to put the libs in /opt/csw/lib due to project
> policies.
>

Exactly. Thanks for clarification on this.

--Rafael

Re: Installing different PostgreSQL versions in parallel

От
John R Pierce
Дата:
On 12/06/11 10:37 PM, Rafael Ostertag wrote:
>> >
>> >  its apparent to me from the /opt/csw prefix he mentions that he's
>> >  building PostgreSQL for the Blastwave/OpenCSW Solaris software
>> >  repositories, and HAS to put the libs in /opt/csw/lib due to project
>> >  policies.
>> >
> Exactly. Thanks for clarification on this.

afraid I don't have much int he way of suggestions for you to achieve
that goal.    I install my Solaris postgres builds into

     /opt/(mygroup)/pgsqlXX/

and their lib and bins and everything are in that path, then when I
launch them, I expressly put the data somewhere like /u02/pgsqlXX/data


--
john r pierce                            N 37, W 122
santa cruz ca                         mid-left coast


Re: Installing different PostgreSQL versions in parallel

От
Rafael Ostertag
Дата:
Hi John

On Tue, Dec 06, 2011 at 10:55:40PM -0800, John R Pierce wrote:
> afraid I don't have much int he way of suggestions for you to
> achieve that goal.    I install my Solaris postgres builds into
>
>     /opt/(mygroup)/pgsqlXX/
>
> and their lib and bins and everything are in that path, then when I
> launch them, I expressly put the data somewhere like
> /u02/pgsqlXX/data

Thanks a lot for your time and effort.

One solution for my problem would be adjusting the SONAME of the libraries. At
least for 8.X libraries, it is set to 'lib<name>.so.M'. I could adjust the
SONAME to include the minor version as well, like 'lib<name>.so.M.N', which
would allow me to have libraries of different pgsql versions in /opt/csw/lib
and make sure the binaries load the libraries matching their version.

However, there is a concern in the OpenCSW community against this approach.
Therefore, I would like to know what pgsql thinks about mixing binaries and
libraries of different pgsql versions. Maybe a developer could shed some light
on this issue?

Regards
Rafael