无法加载库"/usr/lib/pgsql/plpgsql.so"和未定义的符号:PinPortal

Sla*_*laa 5 python postgresql trac centos

我已经在CentOS 5机器上运行了Davical一段时间,没有任何问题.

然而,昨天我安装了Trac bug-tracker,最终迫使我通过Yum运行完整更新,更新了整堆软件包.

我似乎无法确切地解决问题所在,谷歌搜索的时间似乎并没有带来很多想法.

有没有人有同样的问题或任何人都可以指出一种方法来更好地确定发生了什么?

非常感谢!

完整错误读数:

[Wed May 11 17:52:53 2011] [错误] davical:LOG:always:查询:QF:SQL错误"58P01" - 错误:无法加载库"/usr/lib/pgsql/plpgsql.so":/ usr/lib/pgsql/plpgsql.so:undefined symbol:PinPortal"

检查文件是否存在

[@shogun~]#tree -a/usr/lib/pgsql/| grep"plpgsql"

| - plpgsql.so

已安装的pg版本

[@shogun~] #pg_config | grep"VERSION"

VERSION = PostgreSQL 8.1.23

[@shogun postgresql-8.3.8] #yum list installed | grep'post'

postgresql.i386 8.1.23-1.el5_6.1已安装

postgresql-devel.i386 8.1.23-1.el5_6.1已安装

postgresql-libs.i386 8.1.23-1.el5_6.1已安装

postgresql-python.i386 8.1.23-1.el5_6.1已安装

postgresql-server.i386 8.1.23-1.el5_6.1已安装

Pet*_*aut 6

我以前遇到过这个问题,虽然用8.4代替8.1,但问题是相同的,我相信.

最近对PostgreSQL所有支持的维护分支进行了小幅升级,PinPortal在服务器中引入了该功能,并使PL/pgSQL使用它.因此,如果您使用plpgsql.so旧版本的服务器中的较新版本,则会出现此错误.在您的情况下,变化发生在8.1.21和8.1.22之间.即使所有已安装的软件包都显示较新的版本,您也需要重新启动服务器以确保实际使用的是较新的版本.

问题是,只要安装较新的PL/pgSQL,它就会被下一个启动的会话使用,但在重新启动服务器之前,新的服务器二进制文件将不会被使用.因此,如果您的升级过程没有立即重新启动服务器,那么只要某些东西试图使用PL/pgSQL,您就会遇到这些错误.如果这实际上是问题,您可能想要查看服务器未重新启动的原因.