在尝试回答从现有字符串列(整数编码?)创建整数 id 列时,结果发现我需要自己的 postgres 版本才能使用。我已经安装了一个不错的 postgres 版本:
stack=# select version();
version
--------------------------------------------------------------------------------
------------------------
PostgreSQL 11.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.1.1 20190503 (R
ed Hat 9.1.1-1), 64-bit
但它没有 pgcrypto 模块:
stack=# CREATE EXTENSION pgcrypto;
ERROR: could not open extension control file "/usr/pgsql-11/share/extension/pgcrypto.control": No such file or directory
所以我安装了:
sudo dnf install postgresql-contrib
但我仍然得到同样的错误。如果我查看:
]$ ls /usr/pgsql-11/share/extension/
plpgsql--1.0.sql plpgsql.control plpgsql--unpackaged--1.0.sql
我需要安装任何其他软件包,还是我缺少其他东西?
更新:
rpm -qa postgresql\*
postgresql-contrib-11.3-1.fc30.x86_64
postgresql11-11.4-1PGDG.f30.x86_64
postgresql-11.3-1.fc30.x86_64
postgresql11-server-11.4-1PGDG.f30.x86_64
postgresql11-libs-11.4-1PGDG.f30.x86_64
我收到 dnf install postgresql11-contrib 错误:
[...] 无法同步 repo 'fedora-modular' 的缓存错误:无法同步 repo 'fedora-modular' 的缓存
pdgd 似乎是最新可用的:
rpm -qa | grep pgdg-fedora
pgdg-fedora-repo-42.0-4.noarch
更新2:
显然有些事情暂时停止了,它现在可以:
sudo dnf install postgresql11-contrib
[...]
Downloading Packages:
postgresql11-contrib-11.4-1PGDG.f30.x86_64.rpm 285 kB/s | 602 kB 00:02
rpm -qa postgresql\*
postgresql-contrib-11.3-1.fc30.x86_64
postgresql11-11.4-1PGDG.f30.x86_64
postgresql11-contrib-11.4-1PGDG.f30.x86_64
postgresql-11.3-1.fc30.x86_64
postgresql11-server-11.4-1PGDG.f30.x86_64
postgresql11-libs-11.4-1PGDG.f30.x86_64
stack=# CREATE EXTENSION pgcrypto;
CREATE EXTENSION
contrib
是正确的,但您必须为与您正在使用的不同的 PostgreSQL 安装它。找出安装了哪些软件包:
很可能你需要跑