7

我使用 PostgreSQL,我想在 pl/perl 中创建一个函数,但 PostgreSQL 不包含 pl/perl。

当我输入createlang plperlu databasename它显示:

createlang:语言安装失败:错误:无法打开扩展控制文件“/usr/local/pgsql/share/extension/plperlu.control”:没有这样的文件或目录

如何安装 plperlu?

CentOS 5.8 中的 PostgreSQL 版本是 9.1

4

1 回答 1

8

在您执行任何其他操作之前,请备份您的数据库。至少用于pg_dump获取 SQL 转储并将其放在另一台计算机上。然后继续,但要明白,如果你搞砸了,你可能会导致停机甚至数据丢失。

(对于阅读本文的其他人,它仅适用于从源代码安装的PostgreSQL 。您可能正在使用打包版本,在这种情况下,您应该为您的发行版安装 postgresql-contrib 或 postgresql-plperl 的包。名称会有所不同,所以在你的包管理系统中搜索。)


您的同事很可能从源代码安装了 PostgreSQL,但没有启用 PL/Perl。如果你想要 PL/Perl,你需要重新编译。

安装 Perl 开发包,它应该被称为perl-devel,例如:

yum install perl-devel

当你重新编译 PostgreSQL 时,--with-perl使用./configure. 您应该能够找到您的同事在系统某处使用的 PostgreSQL 源代码树 - 尝试搜索config.log并查看同一位置是否有 PostgreSQL 源代码树。

如果找不到,则必须:

  • 下载新的 PostgreSQL 源代码并按照 PostgreSQL 文档进行编译;或者
  • 关闭您当前的服务器并安装yum.postgresql.org RPM 以替换它。

老实说,如果您不了解 Linux,这不是一个好的开始方式。找一个曾经使用过 Linux 系统并且熟悉安装包等基本任务的人来帮助你。让他们帮助您用yum.postgresql.org软件包中的 PostgreSQL 安装替换源安装的 PostgreSQL ,并最好将您相当过时的操作系统安装更新到当前安装。

于 2012-08-27T05:19:14.183 回答