Atualizando o servidor Fedora para 37, a atualização do Postgres não funcionou: ERRO: não foi possível acessar o arquivo "$libdir/postgis-3"

Atualizando o servidor Fedora para 37, a atualização do Postgres não funcionou: ERRO: não foi possível acessar o arquivo "$libdir/postgis-3"

Depois que todo o resto mostrou estar funcionando bem (YAY!), Postgresrecusou-se a iniciar (não se deixe levar pelo nome - o Postgres foi empacotado como PostgreSQLum elogio à conversão de Paul Aoki do QUELprocessador de linguagem de consulta para usar SQLo WAY no primeiro pacote lançamento em 1995 - tudo menos a embalagem/marca usa o nome Postgres).

Essa falha ao iniciar não foi inesperada, embora o pacote PODERIA ter previsto isso para atualizações, já que todas as instalações atualizadas provavelmente precisarão fazer isso e executar o script de atualização apropriado para nós; esse script pode ser executado assim:

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

Infelizmente, falhou.

Eu segui a trilha de migalhas de erro - um arquivo de log no Postgresdiretório inicial do usuário, apontado por um log intermediário que é cuspido stdoutpelo referido comando, apontou para um problema com Postgis, que é usado pela instalação.

A mensagem de erro mais pertinente dizia:

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

Infelizmente, não dizia onde $libdirdeveria estar e, igualmente, infelizmente, também não sei onde fica! Ainda não encontrei nenhum diretório contendo o nome postgis.

Presumi Postgisque não foi atualizado ou talvez não instalado, mas isso se mostrou incorreto com uma simples verificação dos pacotes instalados: Chama-sepostgis-3.2.2-1.fc37.x86_64

Como a mensagem de erro reclamava de não encontrar uma parte postgis-3e ainda assim uma postgisversão 3 está instalada foi uma surpresa para mim.

Ainda não tenho solução. Pensamentos? Este DEVE ser um problema comum para Postgresusuários que também usam Postgis!

Responder1

PostGISé uma extensão que é instalada como pacote. Você deve instalar o pacote adequado à versão principal do postgresql e à versão da extensão postgis. Como; postgis32_15oupostgis31_14

$libdirou qualquer outra configuração predefinida (principalmente vem com compilação) pode ser aprendida compg_configaplicação cliente. Você pode basicamente aprenderlibdirexecutando o comando abaixo.

pg_config --pkglibdir

se você não consegue encontrarpg_configentão é mais provável que seja ondepsqlcomando é ( $bindir).

Responder2

No Fedora 37, você recebe esta mensagem de erro durante a atualização do banco de dados se não tiver instalado o postgis-upgradepacote.

Assim, o procedimento completo de atualização para bancos de dados habilitados para postgis é mais ou menos assim:

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

Em geral, é uma boa ideia revisar os logs de atualização (e os arquivos padrão /var/lib/pgsql/data/log/postgresql*.log) caso haja algumas dicas extras, específicas para seu banco de dados concreto.

informação relacionada