Thread: Re: Passwordcheck Extension Not Installing

Re: Passwordcheck Extension Not Installing

From
Tom Lane
Date:
=?UTF-8?B?Q2loYXQgS8O8w6fDvGtiYcSfcsSxYcOnxLFr?= <cihat.kucukbagriacik@profelis.com.tr> writes:
> I have a PostgreSQL 17.2 database running on Ubuntu 22.04. I'm trying to
> install the passwordcheck extension, but I keep getting a "file not found"
> error.

> postgres=# create extension passwordcheck;
> ERROR:  extension "passwordcheck" is not available
> DETAIL:  Could not open extension control file
> "/usr/share/postgresql/17/extension/passwordcheck.control": No such file or
> directory.
> HINT:  The extension must first be installed on the system where PostgreSQL
> is running.

> Even though I have installed the postgresql-contrib packages, I still
> cannot see the extension. Below, I have listed the steps I followed. Could
> you help me with this issue?

Are any of the usual extensions present in that directory, or is it
just passwordcheck that's missing?

The most obvious bet is that you installed a postgresql-contrib
package that is not really compatible with the server package
you're using and it put all the extension files somewhere else
than where the server expects to find them.  Try checking the
file listing for the postgresql-contrib package you used.

            regards, tom lane



Re: Passwordcheck Extension Not Installing

From
Tom Lane
Date:
=?UTF-8?B?Q2loYXQgS8O8w6fDvGtiYcSfcsSxYcOnxLFr?= <cihat.kucukbagriacik@profelis.com.tr> writes:
> I have also observed that the *passwordcheck.so* file exists in the
> *"/usr/lib/postgresql/17/lib/"* directory. It seems that, for some reason,
> when the PostgreSQL service starts, it is unable to read the
> *passwordcheck.so* file and create the *passwordcheck.control* file in the
> *"/usr/share/postgresql/17/extension/"* directory.

No, you misunderstand the process.  The .control file is one of the
distributed files for an extension; the server has no ability to
create one.

What we both missed is that *passwordcheck is not an extension*.
It has no SQL-visible objects.  It's just a shared library that
you must preload into the server, as per its documentation.

            regards, tom lane