7

PostgreSQLを使用していて、pl / perlで関数を作成したいのですが、PostgreSQLにpl/perlが含まれていません。

入力すると、次のcreatelang plperlu databasenameように表示されます。

createlang:言語のインストールに失敗しました:エラー:拡張機能制御ファイル "/usr/local/pgsql/share/extension/plperlu.control"を開けませんでした:そのようなファイルまたはディレクトリはありません

どうすればplperluをインストールできますか?

CentOS5.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.orgRPMをインストールして置き換えます。

正直なところ、Linuxを知らないのであれば、これは始めるのに良い方法ではありません。以前にLinuxシステムを使用したことがあり、パッケージのインストールなどの基本的なタスクに精通している人を助けてくれる人を見つけてください。ソースにインストールされたPostgreSQLをyum.postgresql.orgパッケージからのPostgreSQLインストールに置き換えるのを手伝ってもらい、できれば古いオペレーティングシステムのインストールを現在のものに更新してください。

于 2012-08-27T05:19:14.183 に答える