9

I’m using Postgres 9.3 on Ubuntu Linux 14.04. How do I install/enable the uuid-ossp extension? I first verified the contrib package was installed …

root@prodbox:/home/rails/myproject# apt-get install postgresql-contrib
Reading package lists... Done
Building dependency tree       
Reading state information... Done
postgresql-contrib is already the newest version.

and then I logged in and tried to create the extension …

root@prodbox:/home/rails/myproject# su - postgres
postgres@prodbox:~$ psql
psql (9.6.0, server 9.3.11)
Type "help" for help.

postgres=# CREATE EXTENSION "uuid-ossp";
ERROR:  could not open extension control file "/usr/share/postgresql/9.3/extension/uuid-ossp.control": No such file or directory

I’m all out of ideas. What am I missing?

a_horse_with_no_name
  • 69,148
  • 13
  • 135
  • 173
Dave
  • 565
  • 7
  • 15
  • 26

2 Answers2

4

You seem to have two versions (9.6 and 9.3) installed (because the psql version is 9.6). Because the postgresql-contrib package automatically defaults to the currently supported PostgreSQL database contrib package (as noted if you do apt-cache show postgresql-contrib), you'll have to install the contrib package for 9.3:

apt-get install postgresql-contrib-9.3
dezso
  • 28,436
  • 12
  • 89
  • 132
  • also works when creating a Docker image of Postgres 9.3. Just add -y to the command so it installs without asking for confirmation – ssimm Sep 15 '21 at 14:59
-1

These steps worked for me in my centos 7, when I was facing this issue in my postgres 12,

  1. sudo yum install postgresql-contrib-12

  2. sudo su - postgres or whatever your username for postgres is

  3. psql to enter into postgresql cli commands line

  4. CREATE EXTENSION "uuid-ossp";