Thread: Debian experimental packages of PostgreSQL 7.4beta4

Debian experimental packages of PostgreSQL 7.4beta4

From
Oliver Elphick
Date:
Debian packages of PostgreSQL 7.4beta4 are available in the experimental
section of the Debian archive.

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight, UK                             http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "He that covereth his sins shall not prosper; but whoso
      confesseth and forsaketh them shall have mercy."
                                         Proverbs 28:13


Redhat RPMs (Was: Debian experimental packages ofPostgreSQL 7.4beta4)

From
"Nigel J. Andrews"
Date:
On Fri, 10 Oct 2003, Oliver Elphick wrote:

> Debian packages of PostgreSQL 7.4beta4 are available in the experimental
> section of the Debian archive.

One thing I've been thinking/worrying about recently is the upgrade
process. Rest assured this isn't rehashing the pg_upgrade debate though.

What I'm wondering about is that I'm faced with a production box that is
installed with a Redhat system, that's run by someone else and they do things
'by the book'. That is, software comes in RPM form, possibly RPMS form, but no
way does it come in any other form since it's obviously not supported in that
case. Now, we're coming up to the time when 7.4 is released, should I go to the
extent of porting the db from 7.3 I'll be faced with the situation where the
production db has to be brought down to do the upgrade which even after testing
may fail in the process.  Factor into that that I'm sure the people admin-ing
the box probably will not do this during a quiet time, i.e. middle of the
night, I have a problem...unless the RPMs are relocatable.

I've not looked at many RPMs but I must say that the few I have have never been
relocatable. Can the postgresql RPMs not be made relocatable? At least in
that case I could run the two versions concurrently rather than the admins be
forced to shut 7.3 down, uninstall it, install 7.4, start it up and run the
upgrade/load scripts before reenabling the application.

If it were me I'd just use stow like I do on all my systems if only more
software wouldn't assume it knew where it was going to be installed before
configure and build, but that's a whole other gripe.


--
Nigel J. Andrews


