[oi-dev] Future of PostgreSQL on OpenIndiana
Nelson H. F. Beebe
beebe at math.utah.edu
Sat Feb 26 16:19:25 UTC 2022
Andreas Wacknitz <a.wacknitz at gmx.de> asked on Sat, 26 Feb 2022
12:16:28 +0100 raised concern about OpenIndiana support of PostgreSQL
versions.
I have built many versions of PostgreSQL from source code from early
2008 to date, on several O/S platforms, most recently this morning,
when after seeing Andreas' message, I built and installed 14.2 from
https://www.postgresql.org/ftp/source/v14.2/
on CentOS 7,9.2009, DragonFlyBSD 6.2.1, FreeBSD 14.0, Ubuntu 20.04,
macOS 12.2.1 (Sierra), OpenIndiana Hipster 2021.10, and Solaris 11.4.
I can report that builds of PostgreSQL have rarely failed; its authors
have done an outstanding job of ensuring portability to many operating
systems.
My typical build recipe (here, for Hipster) looks like this:
cd /path/to/build-directory
tar xf $prefix/src/postgresql/postgresql-14.2.tar.bz2
./configure --prefix=$prefix/ashare/postgresql/postgresql-14.2
gmake all -j && gmake check -j && gmake install
cd $prefix/bin
cat > psql-14.2 <<EOF
#! /bin/sh -
PATH=/usr/uumath/ashare/postgresql/postgresql-14.2/bin:/usr/uumath/bin:/bin:/usr/bin
export PATH
LD_LIBRARY_PATH=/usr/uumath/ashare/postgresql/postgresql-14.2/lib:/usr/uumath/lib
export LD_LIBRARY_PATH
/usr/uumath/ashare/postgresql/postgresql-14.2/bin/psql "$@"
EOF
chmod a+x psql-14.2
ln -s psql-14.2 psql
At my site, prefix is set to our local /usr/uumath tree, because the
default of /usr/local is usurped by several O/Ses in the BSD family
for their own package systems.
I wrap public access to psql in a link to a version-specific script,
psql-x.y that internally sets PATH and LD_LIBRARY_PATH to ensure that
PostgreSQL executables are not confused by libraries from other
versions of PostgreSQL installed on the system.
The installation path includes "/ashare/", for O/S
architecture-specific shared files, because our central fileservers
have client systems from multiple operating systems.
Database systems, such as PostgreSQL, MySQL, MariaDB, and MSSQL,
generally have version-specific formats of stored data, so migration
of a database to a new server version requires it either to be
recreated from scratch (which I often do for my bibliographic
archives), or dumped into a text file from the old server, and then
restored from that file into the new server.
For a commercial online database that must provide nonstop service,
this migration is problematic, but for many local applications of
databases, an outage of a few minutes to an hour or two for a rebuild,
or dump/restore, is acceptable. I run our databases on multiple
servers, so if one is down for an upgrade, service is still available
from other servers.
So, for people on the oi-dev team, my view is that you have nothing to
fear from upgrading PostgreSQL, and you can easily provide binaries
for multiple versions of PostgreSQL as long as they are stored in
version-specific trees, with symlinks from /usr/bin.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe at math.utah.edu -
- 155 S 1400 E RM 233 beebe at acm.org beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------
More information about the oi-dev
mailing list