Re: Pet Peeves?

From: Roger Leigh <rleigh(at)codelibre(dot)net>
To: rhubbell <Rhubbell(at)iHubbell(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Pet Peeves?
Date: 2009-01-31 12:38:18
Message-ID: 20090131123818.GC8148@codelibre.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Jan 30, 2009 at 03:44:48PM -0800, rhubbell wrote:
> On Fri, 30 Jan 2009 20:38:06 +0000
> Gregory Stark <stark(at)enterprisedb(dot)com> wrote:
>
> >
> > rhubbell <Rhubbell(at)iHubbell(dot)com> writes:
> >
> > > Nope, had to find it in another package called libpq-dev.
> > > That's on UbuntuHardy. Maybe it's a maintainer problem?
> > >
> > > What logic would lead someone to separate pg_config from everything else?
> > > Do people often just install the server and nothing else? Then what?
> >
> > This is actually *required* by Debian/Ubuntu packaging rules.
> >
> > The development environment must be packaged separately from shared libraries
> > like libpq or else major snafus arise when a new soversion of libpq comes out.
> > You need to be able to have both versions installed simultaneously (in case
> > you have programs which require both) but that won't work if they both contain
> > things like header files or executables.
>
> Weren't .so born from a need to save disk space? Maybe startup speed too.
> Now they're a PITA.

Not really. You just need to ensure that you have the correct development
environment for the version of PostgreSQL which you are targetting. While
it might appear to be unnecessarily complex, you'll find that there's a
very good reason for it.

* Every library in Debian is split into separate runtime and development
packages (and also documentation).
* Users will only need the runtime.
* Only developers and build dæmons will need to install the -dev
packages).
* Multiple -dev packages can and do exist for supporting multiple
library versions, especially during transitions from one version to
the next. They can't generally be installed simultaneously
(conflicting files common to both such as pg_config), so you just
install the one you require.

This saves valuable diskspace on end-user systems as well as allowing
for the creation of known sane build environments (look up how Debian
uses Build-Depends for automated package building).

> > > BTW I ran into the need for pg_config upon installing DBD::Pg.
> > > Maybe DBD::Pg maintainer problem?
> >
> > Installing a package for DBD::Pg or building it? The former would indeed be a
> > package bug.
>
> When I installed the package I did via CPAN so maybe this was my mistake.
> Not every CPAN package is packaged for debian so I often times don't bother
> checking if a perl module exists in debian I just do
> perl -MCPAN -e 'install (DBD::Pg)' or whatever pkg....

It's always worth checking first (first line):

% apt-cache search dbd | grep -i postgres
libdbd-pg-perl - Perl DBI driver for the PostgreSQL database server
libdbd-pg-ruby - Ruby/DBI PostgreSQL driver
libdbd-pg-ruby1.8 - Ruby/DBI PostgreSQL driver for Ruby 1.8
libdbd-pgsql - PostgreSQL database server driver for libdbi
postgresql-contrib-8.3 - additional facilities for PostgreSQL
libaprutil1-dbd-pgsql - The Apache Portable Runtime Utility Library - PostgreSQL Driver
libdbd-pg-ruby1.9 - Ruby/DBI PostgreSQL driver for Ruby 1.9

% apt-cache search 'dbd.*-perl' | grep -i postgres
libdbd-pg-perl - Perl DBI driver for the PostgreSQL database server
postgresql-contrib-8.3 - additional facilities for PostgreSQL

Regards,
Roger

--
.''`. Roger Leigh
: :' : Debian GNU/Linux http://people.debian.org/~rleigh/
`. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/
`- GPG Public Key: 0x25BFB848 Please GPG sign your mail.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Gerhard Heift 2009-01-31 13:03:12 Returning old value on update
Previous Message Jasen Betts 2009-01-31 12:12:12 Re: database/table snapshot