7

ソースからpostgresql 9.2.2を正常にインストールした後(リポジトリにこのバージョンがないOpenSUSE 11.4上)、pg_trgm拡張機能を使用するデータベースを復元しようとしています。pg_trgm が見つからないため、これはエラーになります。

この StackOverflow question: Similarity function in Postgres with pg_trgmから、pg_trgm は /usr/share/postgresql//contrib にあるはずですが、 /usr ツリーのどこにも contrib フォルダーがありません。

また、postgres 拡張メカニズムがどのように機能するか、または拡張機能を手動でインストールする方法についての明確な説明が見つからないようです。

postgresql のソース ツリーに contrib フォルダーがありますが、これを使用する方法がわかりません。これを /usr ツリーのどこかに手動でコピーする必要がありますか? postgresql に pg_trgm のような拡張機能をインストールする方法を教えて (または教えて) もらえますか?

4

2 に答える 2

15

postgresql を./configureで構成したと仮定すると、デフォルトのプレフィックスが使用されている/usr/local/pgsqlため、すべてがそのディレクトリの下にインストールされます。

リンク先の回答は、Debian ポリシーに準拠する別のレイアウトを使用する Debian に関連していますが、あなたの場合/usr/share...は無関係です。いずれにせよ、手動で何かをコピーする必要がないので、contrib から何かをインストールするためにそれを知る必要はありません。

pg_trgmソースから拡張機能をインストールするには、次の 2 つの手順があります。

1) postgresql ソース ツリーからビルドしてインストールします。

$ cd /path/to/src/postgresql-9.2.2/contrib/pg_trgm
$メイク
$ sudo make install # または、sudo を使用しない場合は su -c 'make install'

2)psqlデータベースでアクティブ化します:

$ sudo -u postgres psql -d データベース -c "拡張子 pg_trgm を作成"

今後作成されるデータベースでデフォルトでアクティブにするには、このコマンドをtemplate1データベースに適用します。

于 2013-01-12T15:06:29.870 に答える