2011-05-13 3 views
5

이제 CentOS 5 상자에서 Davical을 아무런 문제없이 사용하고 있습니다.라이브러리 "/usr/lib/pgsql/plpgsql.so"을로드 할 수 없습니다. & undefined symbol : PinPortal

그러나 어제는 Trac bug-tracker를 설치했는데 결국 패키지 전체를 업데이트 한 Yum을 통해 전체 업데이트를 실행해야했습니다.

문제가 무엇인지 정확하게 알아낼 수는 없지만 인터넷 검색에 소비 된 시간은 아이디어의 방식을 많이 반영하지 못했습니다.

누구에게도 동일한 문제가 있었습니까? 아니면 아무도 무슨 일이 일어나고 있는지 더 잘 식별 할 수있는 방법을 나타낼 수 있습니까?

많은 감사!

전체 오류 판독 : 파일이 존재하는지 확인

[Wed May 11 17:52:53 2011] [error] davical: LOG: always: Query: QF: SQL error "58P01" - ERROR: could not load library "/usr/lib/pgsql/plpgsql.so": /usr/lib/pgsql/plpgsql.so: undefined symbol: PinPortal"

[@shogun ~] # 트리 -a는/usr/lib 디렉토리/pgSQL의/| 그렙 "plpgsql"

| - 페이지의

버전 plpgsql.so는

[@shogun ~] # 개의 pg_config를 설치 | 그렙 "VERSION"

VERSION = PostgreSQL의 8.1.23

[@shogun PostgreSQL을-8.3.8] # 얌 목록 설치 | 그렙 '포스트'

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가 설치

설치 설치

+0

버전 8.1.23입니다. 매우 정직하기 때문에 업데이트되지 않은 많은 패키지가 업데이트되었습니다. 내 Yum에는 역사 관리자가 있다고 생각하지 않습니다. 알아내는 방법이 있습니까? – Slazlaa

+0

흠. 나는 단지 Yum을 통해서만 설치했고, 거기에 하나의 버전이 설치되어있는 것으로 보인다 : – Slazlaa

답변

6

이전에이 문제가 있었지만, 8.1 대신 8.4를 사용했지만 문제점은 동일하다고 생각합니다.

PostgreSQL의 지원되는 모든 유지 관리 분기 중 최근의 보조 업그레이드는 서버에 PinPortal 함수를 도입하여 PL/pgSQL에서 사용하게했습니다. 따라서 이전 버전의 서버에서 최신 버전의 plpgsql.so을 사용하면이 오류가 발생합니다. 귀하의 경우, 변경 사항은 8.1.21과 8.1.22 사이에서 발생했습니다. 설치된 패키지에 새 버전이 표시 되더라도 새 버전을 실제로 사용하려면 서버를 다시 시작해야합니다.

새로운 PL/pgSQL을 설치하자마자 시작된 다음 세션에서 문제가 발생하지만 서버를 다시 시작할 때까지 새로운 서버 바이너리는 사용되지 않습니다. 따라서 업그레이드 프로세스가 서버를 즉시 재시작하지 않으면 PL/pgSQL을 사용하려고 할 때마다 반드시 이러한 오류가 발생합니다. 실제로 이것이 문제가된다면 서버가 재시작되지 않은 이유를 검토 할 수 있습니다.

+0

최근의 MacPorts 업그레이드 후에 나도 같은 일이 일어났다. 새로운 MacPorts postgres 패키지는 선택 및로드 기능을 제공하고, 실행중인 서버를 모두 실행하며, 실행중인 서버를 종료 할 수 있습니다. launchd는 완벽하게 새로운 패키지를 다시 시작합니다. –

관련 문제