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

时间:2011-05-13 15:38:01

标签: python postgresql centos trac

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

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

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

有没有人遇到同样的问题,或者有没有人能指出一种方法可以更好地识别最新情况?

非常感谢!

完整错误读数:

  

[Wed May 11 17:52:53 2011] [error] davical:LOG:always:Query:QF:SQL error“58P01” - ERROR:无法加载库“/usr/lib/pgsql/plpgsql.so “:/ usr / lib / pgsql / plpgsql.so:未定义的符号: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已安装

1 个答案:

答案 0 :(得分:6)

之前我遇到过这个问题,虽然用8.4而不是8.1,但问题是相同的,我相信。

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

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