I using PostgreSQL and I want to create a function in pl/perl, but the PostgreSQL doesn't contain pl/perl.
When I type createlang plperlu databasename
it shows:
createlang: language installation failed: ERROR : could not open extension control file "/usr/local/pgsql/share/extension/plperlu.control": No such file or directory
How can I install plperlu?
The PostgreSQL version is 9.1 in CentOS 5.8
Before you do anything else, back up your database. At minimum use pg_dump
to take a SQL dump and put it on another computer. Then proceed, but understand that you're likely to cause downtime or even data loss if you muck this up.
(For anyone else reading this, it only applies to PostgreSQL installed from source code. You are probably using a packaged version instead, in which case you should install the package for postgresql-contrib or postgresql-plperl for your distro. Names will vary, so do a search in your package management system.)
It seems highly likely that your co-worker installed PostgreSQL from source code and didn't enable PL/Perl. If you want PL/Perl you will need to re-compile.
Install the Perl development package, which should be called perl-devel
, eg:
yum install perl-devel
When you re-compile PostgreSQL use the --with-perl
argument to ./configure
. You should be able to find the PostgreSQL source code tree that your co-worker used somewhere on the system - try searching for config.log
and see if there's a PostgreSQL source code tree in the same place.
If you can't find it you'll have to either:
Honestly, if you don't know Linux this isn't a good way to start. Find somebody to help you who's worked with Linux systems before and is familiar with basic tasks like installing packages. Get them to help you to replace the source-installed PostgreSQL with a PostgreSQL install from the yum.postgresql.org packages, and preferably update your rather outdated operating system install to a current one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With