我试过以下:
sudo -u postgres psql <enter>
create extension "uuid-ossp";
但显示错误:ERROR: could not access file "$libdir/uuid-ossp": No such file or directory
我尝试过:select version()
。它显示了我的postgresql版本PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1, 64-bit
后来尝试使用adminpack
安装扩展程序create extension "adminpack"
,但它也会抛出错误:ERROR: could not open extension control file "/usr/local/share/postgresql/extension/adminpack.control": No such file or directory
我试过locate uuid-ossp
给了我以下结果:
/usr/src/postgresql-9.2.4/contrib/uuid-ossp
/usr/src/postgresql-9.2.4/contrib/uuid-ossp/Makefile
/usr/src/postgresql-9.2.4/contrib/uuid-ossp/uuid-ossp--1.0.sql
/usr/src/postgresql-9.2.4/contrib/uuid-ossp/uuid-ossp--unpackaged--1.0.sql
/usr/src/postgresql-9.2.4/contrib/uuid-ossp/uuid-ossp.c
/usr/src/postgresql-9.2.4/contrib/uuid-ossp/uuid-ossp.control
/usr/src/postgresql-9.2.4/doc/src/sgml/uuid-ossp.sgml
/usr/src/postgresql-9.2.4/doc/src/sgml/html/uuid-ossp.html
locate adminpack
给出以下结果:
/usr/lib/postgresql/9.1/lib/adminpack.so
/usr/share/postgresql/9.1/extension/adminpack--1.0.sql
/usr/share/postgresql/9.1/extension/adminpack.control
/usr/src/postgresql-9.2.4/contrib/adminpack
/usr/src/postgresql-9.2.4/contrib/adminpack/Makefile
/usr/src/postgresql-9.2.4/contrib/adminpack/adminpack--1.0.sql
/usr/src/postgresql-9.2.4/contrib/adminpack/adminpack.c
/usr/src/postgresql-9.2.4/contrib/adminpack/adminpack.control
/usr/src/postgresql-9.2.4/doc/src/sgml/adminpack.sgml
/usr/src/postgresql-9.2.4/doc/src/sgml/html/adminpack.html
答案 0 :(得分:4)
粗略猜测,您已将PostgreSQL 9.2源代码下载到/usr/src
,解压缩,配置,编译和安装......但未安装the contribs。
如果是这样,来自PostgreSQL源代码:
cd contrib && make && sudo make install
如果您想要更新PostgreSQL版本,除非您需要/想要更改源代码,否则通常最好将它们打包。请参阅http://yum.postgresql.org/,http://apt.postgresql.org/,http://www.postgresql.org/download/,...
更新:其中一些具有依赖性。例如。对于uuid-ossp
,您必须首先安装ossp-uuid lib:
apt-get install libossp-uuid-dev
然后编译并安装contrib/uuid-ossp
:
cd contrib/uuid-ossp && make && make install
检查make
步骤的错误输出以获取更多信息,如果有疑问,请记住,Google。 第一个错误通常是最重要的。
答案 1 :(得分:0)
对于那些遇到这种情况并正在安装特定版本的Postgresql(例如9.6)的人:
确保安装相同版本的 contrib :
HttpContext
当我最初使用PostgreSQL网站上的指示安装 postgresql96-server 时,它没有提到安装 contrib ,所以我稍后安装了错误的版本 - 忘记我没有不要使用CentOS存储库中的默认版本。