Peter Eisentraut wrote:
> Am Donnerstag, 25. Oktober 2007 schrieb Andrew Dunstan:
>> From time to time people have raised the idea of a CPAN-like mechanism for
>> downloading, building and installing extensions and the like (types,
>> functions, sample dbs, anything not requiring Postgres itself to be
>> rebuilt), and I have been thinking on this for the last few days. What sort
>> of requirements would people have of such a mechanism? How do people
>> envision it working?
>
> Downloading, building, and installing extensions is actually fairly
> standardized already (well, perhaps there are 2 or 3 standards, but CPAN has
> that as well). I think the inhibitions relate more to the management of
> what is installed.
>
> I imagine we need a package manager inside of PostgreSQL to manage
> installation, setup, removal, dependencies and so on. Much like rpm or dpkg
> really. That should replace the current "run this .sql file" mechanism,
> much like rpm and dpkg replaced the "run make install and trust me"
> mechanism. I have some of this mapped out in my head if there is interest.
The major challenge that I see is getting updates right, especially when the
package/module contains tables which the user might have added data to (Like for
example pre-8.3 tsearch). Both for updates of the packages, and for upgrading
postgres to a new major revision.
Maybe there are some schema-versioning tools available already that might help,
though...
> We'd also need easy integration with the real rpm and dpkg, so that
> distribution packages can be built easily and I can run
>
> apt-get install postgresql extension1 extension2
Wow, that is ambitious ;-)
I haven't yet seen a single distribution that gets this right for CPAN, ruby
gems, or anything the like - if you know one, I'd be very interested in trying
it out.
Speaking for myself, I'd already be very happy if I could do
apt-get install postgresql postgresql-pkg
and then
postpkg <database> install <whatever module>.
That'd also allow postpkg to deal with the database-specific requirements of a
package manager (Like specifying which db to add the module too).
regards, Florian Pflug