Fedora 서버를 37로 업그레이드하면 Postgres의 업그레이드가 작동하지 않습니다. 오류: "$libdir/postgis-3" 파일에 액세스할 수 없습니다.

Fedora 서버를 37로 업그레이드하면 Postgres의 업그레이드가 작동하지 않습니다. 오류: "$libdir/postgis-3" 파일에 액세스할 수 없습니다.

다른 모든 것이 잘 작동하는 것으로 나타난 후(YAY!) Postgres시작을 거부했습니다(이름 때문에 당황하지 마십시오. Postgres는 Paul Aoki가 첫 번째 패키지에서 WAY를 사용하도록 쿼리 언어 프로세서를 PostgreSQL전환한 것을 칭찬하는 것처럼 패키지되었습니다. 1995년 출시 - 포장/브랜딩을 제외한 모든 항목에서 이름을 사용합니다 .QUELSQLPostgres

이 시작 실패는 예상하지 못한 일이 아니었지만 모든 업그레이드된 설치에서는 이 작업을 수행하고 적절한 업그레이드 스크립트를 실행해야 하므로 패키지에서 업그레이드를 위해 이를 예상했을 수 있습니다. 해당 스크립트는 다음과 같이 실행될 수 있습니다.

postgresql-setup --upgrade --upgrade-from postgresql

불행히도 실패했습니다.

나는 오류 bread-crumbs의 흔적을 따라갔습니다. Postgres사용자의 홈 디렉토리에 있는 로그 파일은 해당 명령으로 뱉어낸 중간 로그가 가리키며 설치에 사용되는 의 stdout문제를 가리킵니다 .Postgis

가장 관련성이 높은 오류 메시지는 다음과 같습니다.

ERROR:  could not access file "$libdir/postgis-3"

불행히도, 거기에 있어야 할 곳이 어디인지는 나와 있지 않았고 $libdir, 마찬가지로 불행하게도 나도 그것이 어디에 있는지 모릅니다! 아직 이름이 포함된 디렉토리를 찾지 못했습니다 postgis.

업그레이드되지 않았거나 설치되지 않은 것으로 추정했지만 Postgis설치된 패키지를 간단히 확인하면 잘못된 것으로 판명되었습니다.postgis-3.2.2-1.fc37.x86_64

postgis-3버전 3이 설치되어 있는데 일부를 찾을 수 없다는 오류 메시지가 postgis나에게 있어서 놀랐습니다.

아직 수정 사항이 없습니다. 생각? 이는 ! Postgres을 사용하는 사용자 에게도 공통적으로 나타나는 문제임에 틀림없습니다 Postgis.

답변1

PostGIS패키지로 설치되는 확장입니다. postgresql 메이저 버전과 postgis 확장 버전 모두에 맞는 패키지를 설치해야 합니다. 와 같은; postgis32_15또는postgis31_14

$libdir또는 기타 사전 정의된(주로 컴파일과 함께 제공됨) 구성을 학습할 수 있습니다.pg_config클라이언트 응용 프로그램. 기본적으로 배울 수 있어요libdir아래 명령을 실행하여.

pg_config --pkglibdir

찾을 수 없다면pg_config그렇다면 아마도 가장 가능성이 높은 곳은 어디일까요?psql명령은 ( $bindir) 입니다.

답변2

Fedora 37에서는 패키지를 설치하지 않은 경우 db 업그레이드 중에 이 오류 오류 메시지가 나타납니다 postgis-upgrade.

따라서 Postgis 지원 데이터베이스의 전체 업그레이드 절차는 다음과 같습니다.

systemctl start postgresql.service
# => start fails fails and some hints are logged
dnf install postgresql-upgrade postgis-upgrade
postgresql-setup --upgrade
systemctl start postgresql.service
sudo -u postgres psql -f /var/lib/pgsql/update_extensions.sql
sudo -u postgres reindexdb yourdb

/var/lib/pgsql/data/log/postgresql*.log일반적으로 구체적인 데이터베이스에 특정한 추가 힌트가 있는 경우 업그레이드 로그(및 표준 )를 검토하는 것이 좋습니다 .

관련 정보