Ejecutar Crear extensión postgis da ERROR no se puede abrir el archivo de control de extensión?

41

He instalado PostgreSQL 9.xy PostGIS 1.5 / 2.0 varias veces y nunca he tenido este problema.

Acabo de poner en funcionamiento un nuevo servidor CentOS 6.3 y Postgres 9.3 funciona como se esperaba. He corrido

yum install postgis2_93

y puedo ver los archivos en

/usr/pgsql-9.3/share/contrib/

sin embargo, cuando ejecuto

CREATE EXTENSION postgis;

recibo

ERROR:  could not open extension control file "/usr/pgsql-9.3/share/extension/postgis.control": No such file or directory

los tutoriales ( # 1 , # 2 ) No he mostrado ningún paso entre la instalación de PostGIS y la creación de la extensión.

¿Qué me estoy perdiendo?

    
pregunta losthorse 12.09.2013 - 16:52

11 respuestas

10

Si puede encontrar un archivo postgis.sql, puede ejecutarlo en su base de datos (y el archivo spatial_ref_sys.sql) para espacializar manualmente su base de datos. Reportar el archivo de control faltante al empaquetador, eso es un gran problema.

    
respondido por el Paul Ramsey 14.09.2013 - 01:09
43

Acabo de tener el mismo problema en Ubuntu Server 14.04. Instalé la extensión postgis desde los repositorios oficiales de Ubuntu usando apt-get install postgis .

Entonces, find /usr -name postgis.control no devolvió ningún resultado.

La razón por la que extension/postgis.control no se instaló porque postgis-scripts no lo estaba.

$ aptitude search postgis
i   libpostgis-java                                  - Geographic objects support for PostgreSQL -- JDBC support 
i   postgis                                          - Geographic objects support for PostgreSQL                 
p   postgis:i386                                     - Geographic objects support for PostgreSQL                 
i   postgis-doc                                      - Geographic objects support for PostgreSQL -- documentation
i   postgresql-9.3-postgis-2.1                       - Geographic objects support for PostgreSQL 9.3             
p   postgresql-9.3-postgis-2.1:i386                  - Geographic objects support for PostgreSQL 9.3             
i   postgresql-9.3-postgis-2.1-scripts               - PostGIS for PostgreSQL 9.3 -- scripts -- dummy package    
i   postgresql-9.3-postgis-scripts                   - Geographic objects support for PostgreSQL 9.3 -- scripts 

La solución es instalarlo.

En distribuciones similares a Debian:

apt-get install postgis*

El administrador de paquetes de aptitude determinará automáticamente las versiones correctas del paquete para instalar. El postgis-doc también se instalará.

  

EDITAR

     

Como algunas personas notaron en los comentarios, el postgis* no es necesario porque instala algunos paquetes que no son estrictamente necesarios para que funcione.

     

Los paquetes requeridos son los paquetes meta postgis y postgresql-9.x-postgis-scripts . Seleccionan la versión real correcta para su sistema.   Así que los comandos para instalar los paquetes requeridos son

 $ sudo apt-get install postgis postgresql-9.3-postgis-scripts
     

para postgresql-9.3 . Ubuntu 16.04 ejecuta postgresql-9.5 por lo que el comando se convierte en:

 $ sudo apt-get install postgis postgresql-9.5-postgis-scripts

Puede verificar el éxito de la operación ejecutando el siguiente comando:

find /usr -name postgis.control

En mi servidor, ahora devuelve:

/usr/share/postgresql/9.3/extension/postgis.control

Ahora puede habilitar la extensión en cualquier base de datos en su servidor de Postgres:

  • conéctese a su db con superusuario (postgres por defecto)
  • ejecuta CREATE EXTENSION postgis;

Su esquema público ahora contiene todos los objetos y funciones postgis.

    
respondido por el Rémi B. 25.07.2014 - 11:06
14

En Ubuntu 14.04 también necesita instalar el paquete postgresql-9.3-postgis-scripts . Despues de correr

  

sudo apt-get install postgis postgresql-9.3-postgis-scripts

Entonces pude ejecutar exitosamente

  

CREAR EXTENSIÓN postgis;

en mi base de datos para inicializar PostGIS.

    
respondido por el edward 29.10.2014 - 23:31
2

Tuve el mismo problema, acabo de ejecutar el comando

sudo apt-get install postgis

Estaba usando Ubuntu 18.04

    
respondido por el Muhammad Fuzail Zubari 15.08.2018 - 08:12
1

Encontré el mismo problema, creo que el problema es que el paquete postgis2_93 no está instalado en el lugar esperado como postgresql esperaría. Puedes intentar usar otro repositorio, que podría darte el lugar correcto. O puede buscar agregar extensiones manualmente especificando el lugar. En mi caso, el archivo está en /usr/pgsql-9.4/

    
respondido por el Hue 15.10.2015 - 07:02
1

Tuve mi peor pesadilla al instalar Postgis 2.X en SLES 12 SP1. que no tiene paquete compatible en zypper repo

Aquí está cómo se resuelve en mi instancia del servidor Postgres que ejecuta 9.4.X

Paquetes de Prerequsite que he instalado antes de PostGis basados en los errores

  1. Proj 4 Descargar fuente en frío, compilar - > hacer instalación
  2. instala Gdal andjibson agregando repo zypper zypper addrepo enlace
  3. instalar zypper gdal gdal-devel libjson-c-devel libjson

Instalando Postgis

  • Descargue el código fuente de Postgis ( enlace )

  • Ir a la carpeta Publicar gis ./configure --with-pgconfig = / usr / lib / postgresql94 / bin / pg_config --with-geosconfig = / usr / local / bin / geos-config hacer hacer instalación

ahora si vas a postgress y creas postgis de extensión; trabajará

Importante durante la configuración, debe especificar la ruta pg-config y la ruta geosconfig y NO DEBE incluir "sin Raster" ya que RASTER juega un papel principal en la creación de la extensión postgis

    
respondido por el Pradeep B 21.09.2016 - 07:25
1

Otra fuente que causó el problema podría ser el paquete faltante de PostGIS, que se puede definir en el menú de instalación o en su caso más adelante. Por lo tanto, abra windows start, diríjase a PostgreSQL y comience Application Stack Builder . Luego, seleccione PostgreSQL, con lo que se cargan las posibles aplicaciones. Para el paquete PostGIS, solo necesita instalar la extensión adecuada para su sistema operativo (32 o 64 bits), simplemente diríjase a Extensiones espaciales .

Después de todo, aquí están los pasos recomendados:

  1. iniciar el generador de pila de aplicaciones
  2. Extensiones directas a espaciales
  3. instalar el paquete PostGIS

Ahora puede agregar la extensión con CREATE EXTENSION postgis; en su consulta SQL.

    
respondido por el sqlmaster3000 24.05.2017 - 12:15
0

Si está utilizando brew, desinstale PostGIS y vuelva a instalarlo. Esto creará los archivos de extensión.

    
respondido por el James 04.12.2015 - 14:18
0

En algunas distribuciones, las extensiones se empaquetan en el paquete postgresql-contrib. Esto es cierto en RedHat / CenOS, donde las extensiones están en postgresql-contrib, donde xx es el magor y los números de versión menores sin las paradas completas (postgresql95-contrib para postgres 9.5).

    
respondido por el louigi600 11.05.2017 - 09:46
0

Para mí, usando Fedora 25 y pág. 9.5, funcionó cuando hice los siguientes cambios:

  • Instala el paquete yum postgis

    $ yum install postgis2_95

  • Descargue el paquete .deb de scripts postgis

  • Extraiga y copie los directorios 'contrib' y 'extension' en usr / share / postgresql / 9.5 extraídos a la misma ruta en pgsql (tal vez cambiando los permisos a).

  • Reinicia el servidor

respondido por el Luiz Fernando da Silva 24.05.2017 - 18:54
0

En mi caso (Linux Mint 18.1 Serena) tuve que eliminar posgresql-9.5 y postgis recién instalado del repositorio predeterminado.

sudo apt remove postgis*
sudo apt remove postgresql*

E instale la versión 9.6 desde repositorio de PosgreSQL :

sudo apt install postgresql-9.6 postgresql-9.6-postgis-2.3 postgresql-9.6-postgis-2.3-scripts postgresql-contrib-9.6

No estoy seguro, la versión tiene algo que ver con faltar el archivo postgis.control . Pero quería la versión 9.6 de todos modos.

    
respondido por el WooYek 04.07.2017 - 16:26

Lea otras preguntas en las etiquetas