verificación google

martes, 26 de junio de 2018

Instalar SQL Developer 18.1 en Linux

Esta entrada corresponde a una actualización de la entrada correspondiente a Instalar SQL Developer 4.0.1.14.18 en Ubuntu 14.04, está muy anticuada y ya era hora de actualizarla.

En la anterior entrada fue una instalación específica para Ubuntu por ser el sistema operativo que utilizaba en aquel momento. Ahora he vuelto a Debian y por eso esta entrada no es específica para Ubuntu, no obstante debería funcionar en casi cualquier GNU/Linux.

SQL Developer me sigue pareciendo una solución muy cómoda y rápida de acceder a los objetos de una instancia Oracle BD. Es una herramienta gráfica gratuita que simplifica las tareas de desarrollo de bases de datos. Puede explorar objetos de base de datos, ejecutar sentencias de SQL y script SQL, editar y depurar declaraciones de PL/SQL, manipular y exportar datos, y ver y crear informes. Puede conectarse a bases de datos Oracle, y puede conectarse a bases de datos seleccionadas de terceros (que no sean de Oracle), ver metadatos y datos, y migrar estas bases de datos a Oracle.

Requisitos para la instalación de SQL Developer 18.1

Tanto para descargar SQL Developer como JDK necesitaréis un usuario de Oracle que podréis obtener rápidamente si os registráis en www.oracle.com

Descargar SQL Developer 18.1

En primer lugar hay que descargar el zip correspondiente a SQL Developer 18.1 para otras plataformas, que encontrarás al final del siguiente enlace.

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

sqldeveloper-18.1.0.095.1630-no-jre.zip

Para descomprimir ejecutar los siguientes comandos:
unzip sqldeveloper-18.1.0.095.1630-no-jre.zip
mv sqldeveloper /opt/sqldeveloper-18.1

Descargar jdk8 

Por otro lado necesitamos jdk8, podemos descargarlo de la página oficial en el siguiente enlace.

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Yo prefiero instalar desde tgz para así utilizar en cada momento el jdk que necesite, en mi caso he descargado jdk-8u171-linux-x64.tar.gz, para descomprimirlo simplemente ejecuta el siguiente comando:
tar xvzf jdk-8u171-linux-x64.tar.gz -C /opt/
De esta forma tendremos disponible en /opt/jdk1.8.0_171/ la jdk8 lista para funcionar.

Ejecutar SQL Developer 18.1

Tras intentar ejecutar SQL Developer 18.1 si no tenéis configurado el JDK8 por defecto como vuestro JDK por defecto obtendréis el siente error.
/opt/sqldeveloper-18.1/sqldeveloper.sh
 Oracle SQL Developer
 Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
Found ../../jdk/bin/java to run this product, and the major version of this Java is 1.7.
The mandatory minimum major version to run this product is 1.8.
This product cannot run with this Java.
Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /home/jmruiz/.sqldeveloper/18.1.0/product.conf
El problema es que SQL Developer 18.1 necesita de JDK8 y tenemos configurado JDK7 para utilizar por defecto en nuestro sistema. Pero SQL Developer está preparado (como vimos en la entrada anterior) para funcionar con un JDK definido en su fichero de configuración.

Para realizar esta configuración editaremos el fichero /home/<usuario>/.sqldeveloper/18.1.0/product.conf y añadiremos la siguiente linea:
SetJavaHome /opt/jdk1.8.0_171
De esta forma SQL Developer sabrá cuál es la ubicación del JDK necesario para su inicio.

Y ahora sí al ejecutar /opt/sqldeveloper-18.1/sqldeveloper.sh podremos ver la pantalla de carga...


Y tras unos instantes, podremos comenzar a trabajar con SQL Developer 18.1


En la entrada anterior hice referencia a un error para GNOME que lamentablemente no puedo verificar si sucede en esta versión porque me he pasado a XFCE que me parece un entorno de escritorio mucho más rápido y estable.

Para terminar os dejo un enlace a la guía de usuario de Oracle SQL Developer 18.1 en PDF.

martes, 19 de junio de 2018

Buscar y reemplazar texto en bash

En muchas ocasiones me he encontrado con la necesidad de hacer un buscar reemplazar en el bash de linux. Hay muchas opciones para hacerlo, comentaré aquí algunas de las que yo utilizo por si a alguien la es de utilidad.

Utilizar editor nano desde bash para buscar y reemplazar un texto

La primera opción es utilizar un editor de texto cualquiera para hacer un buscar y reemplazar, yo utilizo nano por lo fácil y rápido que es. Te permite abrir fichero de texto muy pesados sin cargar demasiado tu equipo.

Una vez estas en nano simplemente presionas la combinación de teclas ctrl + w para buscar y después ctrl + r para reemplazar, esto te pedirá primero el texto a buscar, después el texto a reemplazar y para terminar preguntará si quieres reemplazar todas las coincidencias o únicamente la primera.





Una buena opción; crear un script /bin/bash para buscar y reemplazar un texto

Esta opción es muy útil cuando necesitamos hacer un buscar y reemplazar automatizado por ejemplo en un fichero de configuración. Yo lo utilizo en ficheros de configuración de apache para virtualhost, tengo una plantilla y cuando tengo que crear un nuevo virtualhost lo creo con un script automatizado de este estilo.
#!/bin/bash
primeraCadena="Amo con locura a mi hijo y a mi mujer."
segundaCadena="familia"
echo "${primeraCadena/hijo y a mi mujer/$segundaCadena}" 
Este script buscará en la cadena base "Amo con locura a mi hijo y a mi mujer." el texto "hijo y a mi mujer" y lo reemplazará por "familia", para después imprimir el resultado "Amo con locura a mi familia".

Esto puede ser útil pero cuando queremos hacer un buscar reemplazar en un fichero de configuración normalmente tenemos el mismo nombre en muchos sitios que tenemos que reemplazar (ficheros de configuración, ruta de directorios, nombre de dominios...). Para esto dejo aquí este pequeños script:
#!/bin/bash
apache=`cat apache.conf`
echo "${apache//instancia/$1}"
En primer lugar cargamos el fichero apache.conf en una variable, hay que destacar que las comillas utilizas son las comillas de ejecución y no las comillas de cadena de texto.

Después procedemos a reemplazar todas las palabras "instancia" por el primer parámetro que le pasamos en la ejecución del fichero.

El script tendríamos que ejecutarlo de la siguiente forma:
./buscar_reemplazar.bash nuevaInstancia
Su ejecución nos devolverá el contenido del fichero que necesitaremos para apache reemplazando la palabra "instancia" del fichero plantilla por "nuevaInstancia".

La opción más rápida; utiliza el comando sed para buscar y reemplazar textos

El comando sed es ampliamente utilizado en linux y lo puedes utilizar para escribir de forma sencilla y rápida una linea de comando para hacer un buscar y reemplazar en un fichero de texto.
sed -i 's/antigua/nueva/g' prueba.txt
Directamente con este simple comando buscará en el fichero prueba.txt todas las coincidencias con "antigua" y las reemplazará por "nueva". El resultado quedará guardado en el mismo fichero gracias al modificador " -i ".

Si prescindimos de este modificador obtendremos el resultado por la salida estandar de la consola. Y podemos desviar éste resultado a un fichero.
sed 's/antigua/nueva/g' prueba.txt > resultado.txt