Re: Redhat RPMs (Was: Debian experimental packages

From
Oliver Elphick
Date:
On Fri, 2003-10-10 at 22:08, Nigel J. Andrews wrote:
> On Fri, 10 Oct 2003, Oliver Elphick wrote:
>
> > Debian packages of PostgreSQL 7.4beta4 are available in the experimental
> > section of the Debian archive.
>
> One thing I've been thinking/worrying about recently is the upgrade
> process. Rest assured this isn't rehashing the pg_upgrade debate though.
>
> What I'm wondering about is that I'm faced with a production box that is
> installed with a Redhat system, that's run by someone else and they do things
> 'by the book'. That is, software comes in RPM form, possibly RPMS form, but no
> way does it come in any other form since it's obviously not supported in that
> case. Now, we're coming up to the time when 7.4 is released, should I go to the
> extent of porting the db from 7.3 I'll be faced with the situation where the
> production db has to be brought down to do the upgrade which even after testing
> may fail in the process.  Factor into that that I'm sure the people admin-ing
> the box probably will not do this during a quiet time, i.e. middle of the
> night, I have a problem...unless the RPMs are relocatable.
>
> I've not looked at many RPMs but I must say that the few I have have never been
> relocatable. Can the postgresql RPMs not be made relocatable? At least in
> that case I could run the two versions concurrently rather than the admins be
> forced to shut 7.3 down, uninstall it, install 7.4, start it up and run the
> upgrade/load scripts before reenabling the application.

Well, I can't speak for the RPM builders, but I have been thinking about
this issue in respect of the debs.

I am not happy about the current situation for Debian upgrading, which
seems to be pretty fragile.  There are a fair number of bug reports from
people for whom the upgrade has barfed in some way or other.  The
situation for RPMs is even worse, since the installation scripts are far
more rigidly constrained than are the Debian installation scripts.  Of
course, that's why Lamar and I would be so happy to see a working
pg_upgrade tool.  But there's no prospect of that in even the medium
term, as far as I can see.

Your suggestion of parallel installations is the solution I have been
considering.  If the new package could be installed alongside the old,
there would be no need to upgrade the data during installation and no
danger of data loss.

Another reason for considering this is for the benefit of people who
want to run multiple versions.  Perhaps they have an application which
is live and they want to keep that going while they update its code for
use with the new PostgreSQL; it will be much easier for them if the two
versions can be installed side by side as packages.  Other users may
have multiple database users, who want to use different software
versions.

For that to work, however, we need a mechanism for assigning a port to
each package and database and for determining which version of the
client software each user will get.  So that means that in each package,
psql must be renamed psql-7.3, psql-7.4 and so on.  Then psql becomes a
soft link to the default psql version.  Debian's alternatives system
(update-alternatives(8)) provides a convenient mechanism for making
those soft links if there is a single systemwide default, but not if
there are different users who want different versions.  I don't know if
Red Hat has anything similar.

At the same time, I would like to make the packages cope with multiple
database structures, which are also needed by ISPs and others who need
to charge users for space used.

Assuming multiple versions installed simultaneously, with multiple
data/base structures

DB struct
owner          PGDATA               Version           PGPORT

fred         /var/lib/pg/fred       7.3               5433
george       /var/lib/pg/george     7.4               5434
harry        /var/lib/pg/harry      7.4               5435

then the packages need to provide the means for each user to get the
right PGPORT and the appropriate client software to access that port.

I haven't got any further than this, but I wonder if this is something
that would be useful to the whole project and not just to the
distributions.  Any comments?

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight, UK                             http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "He that covereth his sins shall not prosper; but whoso
      confesseth and forsaketh them shall have mercy."
                                         Proverbs 28:13


Re: Redhat RPMs (Was: Debian experimental packages

From
Andrew Sullivan
Date:
On Fri, Oct 10, 2003 at 11:17:53PM +0100, Oliver Elphick wrote:
> I haven't got any further than this, but I wonder if this is something
> that would be useful to the whole project and not just to the
> distributions.  Any comments?

None except that this is more or less how we manage multiple
installations and back ends in our test and production environments.
It works pretty well.  I also know that Tom Lane uses something again
similar in order to support the apparently limitless different
permutations of installations he has available at the touch of '.
filename'.

A

--
----
Andrew Sullivan                         204-4141 Yonge Street
Afilias Canada                        Toronto, Ontario Canada
<andrew@libertyrms.info>                              M2P 2A8
                                         +1 416 646 3304 x110


Re: Redhat RPMs (Was: Debian experimental packages

From
Oliver Elphick
Date:
On Sun, 2003-10-12 at 00:28, Andrew Sullivan wrote:
> On Fri, Oct 10, 2003 at 11:17:53PM +0100, Oliver Elphick wrote:
> > I haven't got any further than this, but I wonder if this is something
> > that would be useful to the whole project and not just to the
> > distributions.  Any comments?
>
> None except that this is more or less how we manage multiple
> installations and back ends in our test and production environments.
> It works pretty well.  I also know that Tom Lane uses something again
> similar in order to support the apparently limitless different
> permutations of installations he has available at the touch of '.
> filename'.

I imagine a lot of people have such in-house set-ups.  The question is
whether the project itself should provide the structure to do it.

--
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight, UK                             http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "Blessed is the man who makes the LORD his trust,
      who does not look to the proud, to those who turn
      aside to false gods."            Psalms 40:4


Re: Redhat RPMs (Was: Debian experimental packages

From
Martijn van Oosterhout
Date:
On Sun, Oct 12, 2003 at 10:21:39AM +0100, Oliver Elphick wrote:
> I imagine a lot of people have such in-house set-ups.  The question is
> whether the project itself should provide the structure to do it.

I'd love to have something like this. It'd be really useful to be able to
install multiple versions simultaneously for testing migrations and such.
The main issue I can see is that if the port number is not predicatable that
connections from other machines won't work as expected any more.

That could be solved by some kind of meta-server but that has other issues.

Good luck
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> "All that is needed for the forces of evil to triumph is for enough good
> men to do nothing." - Edmond Burke
> "The penalty good people pay for not being interested in politics is to be
> governed by people worse than themselves." - Plato

Attachment

Re: Redhat RPMs (Was: Debian experimental packages

From
Andrew Sullivan
Date:
On Sun, Oct 12, 2003 at 10:21:39AM +0100, Oliver Elphick wrote:
> I imagine a lot of people have such in-house set-ups.  The question is
> whether the project itself should provide the structure to do it.

Oh, sorry, I intended that to be a note of support.  We do use it for
precisely the reasons you mention, and I think it'd be very useful
for packages to offer the same sort of facility.  I think it's a
splendid idea.

A

--
----
Andrew Sullivan                         204-4141 Yonge Street
Afilias Canada                        Toronto, Ontario Canada
<andrew@libertyrms.info>                              M2P 2A8
                                         +1 416 646 3304 x110


Re: Redhat RPMs

From
Christopher Browne
Date:
Oops! nandrews@investsystems.co.uk ("Nigel J. Andrews") was seen spray-painting on a wall:
> I've not looked at many RPMs but I must say that the few I have have
> never been relocatable. Can the postgresql RPMs not be made
> relocatable?

Unfortunately, relocation would have to include the init scripts, and
that would be pretty hairy.  The notion of "relocatable RPMs" came up
early in its design, but the only case where that will be particularly
usable is if the components are mostly binaries that only make
relative path references.  That situation is unusual, to say the
least.
--
wm(X,Y):-write(X),write('@'),write(Y). wm('aa454','freenet.carleton.ca').
http://www.ntlug.org/~cbbrowne/postgresql.html
MICROS~1 is not the answer.
MICROS~1 is the question.
NO (or Linux) is the answer.

Re: Redhat RPMs

From
Lamar Owen
Date:
On Friday 10 October 2003 08:52 pm, Christopher Browne wrote:
> Oops! nandrews@investsystems.co.uk ("Nigel J. Andrews") was seen
spray-painting on a wall:
> > I've not looked at many RPMs but I must say that the few I have have
> > never been relocatable. Can the postgresql RPMs not be made
> > relocatable?

> Unfortunately, relocation would have to include the init scripts, and
> that would be pretty hairy.  The notion of "relocatable RPMs" came up
> early in its design, but the only case where that will be particularly
> usable is if the components are mostly binaries that only make
> relative path references.  That situation is unusual, to say the
> least.

I've been watching this discussion with interest (well, I _am_ the RPM
maintainer, after all) and have to say that it has been thought of before.
It wasn't at that time implemented due to political factors (read: the then
Red Hat maintainer (@redhat.com) refused to include such support even if I
had built it).  But I did go through the design phase.  If everyone can be
patient, I'll try to go back into my archives and dig out the design doc I
put together way back then.  In the meantime, I'd like to hear people's
ideas.  As alternatives (debian-style) are fully supported in later Red Hat
(and the new Fedora Core) releases, a scheme that uses alternatives would be
ok.

Be sure to post to the pgsql-ports list instead of pgsql-general, though.  If
the list server will accept it, reply-to has been set to pgsql-ports.
--
Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC  28772
(828)862-5554
www.pari.edu