Обсуждение: upgrade question: running different versions on one host

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

upgrade question: running different versions on one host

От
Ben Kim
Дата:
Hi,

I compiled 7.3.4 on a host already running 7.2.1, with
"--prefix=/different/directory --pgport=5833 ..." option.

According to the installation instructions on
developer.postgresql.org/docs/postgres/install-procedure.html, I thought I
only have to give a different directory as the --prefix, then
--exec-prefix, --bindir, --datadir, etc. will automatically be made
different.

But surprisingly, when I did "make install", the postgres 7.2.1's
"postgres" and "ecpg" binary was overwritten. Also, when I started the
server, other files in 7.2.1 directory were overwritten, or changed
timestamp. So I had to restore the old binary. The new version worked
fine.

I intentionally used the same user name for both versions, only used a
different directory. The two installations share the same PGDATA
environment variable.

I suspect that $PGDATA is what caused the mixup, but don't know for sure
in what context it would be used. I would understand that if I did not
give -D ... option during the server startup PGDATA might be used for that
purpose, but I don't understand why make install would replace my old
binary.

Is there something missing in my understanding? Or, is there a document
somewhere detailing cautions and instructions on how to run two versions
in parallel, avoiding a mixup?


Thanks.
Ben



Re: upgrade question: running different versions on one host

От
Tom Lane
Дата:
Ben Kim <bkim@edsun.coe.tamu.edu> writes:
> I compiled 7.3.4 on a host already running 7.2.1, with
> "--prefix=/different/directory --pgport=5833 ..." option.

> According to the installation instructions on
> developer.postgresql.org/docs/postgres/install-procedure.html, I thought I
> only have to give a different directory as the --prefix, then
> --exec-prefix, --bindir, --datadir, etc. will automatically be made
> different.

> But surprisingly, when I did "make install", the postgres 7.2.1's
> "postgres" and "ecpg" binary was overwritten.

What were the paths in question, exactly?  I do this constantly (I have
four or five different versions of PG on my devel machines) and I've
never had a problem.

> I intentionally used the same user name for both versions, only used a
> different directory. The two installations share the same PGDATA
> environment variable.

You *can't* have two installations share a PGDATA directory.  The newer
version should have refused to start because $PGDATA/PG_VERSION would
have looked wrong to it.

            regards, tom lane