UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE INGENIERIA BASES DE DATOS ESPACIALES PRCTICA 2. INSTALANDO POSTGRESQL POSTGIS EN LINUX
La prctica se entrega de forma individual.
1.1. OBJETIVO. El objetivo de esta prctica es realizar las actividades necesarias para instalar un ambiente de desarrollo con una base de datos PostreSQL con su extensin espacial PostGIS empleando plataforma Linux. Las instrucciones que se describen a continuacin ilustran los pasos requeridos para instalar PostgreSQL 9 en un sistema operativo Ubuntu 13.04 (Raring Ringtail) .
Cabe mencionar que para el desarrollo de esta prctica, se pueden aplicar las siguientes variantes: Instalar PostreSQL directamente en Ubuntu empleando mquina virtual (las instrucciones de esta prctica aplican de manera similar, se recomienda ampliamente esta variante). Instalar PostreSQL en otra distribucin de Linux, el alumno deber configurar e instalar la base de datos empleando los comandos equivalentes.
1.2. ARCHIVOS REQUERIDOS PARA ESTA INSTALACIN: VirtualBox (en caso de requerir instalar en mquina virtual): VirtualBox-4.2.16-86992- Win.exe o mayor. Se puede descargar de http://www.virtualbox.org/ Paquete de extensiones de VirtualBox para soporte de USB 2.0, escritorio compartido, etc.) Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack o superior. De forma similar, se requiere para mquina virtual, se descarga del mismo sitio http://www.virtualbox.org/ o Archivo ISO que contiene el sistema operativo. Se puede descargar de http://releases.ubuntu.com/13.04/ ubuntu-13.04-desktop-i386.iso para 32 bits o ubuntu-13.04-desktop-amd64.iso para 64 bits Cdigo fuente de postgres: o Obtener el archivo postgresql-9.3.0.tar.gz de la ruta http://www.postgresql.org/ftp/source/v9.3.0/ Cdigo fuente de PostGIS: o Obtener el archivo postgis-2.1.0.tar.gz de http://postgis.net/source
1.3. CONSIDERACIONES PREVIAS. Las siguientes secciones aplican para los casos en los que se decida instalar una maquina virtual sobre un sistema operativo Windows. Para los casos en los que se decida instalar Ubuntu de forma nativa pasar directamente a la seccin 1.5 Existen varias soluciones de software para emular una computadora (maquina virtual) sin la necesidad de alterar o eliminar la instalacin de un sistema operativo. Las ms comunes: Oracle VirtualBox, y VMWare. En esta prctica se emplea Oracle VirtualBox, sin embargo, si se desea se puede instalar cualquier otra solucin como VMWare. Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 2 de 28
1. Ejecutar el archivo exe, seguir las instrucciones en pantalla.
2. Instalar todos los componentes del software:
3. Continuar con el proceso de instalacin. Aparecer un aviso de desconexin temporal de internet, presionar Yes, posteriormente, el instalador solicitar confirmacin para iniciar el proceso de instalacin, presionar Install.
1.4. CREACIN DE LA MQUINA VIRTUAL. Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 3 de 28
4. Una vez terminado el proceso de instalacin, iniciar VirtualBox, aparecer una pantalla como la siguiente. El primer paso a realizar es la creacin de una maquina virtual. Para ello hacer clic en el botn Nueva.
5. Indicar el sistema operativo y el nombre de la maquina virtual, el nombre puede ser diferente al mostrado en la figura. Si se va a instalar Ubuntu a 64 bits, seleccionar como valor para el campo versin: ubuntu 64.
6. Asignacin de la memoria RAM, misma que ser la reportada por el sistema operativo Linux. Como mnimo especificar 768MB. La cantidad a seleccionar depender de la memoria fsica de la pc, no asignar toda la memoria fsica disponible ya que la maquina anfitriona puede tener problemas de desempeo. Se recomienda 1GB.
7. Creacin de un nuevo disco virtual. Fsicamente, el disco virtual es un archivo con extensin .vdi el cual contiene el sistema operativo y todos los archivos de la mquina virtual. Especificar las opciones como se indican en la siguiente figura.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 4 de 28
8. Seleccin del tipo de archivo para crear el disco virtual. Para propsitos del curso, no es necesario cambiar el tipo de archivo, especificar el valor VDI, (VirtualBox Disk Image), presionar Next. En caso de que se requiera emplear este mismo archivo empleando otro software de virtualizacin, seleccionar alguna de las otras 2 opciones.
9. Detalles de almacenamiento del disco virtual. En esta pantalla se selecciona la forma de crecimiento del disco virtual: dinmico o fijo. Cualquiera de las opciones pueden funcionar para los propsitos del curso. Seleccionar Tamao fijo si no existen inconvenientes de espacio en la maquina anfitriona, ya que desde un inicio, el archivo ocupar el espacio especificado en la siguiente pantalla el cual ser de 30 GB. La ventaja de esta opcin es que su uso ser un poco ms rpido que el de crecimiento dinmico. Si existen inconvenientes de espacio, seleccionar Reservado dinmicamente.
10. Localizacin y tamao del disco virtual. Para el tamao indicar un valor de al menos 30 GB. Seleccione la ubicacin de la carpeta en la maquina anfitriona en donde se guardar el archivo .vdi, puede ser cualquier carpeta dentro de la maquina anfitriona.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 5 de 28
Presionar Next, revisar el resumen, y finalmente, presionar Crear. Aparecer en la ventana principal la maquina virtual creada.
1.4.1. Configuracin de la mquina virtual.
11. Hacer clic en el botn Iniciar para comenzar con la configuracin de la maquina virtual. Aparecer un mensaje indicado instrucciones para el uso de ratn y del teclado tanto en la mquina anfitriona como en la husped. Para cambiar el control entre una y otra se emplea la tecla ctrl derecha. Leer las instrucciones y presionar continuar. 12. Seleccin del medio de instalacin. En este punto se deber indicar el medio de instalacin que contiene el sistema operativo a instalar. Para completar este paso, se requiere del archivo iso que contiene el sistema operativo (ver lista de software requerido al inicio de la prctica). 13. Seleccionar la ubicacin del mismo presionando en el icono de la carpeta que se muestra en la siguiente imagen.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 6 de 28
14. Resumen. Presionar Next. Aparecer un mensaje de resumen, leer las instrucciones y presionar Iniciar.
Al presionar Iniciar comenzar la instalacin del sistema operativo en la maquina virtual. Aparecern varios mensajes de confirmacin, leerlos con atencin y continuar con el proceso de instalacin. Las instrucciones que se describen a continuacin aplican tanto para instalaciones nativas como para instalaciones empleando la maquina virtual.
Hasta este punto concluye la instalacin de la maquina virtual, los siguientes pasos corresponden a la instalacin de Ubuntu independientemente si se emplea maquina virtual o instalacin nativa.
1.5. INSTALACIN DEL SISTEMA OPERATIVO UBUNTU
1. Inicio del equipo con CD o USB. Para realizar la instalacin de forma nativa, se deber iniciar (bootear) el equipo empleando alguna de las siguientes estrategias: Instalacin con CD: Grabar la imagen o archivo ISO que contiene el sistema operativo Instalar Ubuntu a travs de una memoria USB booteable generndola a partir de la imagen ISO. Para realizar el copiado a la memoria, seguir las instrucciones de http://www.ubuntu.com/desktop/get-ubuntu/download No olvidar revisar la configuracin del BIOS para que el sistema intente iniciar a partir de la unidad de CD o de una unidad USB antes de verificar en el disco duro.
2. Al iniciar, aparecern algunas pantallas para realizar la carga de los archivos necesarios para instalar el sistema operativo, seguir las instrucciones en pantalla.
3. Seleccin del idioma. Seleccione el idioma de su preferencia y presione Instalar Ubuntu
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 7 de 28
4. Verificar las condiciones de la siguiente pantalla, no marcar las 2 opciones de descarga e instalacin, presionar Continuar
5. Asignar espacio en disco.
Este es uno de los pasos ms importantes del proceso de instalacin. Aqu se indica la organizacin fsica del disco duro. En caso de usar una Maquina virtual, observar que se reporta el tamao del disco configurado en pasos anteriores. En caso de ser una instalacin nativa en la que por ejemplo, ya se cuente con un sistema operativo instalado, por ejemplo Windows, el programa detectar las particiones y los sistemas operativos instalados. Para cualquier caso seleccionar la opcin Ms opciones, presionar Continuar
1.5.1. Asignacin de espacio empleando una maquina virtual.
6. En este caso se muestra una pantalla como la siguiente indicando que no existen particiones existentes en el disco: Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 8 de 28
1.5.2. Asignacin de espacio, sin emplear maquina virtual.
En caso de tener un sistema operativo instalado, por ejemplo, Windows, se muestra la particin en la que est instalado, tpicamente en la nica particin existente. Se deber seleccionar la opcin Cambiar para poder reducir el espacio de la particin y dejar el espacio que se asignar para Linux. La cantidad a modificar depende de la capacidad del disco duro. Como mnimo usar los valores recomendados en las secciones anteriores. En caso de que se desee utilizar Linux no solo para propsitos de la materia, puede realizar una distribucin de espacio distinta dependiendo de sus necesidades, adems a que opcionalmente puede crear nuevas particiones para uso compartido entre los sistemas operativos (deben estar con formato NTFS para que ambos sistemas operativos las puedan leer). Tomar en cuenta que la distribucin de espacio seleccionada afectar el tamao actual de la particin de los sistemas operativos instalados. Hasta este punto su disco duro no ha sufrido cambio alguno, por lo que puede cancelar la instalacin, pasando este punto ya no ser posible deshacer los cambios. Se recomienda hacer un respaldo de su informacin en caso de cualquier error.
7. Particiones requeridas para instalar Linux.
Para ambos tipos de instalacin, Linux requiere de las siguientes particiones para su instalacin:
Nombre de la particin Punto de montaje Descripcin raz / Es la principal particin, en ella se instalan los archivos del sistema operativo, se recomienda que esta tenga la mayor cantidad de espacio asignado. swap NA rea de intercambio. Corresponde al espacio reservado por el sistema operativo que emplea como memoria virtual en caso de que la memoria fsica no sea suficiente. Tpicamente el tamao de esta particin se calcula multiplicando por 2 a la memoria fsica disponible. Por ejemplo, si se usa una maquina virtual con 1GB, el tamao de esta particin ser de 2 GB. Ntese que el espacio total asignado se tiene que distribuir entre las 2 particiones mencionadas anteriormente.
En el caso de usar maquina virtual presionar Nueva tabla de particin, y crear las particiones antes descritas. Para el caso de instalacin nativa, una vez recortada la particin existente, seleccione el espacio disponible e inicie la creacin de las particiones antes descritas.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 9 de 28
Crear las particiones en el siguiente orden: Creacin de la particin swap. Seleccione el rengln que contiene el espacio libre, presionar +. Tomando en cuenta la tabla anterior, especificar los valores adecuados para esta particin. Revisar la captura de datos, al terminar, presionar Aceptar.
Creacin de la particin raz. Mismo procedimiento, seleccionar el espacio libre, presionar +. El espacio a asignar para esta particin ser igual a todo el espacio libre disponible (la particin con el mayor espacio), adicional a que el tipo de particin ser Primaria.
Observar el orden en el que se crearon las particiones, primero swap, y al final raz. Esto principalmente para que el espacio sobrante despus de crear a swap se le asigne a la particin raz. Esto se logra creando todas las particiones seleccionando como ubicacin final. Adicionalmente observar que el tipo de particiones es lgica a excepcin de la particin raz. Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 10 de 28 Al final la distribucin de las 2 particiones debe ser as: pueden aparecer otras particiones de los dems sistemas operativos, en este caso, todas las particiones para Linux incluida la particin raz, pueden ser creadas como particiones lgicas.
Recomendacin: no dejar espacio libre sin particionar. Presionar Instalar ahora.
8. Seleccionar la ubicacin.
9. Distribucin del teclado. Verifique que la distribucin calculada por el programa sea la adecuada para su teclado. De no ser as haga uso de las opciones disponibles para realizar la seleccin adecuada.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 11 de 28
10. Seleccin de cuenta de usuario y nombre de la PC..
Observar que en esta pantalla se especifica el nombre del equipo y el nombre del usuario con privilegios de administracin (sudo). Para propsitos del curso, se debern especificar los siguientes valores: Nombre de la maquina: pc-xxx, donde xxx corresponde con las iniciales de su nombre, por ejemplo, pc-jarc (todo en minsculas). Nombre del usuario: su nombre, por ejemplo juan, etc. (es importante que se especifique el nombre del alumno). Estos valores son importantes para prcticas posteriores. Los reportes que incluyan pantallas a lnea de comandos debern incluir este nombre. Incluir esta pantalla en el reporte. En caso de contar con un sistema operativo previamente instalado, es posible dejar los valores del usuario existente, solo se deber indicar en el reporte que ya se contaba con una cuenta de usuario.
1.6. INICIANDO CON UBUNTU Notas finales antes de iniciar.
Al terminar el proceso de instalacin, el sistema solicitar reiniciar el equipo para comenzar a utilizar el sistema operativo. Presionar reiniciar.
Ntese que en el caso de una instalacin nativa en la que ya se contaba con un sistema operativo como Windows, el proceso de instalacin crea de manera automtica un men haciendo uso de una herramienta llamada grub el cual aparece durante unos segundos para seleccionar el sistema operativo a ejecutar. Por default, el primer sistema operativo que aparece en el men es el que se ejecuta si no se realiza seleccin alguna.
Al reiniciar se presentar la pantalla de inicio en la que se deber proporcionar login y password
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 12 de 28
Finalmente, al proporcionar el password, se deber observar una pantalla como la siguiente, con la cual se concluye el proceso de instalacin.
La apariencia del sistema puede ser cambiada y configurada con base a sus preferencias.
1.7. CONFIGURACIN ADICIONAL DE VIRTUALBOX .
Si la instalacin es nativa, pasar a la seccin 1.8.
Existen mltiples opciones para configurar VirtualBox. En esta seccin se muestran solo algunas, las ms importantes. Una de ellas es la ampliacin de la pantalla. Por default la pantalla que se muestra es demasiado pequea e incmoda para trabajar.
1. Instalacin del archivo de extensiones Oracle_VM_VirtualBox_Extension_Pack Este archivo se emplea para instalar algunas capacidades adicionales para VirtualBox, por ejemplo, el soporte para leer memorias USB desde la mquina virtual. Para instalar este paquete de extensiones, dar doble clic sobre el archivo, o clic derecho -> ejecutar con virtualBox, seguir las instrucciones en pantalla.
2. Instalacin de Guest Additions. Con la maquina husped corriendo, seleccionar el en men de virtual box dispositivos -> Instalar <<Guest additions>>. Observar que al seleccionar esta opcin, en la maquina husped muestra un CD el cual ser empleado para instalar estas caractersticas adicionales.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 13 de 28 De forma automtica aparecer un dialogo como el que se muestra en la figura. En caso de no aparecer, dar clic derecho sobre el cono del CD, seleccionar la opcin Abrir.
3. Dar clic en Ejecutar como se muestra en la pantalla.
4. Aparecer una ventana solicitando permisos de administrador, proporcionar el password del usuario configurado en pasos anteriores (usuario con privilegios de administrador). 5. Al terminar con el proceso de instalacin, reiniciar el sistema (mquina virtual) para que los cambios tomen efecto. 6. Antes de iniciar la mquina nuevamente, se recomienda configurar adecuadamente el nmero de procesadores que emplear la mquina virtual para mejorar su desempeo. Para ello, seleccionar la mquina virtual, en el men Sistema, pestaa procesador, capturar el nmero de procesadores o ncleos con los que cuente la mquina husped. Por ejemplo, en la imagen se han capturado 2 procesadores. Habilitar la opcin PAE/NX.
7. Iniciar la mquina virtual. Observar el cambio, maximizar la ventana de VirtualBox, seleccionar la opcin ver-> Auto dimensionar la pantalla del invitado observar que ahora la ventana de Ubuntu se ajusta al tamao completo de la pantalla.
8. Lectura de memorias USBs y del CD desde la mquina virtual. De requerirse, es posible leer el contenido de estos dispositivos desde la mquina virtual. Para realizar esta actividad, seguir las siguientes instrucciones: Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 14 de 28 Conectar la memoria USB o introducir el CD que se desea leer. Verificar que este sea reconocido primero por la maquina anfitriona. Posteriormente, para el caso de la memoria USB, dentro del men de VirtualBox (con la mquina virtual en ejecucin) seleccionar Dispositivos ->Dispositivos USB. En este ltimo men aparecern los nombres o etiquetas de los dispositivos USB conectados a la maquina anfitriona. Seleccionar el correspondiente. Por ejemplo, en la sig. Figura se muestra el nombre de una memoria USB HP.
Al seleccionarla, esta dejar de estar disponible en la maquina anfitriona y estar disponible en la virtual. Para liberar la USB, primero se debe desmontar o extraer de la mquina virtual (haciendo clic derecho en icono de la USB que aparecer en el escritorio), y posteriormente, hacer clic nuevamente en Dispositivos ->Dispositivos USB-> para desmarcar la seleccin del dispositivo. Con esta accin, ahora la memoria USB estar disponible en la maquina anfitriona solamente. Para el caso del CD se aplica el mismo procedimiento, seleccionando Dispositivos- >Dispositivos CD/DVD.
1.8. PASOS PREVIOS PARA INSTALAR POSTGRESQL.
1.8.1. Actualizacin de software Antes de comenzar con la instalacin es recomendable que el sistema operativo este actualizado. Por lo general la maquina hace uso de la configuracin de red e internet de la maquina anfitriona (en caso de maquina virtual). Se requiere estar conectado a internet para continuar.
1. Hacer clic en el botn de inicio del sistema (esquina superior izquierda), escribir actualizacin de software. Seleccionar la aplicacin que aparece como se muestra en la figura. Seguir las instrucciones en pantalla. Esta operacin puede durar varios minutos.
2. Reiniciar para que los cambios tomen efecto.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 15 de 28
1.8.2. Instalacin de gnome-panel
En caso de tener un desempeo bajo al momento de interactuar con la interfaz grfica de Ubuntu, en especial por tratarse de una instalacin con maquina virtual, se recomienda cambiar la interfaz por default de Ubuntu: Unity. Para ello, se deber instalar la interfaz clsica de Gnome. Para realizar lo anterior, abrir una trminal (Ctrl +Alt + t), y ejecutar la siguiente instruccin:
sudo apt-get install gnome-panel
Posterior a su instalacin, reiniciar o cerrar sesin. Al regresar, aparecern habilitadas las opciones para cambiar la interfaz. Seleccionar GNOME Classic (No effects).
1.8.3. Captura de pantallas En las siguientes secciones, se solicitar la captura de pantallas las cuales debern incluirse en el reporte. Se recomienda seguir los siguientes puntos para realizar una captura fcil y rpida: Adicional a la tecla Imp Pant, Ubuntu cuenta con una aplicacin llamada Capturar pantalla, que permite capturar parcial o totalmente la pantalla. Se recomienda su empleo por las distintas opciones que ofrece. Para abrirla, en el men de inicio (Unity) escribir capturar pantalla, o seleccionar Aplicaciones ->Accesorios ->Capturar pantalla en el men de GNOME.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 16 de 28 Captura de la terminal con fondo claro. til para ahorrar tinta o toner al imprimir el reporte. Para cambiar el color del fondo, seleccionar dentro del men de la terminal Editar -> Preferencias del perfil, seleccionar la pestaa Color. Cambiar el fondo de la terminal.
1.9. INSTALACIN DE POSTGRESQL.
1. Abrir una terminal haciendo clic en el icono de bsqueda (esquina superior izquierda). En el campo de bsqueda escribir teminal, o adicionalmente, se puede emplear la combinacin de teclas Ctrl +Alt + t
En algunos casos es necesario ejecutar las instrucciones como administrador (root). Para ello, se pueden emplear 2 tcnicas: Anteponiendo el comando sudo antes de la instruccin. Esto permitir ejecutar solo esa instruccin en modo de administrador, se deber especificar para cada instruccin que requiera permisos de root. Escribiendo el comando sudo su Esta instruccin cambiar la sesin del usuario actual en la terminal al usuario root (notar el cambio del cursor a #). Con esta modalidad no es necesario escribir el comando sudo en cada instruccin. Solo tener cuidado de no ejecutar instrucciones que no requieren ser ejecutadas por el usuario root. Para salir del modo root, ejecutar el comando exit.
2. Compilando PostgreSQL.
La instalacin se realizar compilando el cdigo fuente de postgreSQL, no se emplearn los paquetes (.deb). Antes de iniciar el proceso de compilacin, se debern instalar las siguientes libreras requeridas. Ejecutar las siguientes instrucciones:
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 17 de 28 3. Descomprimir el archivo .tar.gz que contiene el cdigo fuente de postgreSQL en cualquier directorio, por ejemplo, en el escritorio.
tar xvf postgresql-X.X.X.tar.gz
4. Cambiarse al directorio generado, y ejecutar:
./configure --prefix=/opt/postgresql-X.X.X/pgsql
Donde X.X.X corresponde al nmero de versin de postgreSQL. Por ejemplo 9.3.0
La instruccin anterior, verifica que el sistema cuente con todo lo necesario para poder compilar. El valor de --prefix, indica el directorio donde se instalar el software.
5. Ejecutar la siguiente instruccin para comenzar el proceso de compilacin. Nota: si la instruccin anterior genera error alguno, no se podr continuar con el proceso de instalacin, se deber revisar el error, corregir y reintentar. make
Al final del proceso de compilacin, se muestran mensajes similares a los de la siguiente imagen. Incluir en el reporte una imagen similar (pequeo extracto del final de la salida).
6. Si todo va bien, sin errores, ejecutar la siguiente instruccin como root, para instalar el software en la ruta indicada: sudo make install
7. Creacin del usuario postgres (usuario del sistema operativo) PostgreSQL requiere de un usuario postgres de sistema operativo, el cual ser designado como dueo de todas las bases de datos que se generen. Ejecutar las siguientes instrucciones para crear a este usuario:
sudo mkdir /opt/postgresql-X.X.X/pgsql/data (Reemplazar X.X.X por la versin correspondiente en todas las instrucciones que lo requiera).
Observar que el comando anterior crea un directorio data dentro del directorio donde se instal postgreSQL. En este directorio se guardar toda la informacin y archivos de configuracin de las bases de datos que se crearn. Ejecutar las siguientes instrucciones:
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 18 de 28 Ejecutar la siguiente instruccin para asignarle un password al usuario postgres (se recomienda el valor postgres para efectos del curso). sudo passwd postgres
8. Para tener disponibles los comandos de postgreSQL en la variable de entorno $PATH, se deber editar el archivo /etc/bash.bashrc , al final del archivo agregar la siguiente lnea:
sudo nano /etc/bash.bashrc
Agregar estas lneas al final: #Lnea agregada para postgreSQL export PATH=$PATH:/opt/postgresql-X.X.X/pgsql/bin
Guardar el archivo, y salir del editor (ctrl X). Para verificar, cerrar la terminal, abrir una nueva (o en su defecto ejecutar source /etc/bash.bashrc para actualizar los cambios), ejecutar la instruccin echo $PATH. En la salida de dicho comando se deber apreciar la ruta configurada anteriormente.
9. Juego de caracteres
Por default todas las bases de datos creadas en Linux con PostgreSQL emplean como juego de caracteres UTF-8, el cual es el juego de caracteres por default de Linux. Sin embargo, en prcticas posteriores se realizar la importacin de datos en un juego de caracteres ISO-8859-1, que contiene acentos, , etc. Para evitar que se guarden caracteres extraos debido al juego de caracteres empleados, se debern ejecutar las siguientes instrucciones para poder crear bases de datos con ISO-8859-1:
Editar el archivo local: sudo nano /var/lib/locales/supported.d/local
agregar la lnea al final del archivo: es_MX ISO-8859-1
Incluir en el reporte el contenido del archivo modificado.
Ejecutar la siguiente instruccin para agregar el juego de caracteres al sistema: sudo dpkg-reconfigure locales
Para verificar que se agreg correctamente, ejecutar la instruccin locale a, deber aparecer dentro de la lista el valor es_MX.iso88591
1.10. INICIALIZAR REA DE ALMACENAMIENTO, INICIANDO LA INSTANCIA .
Antes de realizar cualquier accin sobre la base de datos, es necesario inicializar el rea de almacenamiento donde caern todos los objetos que se crearn (directorio data creado anteriormente). En trminos de postgreSQL, a esta rea se le conoce como Database Cluster.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 19 de 28 Un cluster es una coleccin de bases de datos que son administradas por una instancia simple que se ejecuta en un servidor. Una vez que el cluster es creado, se generan por default las siguientes bases de datos: postgres (no confundir con los nombres de usuario). template1 (como su nombre lo indica, se emplea como template o plantilla para crear otras bases de datos). 1. Inicializar el cluster. Ejecutar la siguiente instruccin estando como usuario postgres (usuario de sistema operativo)
su -l postgres initdb --encoding LATIN1 --locale es_MX.iso88591 -D /opt/postgresql-X.X.X/pgsql/data/
Observar que se inicializa el cluster empleando el directorio data creado anteriormente. Incluir en el reporte la salida de este comando.
Una vez ejecutada la instruccin, cambiarse al directorio data, ejecuta la instruccin ls l , incluir en el reporte la salida de este comando.
2. Creacin de los archivos de log. Es importante tener presente donde se guardarn los archivos de log que genera PostgreSQL , en caso de generarse algn error, estos archivos pueden ser de gran utilidad. Ejecutar la siguiente instruccin estando en sesin del usuario postgres:
mkdir /home/postgres/logs
3. Inciando la instancia. Ejecutar la siguiente instruccin para levantar la instancia (estando en sesin del usuario postgres):
La opcin D indica el directorio del cluster inicializado, -l indica la ubicacin del archivo de log. Investigar el significado de la ultima parte del comando 2>&1 & , incluir en el reporte la explicacin. Para verificar que la instancia esta arriba ejecutar ps -ef | grep postgres, observar la existencia de varios procesos del sistema operativo que se crean para el correcto funcionamiento de la instancia. incluir en el reporte la salida de este comando.
Para detener la instancia, ejecutar: pg_ctl -D /opt/postgresql-X.X.X/pgsql/data stop
1.11. INSTALACIN DE PGADMIN
PgAdmin es una herramienta que permitir administrar la base de datos de forma grfica. Se emplear en el curso para administrar las bases de datos espaciales. Para instalarlo, ejecutar las siguientes instrucciones (no emplear al usuario postgres para ejecutar estas instrucciones):
sudo add-apt-repository ppa:pitti/postgresql Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 20 de 28 sudo apt-get update sudo apt-get install pgadmin3
La primera y segunda instruccin agregan un repositorio al sistema (personal Package Archives). Un PPA es un sitio que contiene paquetes compilados por terceras personas y que ofrecen generalmente versiones mas recientes de una aplicacin con respecto a los repositorios de paquetes oficiales.
1.12. INSTALACIN DE POSTGIS
El siguiente paso de esta prctica es la instalacin de la extensin espacial de PostgreSQL llamada PostGIS. De forma similar a PostgreSQL, la instalacin se realizar a partir del cdigo fuente. Ejecutar las siguientes instrucciones: 1. Instalar libreras requeridas: sudo apt-get -y install build-essential sudo apt-get -y install libgeos-c1 sudo apt-get -y install libgeos-dev sudo apt-get -y install libxml2-dev sudo apt-get -y install libproj-dev sudo apt-get -y install libjson0-dev sudo apt-get -y install xsltproc sudo apt-get -y install docbook-xsl sudo apt-get -y install docbook-mathml sudo apt-get -y install libgdal1-dev
2. Extraer el contenido del archivo que contiene el cdigo fuente de PostGIS en cualquier directorio, por ejemplo en el escritorio. 3. Cambiarse al directorio creado, ejecutar las siguientes instrucciones para configurar, compilar e instalar: sudo mkdir /opt/postgis-X.X.X ./configure --with-pgconfig=/opt/postgresql-X.X.X/pgsql/bin/pg_config make sudo make install sudo ldconfig sudo make comments-install
Existe un archivo que se crea el cual causa conflictos con el comando psql de PostgreSQL. Para eliminar este conflicto se deber renombrar. Para ello, ejecutar la siguiente instruccin. Si no existe el archivo, omitir este paso.
sudo mv /usr/bin/psql /usr/bin/psql-old
1.13. EXPLORANDO LA BASE DE DATOS POSTGRES Como se mencion anteriormente, por default, el cluster incluye una base de datos llamada postgres. Una vez que se ha levantado la instancia, el siguiente paso es entrar a la base de datos postgres para efectos de prueba. 1. Entrando a la base. Para ello, se emplea el comando psql el cual tiene la siguiente sintaxis: Ojo, aqu se debe sustituir con la versin de postgreSQL Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 21 de 28 psql [DBNAME [USERNAME]]
Si se omite el nombre de la base se toma como nombre, el username con el que se invoca al comando psql. Lo mismo ocurre con el valor de USERNAME. Por lo tanto, estando como usuario postgres a nivel de sistema operativo, se puede escribir esto: psql Es posible invocar al comando psql desde otro usuario, por ejemplo: psql postgres postgres
Aparecer una salida como la siguiente: postgres@lap-xps:~$ psql psql (X.X.X) Type "help" for help.
postgres=#
Observar el smbolo =# , el cual indica que estamos dentro de la base de datos postgres como super usuario.
2. Desplegar la hora y la versin con postgres: Ejecutar los siguientes comandos, incluir la salida en el reporte. postgres=# select now(); postgres=# select version();
Para salir de la lnea de comandos, escribimos \q
1.14. CONFIGURANDO SEGURIDAD EN POSTGRES Antes de iniciar con la configuracin de la seguridad, es necesario asignar un password al usuario postgres que se genera al crear el cluster (No confundirse, este usuario es un usuario interno de PostgreSQL, el creado anteriormente es un usuario a nivel de sistema operativo). Para realizar esta actividad, ejecutar la siguiente instruccin estando dentro de la base de datos postgres (observar el cursor):
postgres=# alter user postgres with encrypted password 'postgres';
Por default, la base de datos no cuenta con restriccin alguna para acceder a cualquiera de las bases de datos del cluster. Por tal razn, fue posible ejecutar los comandos de la seccin anterior sin emplear algn mtodo de autenticacin. El primer paso a realizar es proporcionar un medio de autenticacin al usuario postgres. Para realizar la configuracin de accesos se deber editar el archivo pg_hba.conf que se encuentra en el directorio data. Es decir, se deber ejecutar el siguiente comando (como usuario postgres)
nano /opt/postgresql-X.X.X/pgsql/data/pg_hba.conf
1.14.1. Configurando acceso a travs de lnea de comandos empleando la identidad del sistema operativo.
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 22 de 28 Significa que el usuario postgres podr tener acceso a la base de datos siempre y cuando el usuario que intente entrar haya iniciado sesin a nivel de sistema operativo con el usuario postgres. Para realizar lo anterior, editar el archivo arriba mencionado, y verificar que la siguiente lnea coincida con lo siguiente (casi al final del archivo):
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only local all postgres ident
local: se refiere a conexiones realizadas desde el servidor empleando una terminal. all: El usuario podr tener acceso a todas las bases de datos. postgres: Solo el usuario llamado postgres podr tener acceso empleando esta configuracin. ident: Verifica que el usuario que intenta conectarse a la base de datos, haya entrado a sesin a nivel de sistema operativo con un usuario llamado postgres. Si esto se cumple, se permite el acceso.
Importante: Asegurarse de que las lneas restantes del archivo comiencen con #, es decir, agregar # al inicio de la lnea para comentarlas.
Para comprobar esta configuracin: 3. guardar cambios en el archivo (se recomienda hacer un respaldo) 4. Reiniciar la instancia. 5. Intentar ejecutar el siguiente comando estando en sesin del usuario postgres: psql En este caso se deber tener acceso a la base sin problema alguno.
6. Cambiarse de sesin a nivel de sistema operativo empleando un usuario diferente a postgres. 7. Ejecutar psql postgres postgres 8. El sistema deber mandar un mensaje de error indicando que no es posible conectarse, esto debido a que el usuario en sesin no es el usuario postgres. Incluir en el reporte la salida de la pantalla que muestre estos resultados.
1.14.2. Autenticacin local para todos los usuarios empleando password encriptado.
Para permitir que cualquier usuario pueda conectarse a la base de datos a lnea de comandos empleando su password, se debern agregar las siguientes lneas del archivo para que quede de la siguiente forma:
#Se agrega acceso a todos los usuarios a linea de comando local all all md5
Como se puede observar, en esta configuracin, todos los usuarios podrn entrar a la base de forma local empleando el mtodo md5, que significa: acceso empleando un password encriptado.
1.14.3. Autenticacin para conexiones TCP/IP
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 23 de 28 Se requiere agregar esta ultima configuracin para permitir que todos los usuarios puedan conectarse de forma adicional a travs de una conexin TCP/IP, en particular a partir de pgAdmin (mas adelante se ver su uso). Para ello, editar el archivo, (no se requiere agregar lneas nuevas) verificar que coincidan con lo siguiente: # IPv4 local connections: host all all 127.0.0.1/32 md5
Como se puede observar, en esta configuracin todos los usuarios podrn conectarse va TCP/IP, nicamente desde la misma maquina donde esta el servidor de la base de datos (127.0.0.1/32 localhost). Si se desea conectarse desde otra IP, se debern especificar en este archivo. Al terminar de configurar la seguridad, reiniciar la base de datos para que los cambios tengan efecto.
1.15. CREACIN DE UNA BASE DE DATOS CON EXTENSIN ESPACIAL
El siguiente paso es crear una base de datos con extensin espacial empleando la instalacin de PostGIS realizada anteriormente. Ejecutar los siguientes comandos.
1. Estando conectado a la base como usuario postgres, ejecutar la siguiente instruccin para crear al usuario que ser el dueo de nuestra base de datos. postgres=# create user espaciales with encrypted password 'espaciales';
2. Crear una base de datos espacial llamada espaciales postgres=# create database espaciales owner espaciales;
3. Asignar al usuario espaciales como dueo del esquema public de la nueva base de datos.
postgres=# \c espaciales You are now connected to database "espaciales" as user "postgres".
espaciales=# alter schema public owner to espaciales;
El comando \c permite cambiarse a otra base de datos estando en sesin como usuario postgres. 4. Agregar la extensin espacial a la base de datos espaciales:
Incluir en el reporte la salida de estos 2 comandos (pequeo extracto).
5. Para acceder a nuestra nueva base de datos espacial empleando el usuario espaciales, ejecutar: espaciales=# \q psql espaciales espaciales
6. Finalmente, para verificar que nuestra instalacin es correcta, ejecutar las siguientes instrucciones, e incluir la salida en el reporte. Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 24 de 28
1.16. VISUALIZACIN DE LA BASE ESPACIAL EMPLEANDO PGADMIN
Para trabajar de forma grfica con nuestra nueva base de datos, emplearemos pgAdmin: 1. Presionar la tecla win o hacer clic en el icono de la esquina superior izquierda, y escribir pgAdmin.
2. Aparecer una pantalla similar a la siguiente.
3. Hacer clic en el icono de conexin para configurar el acceso a nuestra base de datos proporcionando los datos como se muestra en la imagen. Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 25 de 28
4. Observar los esquemas y elementos de la nueva base de datos:
5. En postgreSQL, por default se crea un schema llamado public que contiene todos los objetos tablas, vistas, y funciones, en especial las funciones vistas en clase que nos permiten trabajar con objetos espaciales. Observar la siguiente imagen, se ha seleccionado public -> functions ->rea o st_area
Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 26 de 28
Observar la descripcin del lado derecho, se muestra la forma en la que se define una funcin en nuestra base. La ruta $libdir/postgis-X.X, indica la librera que contiene la programacin de la funcin.
Incluir en el reporte una imagen similar a la anterior, pero seleccionando la funcin distance.
1.17. CREACIN DE TABLAS CON GEOMETRAS
Suponer que se desea guardar la informacin del siguiente objeto geogrfico: Pais(pas_id, nombre, capital,geometra): P1=(1,ITALIA,ROMA,geo), donde geo esta dada por la siguiente figura: 0 X Y
La representacin en modo texto de esta figura es: POLYGON((1 1,2 1,2 2,4 2,4 1,8 1,8 4,3 4,3 7,1 7,1 1))
Para realizar la insercin de este objeto en la base de datos, se deber crear una tabla de forma normal y posteriormente agregar el ADT que en este caso es un POLYGON:
create table pais( Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 27 de 28 pais_id numeric(10,0) constraint pais_fk primary key, nombre varchar(100) not null, capital varchar(100) not null );
Para ejecutar sentencias SQL con pgAdmin:
1. Seleccionar el icono de la base de datos (lado izquierdo) 2. Hacer clic en el icono SQL. Esta accin abrir un editor en el cual podremos ejecutar cualquier tipo de sentencia SQL.
Posteriormente, agregamos el ADT empleando la funcin addGeometryColumn, la cual acepta los siguientes parmetros:
AddGeometryColumn( <schema_name>, <table_name>, <column_name>, <srid>, <type>, <dimension> ) Schema_name: en caso de que no se especifica, el valor del esquema se asigna a public. Table_name: Nombre de la tabla a la que se le agregar el ADT. Column_name: Nombre de la columna que representa al ADT. SRID: Identificador del sistema de referencia asociado al ADT. Su valor corresponde con algn sistema registrado en la tabla SPATIAL_REF_SYS. Para efectos del curso, le asignarmos -1 (sistema de referencia indefinido). Type: el tipo de ADT, corresponde con los nombres de los ADTs empleados para realizar su representacin en formato WKT Dimension: La dimensin del sistema de referencia. Para efectos del curso es 2, es decir, un sistema de coordenadas X,Y (no confundir con la dimensin del objeto espacial).
select addGeometryColumn('public','pais','geo',-1,'POLYGON',2); Prctica 2 Bases de Datos Espaciales. Ing. Jorge A. Rodrguez Campos 2014 28 de 28
Para realizar la insercin del registro nos apoyamos de la funcin st_geomFromText:
Para mostrar el registro creado empleamos la funcin asText select pais_id,nombre,capital, st_asText(geo) as geo from pais;
Para verificar si la geometra que agregamos es vlida, empleamos la funcin st_isValid select pais_id,nombre,capital, st_asText(geo) as geo, st_isValid(geo) as valida from pais;
Ejecutar estas 2 instrucciones e incluir la salida en el reporte.
Finalmente: 3. Crear una sentencia SQL que calcule el rea de la figura anterior, incluir sentencia y resultado. 4. Crear una sentencia SQL que calcule el permetro de la figura anterior, incluir sentencia y resultado. 5. Dentro del esquema public, observar que existen una tabla llamada: spatial_ref_sys . Observar su estructura y los datos que contienen, Cul es su finalidad?
1.18. CONTENIDO DEL REPORTE Introduccin Objetivo Desarrollo de la prctica. Realizar todos los pasos necesarios. Incluir solo los puntos que se indican en el reporte. Opcionalmente se pueden incluir algunas pantallas. Conclusiones, comentarios, recomendaciones. Bibliografa.