Extension build troubleshooting
Usually all that's necessary to build an extension is the following commands:
make make install make installcheck
Followed by a SQL command to create the extension in a database (replace foobar with the name of the extension):
CREATE EXTENSION foobar;
Troubleshooting
If you encounter an error such as:
"Makefile", line 8: Need an operator
You need to use GNU make, which may well be installed on your system as gmake:
gmake gmake install gmake installcheck
If you encounter an error such as:
make: pg_config: Command not found
Be sure that you have pg_config installed and in your path. If you used a package management system such as RPM to install PostgreSQL, be sure that the -devel package is also installed. If necessary tell the build process where to find it:
env PG_CONFIG=/path/to/pg_config make && make installcheck && make install
If you encounter an error such as:
ERROR: must be owner of database regression
You need to run the test suite using a super user, such as the default "postgres" super user:
make installcheck PGUSER=postgres
Once the extension is installed, you can add it to a database. If you're running PostgreSQL 9.1.0 or greater, it's a simple as connecting to a database as a super user and running (replace foobar with the name of the extension):
CREATE EXTENSION foobar;
If you've upgraded your cluster to PostgreSQL 9.1 and already had the extension installed, you can upgrade it to a properly packaged extension with:
CREATE EXTENSION foobar FROM unpackaged;
For versions of PostgreSQL less than 9.1.0, you'll need to run the installation script (replace foobar with the name of the extension):
psql -d mydb -f /path/to/pgsql/share/contrib/foobar.sql
If you want to install the extension and all of its supporting objects into a specific schema, use the PGOPTIONS environment variable to specify the schema, like so:
PGOPTIONS=--search_path=extensions psql -d mydb -f foobar.sql
Credits
This troubleshooting guide was originally written by David E. Wheeler. Copied from his hostname extension README.