CentOS 7で本番用のpostgresデータベースを作成しているところです。そのため、すでにインストールしており(もちろん、リポジトリを追加した後でpostgresql10-server postgresql10をインストールします)、postgres 10を構成しています。ただし、スクリプトにpgcryptoをインストールする必要があります拡張機能をインストールできませんでした。これは私がこれまでに行ったことです:
/usr/pgsql-10/share/extension/pgcrypto.control
ファイルが存在しないというものでした。グーグルpostgres-contrib
パッケージをインストールする必要があることに気づきました。これを実行してからpostgresサービスを再起動しましたが、拡張機能が/usr/share/pgsql/extension
にインストールされたためにエラーが続くため、拡張ファイルをコピーしました彼らがインストールされたから彼らは期待されていたこのメッセージが表示されます
「エラー:ファイル "$ libdir/pgcrypto"にアクセスできませんでした:そのようなファイルまたはディレクトリはありません」
もう一度グーグルで検索すると、別のオプションを指定する必要があるかもしれないので、CREATE EXTENSION pgcrypto FROM unpackaged;
を実行しました。
エラーメッセージは今です
エラー:関数ダイジェスト(テキスト、テキスト)が存在しません
そして、私は行き詰まっており、次に何をすればいいのかまったくわからない。 Linuxのpostgres 10でこの拡張機能を使用している人はいますか?使用している場合、どのようにして拡張機能を作成しましたか?
バージョン情報:PostgreSQL 10.1 x86_64-pc-linux-gnu、gcc(GCC)4.8.5 20150623(Red Hat 4.8.5-16)、64ビットでコンパイル
CREATE EXTENSION
のドキュメントから
PostgreSQLは、ファイル
SHAREDIR/extension/extension_name.control
の詳細を使用して拡張機能を作成します。
SHAREDIR
がpg_config --sharedir
で何に設定されているかを確認する必要があります。それが/usr/share/pgsql/extension
に設定されていない場合、おそらくpostgresql-contrib
は、postgresqlのコピーとは別の誰かによってパッケージ化されています。これらはコンパイル時の変数であり、同じである必要があります。それらを2つの別個のエンティティーによってパッケージ化されている場合、それらはおそらく異なるライブラリーに対してビルドされているため、それらを移動しても機能しない可能性があります。
あなたの場合私は仮定します
あなたがおそらくやりたいことは、CentOSリポジトリからインストールすることです。 PostgreSQLに関連するすべてのものをアンインストールし、コピーまたはリンクしたファイルを削除して、これを実行します
# Adds the PostgreSQL repo
rpm -Uvh https://yum.postgresql.org/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
# I think this should install them explicitly from the PostgreSQL repo
rpm -Uvh https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-10.1-1PGDG.rhel7.x86_64.rpm
rpm -Uvh https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-contrib-10.1-1PGDG.rhel7.x86_64.rpm
すでにyumを使用してpostgresqlをインストールしているため、-contribをインストールするだけで済みます。コピーまたはリンクしたファイルを削除してから、このコマンドを実行する必要があることに注意してください。
yum install postgresql10-contrib