tutoriales – El Blog de Tomas http://tomasdel.com Tue, 28 Feb 2017 00:09:35 +0000 es-ES hourly 1 https://wordpress.org/?v=4.9.4 Post instalación Ubuntu 14.04 http://tomasdel.com/338 http://tomasdel.com/338#respond Mon, 20 Oct 2014 22:13:29 +0000 http://tomasdel.com/?p=338 Por diversos motivos, tuve que reinstalar Ubuntu 14.04 en mi notebook. Siempre me ocurre que cada vez que necesito instalar de cero o reinstalar, tengo que recordar o anotar previamente cuales son los programas y configuraciones que tenia en la vieja instalación.

Así que la intención del post este es tener una referencia o machete personal en linea para todo lo que tiene que ver con la post instalación de Ubuntu, y por ahí a alguno le sirve.

1 – Agregar Repositorios adicionales

Algunos repositorios de terceros no vienen agregados de forma predeterminada por cuestiones legales, sin embargo, suele tener software adicional o mas actualizado que los repositorios oficiales.

La forma mas sencilla de activarlo es buscando la aplicación “Software & Updates” o “Software y actualizaciones”, y una vez allí, visitar las pestañas Software de Ubuntu (Activar main, universe, restricted y multiverse, Código fuente es opcional y yo no lo activo), Otro Software (Socios de Canonical e Independientes, de nuevo puede activarse opcionalmente los referentes al código fuente, y yo no lo hago) y Actualizaciones (security, updates, proposed y backports).

Una vez realizado lo anterior, es recomendable realizar una actualización general:

sudo apt-get update && sudo apt-get upgrade

Quiero agregar que esto lo hago en mi notebook personal que es de uso “Desktop”, para el caso de un servidor es posible que existan otras precauciones y debería consultarse algún tipo de literatura especializada.

2 – Software adicional

Lo siguiente que hago es instalar el software que utilizo de forma diaria o rutinaria para mis tareas personales y laborales, algunos de estos programas se consiguen desde los repositorios oficiales, otros los descargo desde las webs oficiales. Cada uno de estos tipos de software sera comentado de forma separada.

2.1 – Software desde los repositorios oficiales

Cabe aclarar que el listado siguiente es un listado de cosas que a mi me sirven, así que es posible que muchas de las cosas que aparecen ustedes quieran obviarlas.

build-essential
aptitude
synaptic
htop
nmap
mc
gummi
guake
xchat
subversion
git
mercurial
postgresql
php5
php5-pgsql
pgadmin3
apache2
audacious
shutter
gparted
ipython
gimp
meld
openjdk-7-jdk
adobe-flashplugin
wine
ssh
vlc
aria2

2.2 – Software que descargo desde las paginas oficiales

El siguiente listado es de aquellos programas que descargo desde sus respectivas paginas oficiales. Dejo los nombres de los programas, con los links a las paginas de descargas, y algunos comentarios en los casos que lo requieran.

Netbeans: Descarga un archivo de extensión .sh, que debe ser ejecutado desde la terminal, previamente agregándole permisos de ejecución (chmod +x archivo.sh).
Sublime3
Mendeley
Chrome
Geany: En este caso descargo el código fuente en un archivo .tar.gz, lo compilo e instalo (./configure, make y sudo make install). El paso del configure siempre falla porque necesita dependencias, si es el caso, instalar libgtk2.0-dev e intltool.
Virtualbox
Teamviewer: En este caso, a pesar de instalar una versión de SO de 64bits, la versión de TV para la misma arquitectura siempre falla en la instalación. Por ello, la solución fácil es bajar la versión de 32bits sin importar que arquitectura se uso en el SO. A mi me anduvo siempre sin problemas.
Skype: Tiene sus trucos, ver mas abajo.
Dropbox
Vagrant

2.2.3 – Skype

Al intentar instalar Skype, mediante el paquete .deb descargado desde el sitio oficial, puede ocurrir que se encuentren con un error como el siguiente:

 skype:i386 : Depends: libqt4-dbus:i386 (>= 4:4.5.3) but it is not going to be installed.
              Depends: libqt4-network:i386 (>= 4:4.8.0) but it is not going to be installed.
              Depends: libqt4-xml:i386 (>= 4:4.5.3) but it is not going to be installed.
              Depends: libqtcore4:i386 (>= 4:4.7.0~beta1) but it is not going to be installed.
              Depends: libqtgui4:i386 (>= 4:4.8.0) but it is not going to be installed.
              Depends: libqtwebkit4:i386 (>= 2.2~2011week36) but it is not going to be installed.
              Depends: libstdc++6:i386 (>= 4.2.1) but it is not going to be installed.
              Depends: libxss1:i386 but it is not going to be installed.
              Depends: libxv1:i386 but it is not going to be installed.
              Depends: libssl1.0.0:i386 but it is not going to be installed.
              Depends: libpulse0:i386 but it is not going to be installed.
              Depends: libasound2-plugins:i386 but it is not going to be installed.

En este caso, hay que instalar las dependencias indicadas, les dejo la linea de aptitude para dicha instalación.

sudo aptitude install libqt4-dbus:i386 libqt4-network:i386 libqt4-xml:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 libstdc++6:i386 libxss1:i386 libxv1:i386 libssl1.0.0:i386 libpulse0:i386 libasound2-plugins:i386

Si en la instalación les dice que el paquete skype esta parcialmente instalado y quiere desinstalarlo, acéptenlo sin problemas, y la próxima vez que intenten instalar Skype, el error inicial no debería aparecer.

2.3 – Instalación manual de programas

2.3.1 – Si se dispone del código fuente

Lo normal cuando se disponga del código fuente de un programa, es tener que realizar los siguientes 3 pasos:

./configure
make
sudo make install

El primer paso revisa que todas las librerías que necesita el software para compilarse se encuentran en el sistema. En caso que exista un error en este paso, sera necesario buscar en la documentación del software particular que librerías necesita, o buscarlo en la Web.

El comando make compila el software, es decir, crea los binarios a partir del código fuente, que sera lo que se ejecute posteriormente en nuestro equipo.

El comando make install ubica los binarios y crea accesos directos y variables de entorno para que el software recién compilado sea utilizable desde el sistema. Como puede necesitar escribir en carpetas del sistema, es necesario ejecutarlo con permisos de root (por eso sudo adelante).

Una vez realizado el make install, la carpeta donde se realizo la compilación puede ser eliminada, pero en caso de no querer borrarla para probar o recompilar posteriormente sin necesidad de bajar el software nuevamente, recomiendo ejecutar un cuarto comando make clean, que elimina archivos intermedios utilizados durante la compilación, y que ocupan lugar en el disco y no son necesarios.

2.3.2 – Si se descargaron archivos con extensión .deb

Muchos de los programas ofrecen binarios precompilados de extension .deb, instalables en Debian/Ubuntu etc…

Para instalar dicho programas, solo es necesario ejecutar lo siguiente:

sudo dpkg -i archivo.deb

En la medida que recuerde mas tareas pos-instalación, la idea es agregarla. Si se les ocurre algún software adicional que ustedes usen, etc… los invito a compartirlo en los comentarios del blog (Les agregue redes sociales para que no tengan que hacerse ni un usuario en el sitio, no sean vagos :p ).

UPDATE: Leyendo blogs, me encontré con este post que mediante dpkg genera un archivo con la lista de paquetes instalados en un sistema (Debian, Ubuntu o derivados). Lo interesante es que de paso muestra como re instalar en el nuevo sistema los paquetes a partir del archivo generado.

]]>
http://tomasdel.com/338/feed 0
Hadoop: Introduccion, articulos e Instalación http://tomasdel.com/326 http://tomasdel.com/326#respond Mon, 13 Oct 2014 14:32:15 +0000 http://tomasdel.com/?p=326 El día miércoles 8/10/2014 en el marco de una materia me invitaron a exponer la experiencia que vengo reuniendo en lo que respecta al Big Data y a Hadoop en particular. Ya tenia preparada una diapositiva introductoria, la cual amplié y corregí de cara al curso, el cual es sobre Sistemas Distribuidos y agregue algún contenido adicional sobre como opera HDFS de forma mas detallada.

Las slides:

Por otro lado, el profesor me pidió, de la vasta documentación en el tema, 1 articulo o dos para ofrecer como bibliografia. Si bien podría haber dicho el libro de Tom White, que es la referencia en el tema, me pareció que para un curso que no es especifico de Hadoop dos artículos mas específicos podrían ser un mejor aporte. Los artículos que elegí fueron:

[DEA,2004]: Dean, J. Et. all. “MapReduce: Simplified Data Processing on Large Clusters“.  OSDI. 2004.

[SHV,2010]: Shvachko, K. Et. all. “The Hadoop Distributed File System“. IEEE. 2010.

Por ultimo, Agrego dos tutoriales que armamos con dos colegas (Esteban y Alejandro) para instalar Hadoop para desarrollo (conocida como single-node) y como cluster.

]]>
http://tomasdel.com/326/feed 0
Corrector ortográfico para español en Sublime Text 3 http://tomasdel.com/244 http://tomasdel.com/244#respond Wed, 21 May 2014 03:22:09 +0000 http://www.tomasdelvechio.com.ar/?p=244 Sublime Text 3 (ST3) es el editor de texto de moda. Lamentablemente no es libre, sin embargo yo lo estoy usando últimamente porque es muy ligero (mas que Geany para mi gusto), y tiene muchas características interesantes.

Me encontraba armando un archivo en Markdown (Para documentacion de un proyecto) y al escribir rápido, quería verificar si no se me había pasado alguna falta de ortografía grosera.

Los correctores no son infalibles, pero ayudan, entonces busque si era posible en ST3 tener un corrector, y en español (Idioma de la documentación).

Descubrí que ST3 trae un corrector incorporado (+1), pero obviamente el único idioma por defecto es el ingles (-1). Buscando, en este blog encuentro una solución para la version 2 del editor que al menos a mi me sirvió para la versión 3:

  • Ingresar a https://github.com/SublimeText/Dictionaries/
  • Descargar los siguientes archivos:
  • Crear una carpeta de nombre “Language – Spanish” y guardar los 3 archivos dentro.
  • Mover el directorio creado a la carpeta de extensiones de ST3. En mi caso, instale ST3 desde el .deb descargable del sitio oficial. Dicho paquete, ubica los archivos de usuario en $HOME/.config/sublime-text-3/Packages/, con lo cual, allí fue movido el directorio “Language – Spanish/” con los 3 archivos previamente descargados.
  • Una vez hecho esto, desde ST3 vamos al menu “View->Spell Check” para activar el corrector ortográfico, y luego a “View->Dictionary->Languaje – Spanish->Spanish”.

Una vez hecho lo anterior, pude corregir el documento en cuestión de forma similar a como se hace en cualquier Procesador de Textos.

FUENTE: http://desarrollosublimetext.wordpress.com/2012/10/22/adicionar-diccionario-en-espanol-a-sublime-text2-windows-7/

]]>
http://tomasdel.com/244/feed 0
Descargar archivos de video flash que se estan previsualizando en Firefox http://tomasdel.com/140 http://tomasdel.com/140#respond Fri, 18 Mar 2011 02:19:35 +0000 http://blog2.tomasdelvechio.com.ar/?p=140 Hasta hace un tiempo, cuando mirábamos vídeos por Youtube en Ubuntu, Debian u otro Linux, sabíamos que el archivo de extensión _flv_ respectivo se guardaba en la carpeta _/tmp_ con un nombre del tipo _FlashXXXXX_

Esto permitía que si por algún motivo deseábamos tener una copia local del vídeo, con copiar ese archivo a otra ubicación (El escritorio por ejemplo), ya lo teníamos disponible.

Desde hace unas actualizaciones (no se si de Firefox o de Linux), esto ya no se puede. El archivo se va cargando, pero si vamos a _/tmp_, no se encuentra el archivo Flash. Sin embargo, el archivo debe estar en algún lado, alojado temporalmente. Vamos a descubrir donde esta oculto.

*Lamentablemente, la única manera de lograrlo por ahora es mediante el uso de consola, hasta que alguien haga algún script que automatice el proceso.*

Abrimos una consola (Aplicaciones -> Accesorios -> Terminal en Gnome), sino _Alt+F2_ y escribimos _xterm_ (Esto ultimo funciona en cualquier entorno), y tecleamos el siguiente comando

bc. $ lsof | grep -i flash
firefox-b 2628 tomas mem REG 8,5 12110348 4531 /usr/lib/adobe-flashplugin/libflashplayer.so
plugin-co 2703 tomas mem REG 8,5 12110348 4531 /usr/lib/adobe-flashplugin/libflashplayer.so
plugin-co 2703 tomas 16u REG 8,5 9444506 33 /tmp/FlashXXi3xqiA (deleted)
plugin-co 2703 tomas 28u REG 8,5 3205796 2463 /tmp/FlashXXnGj56v (deleted)

El comando puede tardar unos minutos en responder, asi que paciencia. Las lineas que interesan son las dos ultimas:

bc. plugin-co 2703 tomas 16u REG 8,5 9444506 33 /tmp/FlashXXi3xqiA (deleted)
plugin-co 2703 tomas 28u REG 8,5 3205796 2463 /tmp/FlashXXnGj56v (deleted)

Me doy cuenta por como terminan: */tmp/FlashXXi3xqiA (deleted)* y */tmp/FlashXXnGj56v (deleted)*

Vamos a ver como obtener el primer video de estos dos.

A continuacion, resalto con asteriscos los dos datos a tener en la cabeza:

bc. plugin-co *2703* tomas *16*u REG 8,5 9444506 33 /tmp/FlashXXi3xqiA (deleted)

Lo siguiente que hacemos (con los datos anteriores en la mente):

bc. $ cp /proc/2703/fd/16 /home/tu_usuario/Escritorio/video.flv

Si vamos al Escritorio y ejecutamos el archivo *video.flv* tendremos que poder reproducir el video sin problemas.

En el caso del segundo archivo, la linea para copiarlo es:

bc. $ cp /proc/2703/fd/28 /home/tu_usuario/Escritorio/video2.flv

Realmente no se porque la complicaron, pero bueno, hecha la trampa (de ellos) hecha la ley 🙂

]]>
http://tomasdel.com/140/feed 0
Fsck, Tune2fs y reinicios http://tomasdel.com/104 http://tomasdel.com/104#comments Sun, 23 May 2010 21:27:32 +0000 http://blog2.tomasdelvechio.com.ar/?p=104 La otra vez me encontraba en el canal IRC de Ubuntu-Ar (#ubuntu-ar en Freenode), y un muchacho pide que le ayuden en lo siguiente:

El quería que el comando _fsck_ no se ejecute cada 30 reinicios del sistema, como figura por default en _Ubuntu_ (y muchas otras distros implementan la misma política) sino que lo haga, por ejemplo, una vez por mes.

Yo nunca había tenido problema, sobre todo porque en la Portátil estoy muy acostumbrado a hibernar el sistema, y los apagados/reinicios del sistema son mas bien escasos.

Pero como tenia pinta de no saber buscar demasiado en Google, y no parecía un problema tan difícil, me dispuse a ayudarlo.

“Fue bastante fácil hallar la respuesta”:http://lapipaplena.wordpress.com/fsck-y-tune2fs/, y reproduzco acá la solución que le pase, para que a alguno le sirva:

El comando a ejecutar es _tune2fs_, y a continuación vemos algunos ejemplos:

bc. # tune2fs -c 80 /dev/sda1 (cada 80 reinicios)
# tune2fs -i 2m /dev/sda1 (cada 2 meses)
# tune2fs -i 2w /dev/hda3 (cada 2 semanas)
# tune2fs -i 2d /dev/sda1 (cada 2 días)

Si queremos, por ejemplo, un mes:

bc. # tune2fs -i 1m /dev/sda1 (cada 1 mes)

o podría ser

bc. # tune2fs -i 30d /dev/sda1 (cada 30 días)

Si quisiéramos volver a la configuración por default:

bc. # tune2fs -c 30 /dev/sda1 (cada 30 reinicios)

Dos comentarios finales:

* Hay que correrlo como _root_ (observar el # al principio de cada linea)
* Hay que hacerlo una vez por cada partición que quieras que se
verifique en ese intervalo. Es decir, la política se aplica a *cada partición*, no al sistema en su conjunto.

]]>
http://tomasdel.com/104/feed 1
Error al instalar Symfony en Debian Sid http://tomasdel.com/108 http://tomasdel.com/108#respond Sun, 21 Feb 2010 19:46:03 +0000 http://blog2.tomasdelvechio.com.ar/?p=108 La otra vez estaba instalando el “Framework Symfony”:http://www.symfony-project.org/ en Debian Sid, y me surgió un error en medio de la instalación

bc. tomas@tomas-debian:~$ sudo aptitude install php5-symfony1.0
[sudo] password for tomas:
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido… Hecho
Inicializando el estado de los paquetes… Hecho
Se instalarán los siguiente paquetes NUEVOS:
php5-symfony1.0
0 paquetes actualizados, 1 nuevos instalados, 0 para eliminar y 2 sin
actualizar.
Necesito descargar 0B/2.629kB de ficheros. Después de desempaquetar se
usarán 12,7MB.
Escribiendo información de estado extendido… Hecho
(Leyendo la base de datos … 00%
156865 ficheros y directorios instalados actualmente.)
Desempaquetando php5-symfony1.0 (de …/php5-symfony1.0_1.0.21-1.1_all.deb) …
dpkg: error al procesar
/var/cache/apt/archives/php5-symfony1.0_1.0.21-1.1_all.deb (–unpack):
trying to overwrite ‘/usr/share/php/doc’, which is also in package
php-pear 0:5.2.11.dfsg.1-2
dpkg-deb: el subproceso paste fue terminado por la señal (Tubería rota)
Se encontraron errores al procesar:
/var/cache/apt/archives/php5-symfony1.0_1.0.21-1.1_all.deb

bc. E: Sub-process /usr/bin/dpkg returned an error code (1)
Un paquete no se pudo instalar. Intentado recuperarse:
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido… Hecho
Inicializando el estado de los paquetes… Hecho

Me puse a investigar el error, observando el mensaje mas descriptivo:

bc. /var/cache/apt/archives/php5-symfony1.0_1.0.21-1.1_all.deb (–unpack):
trying to overwrite ‘/usr/share/php/doc’, which is also in package
php-pear 0:5.2.11.dfsg.1-2
dpkg-deb: el subproceso paste fue terminado por la señal (Tubería rota)

Decía que había una *tubería rota* en _/usr/share/php/doc_ y entonces me dirigí allí:

bc. tomas@tomas-debian:~$ cd /usr/share/php/doc
bash: cd: /usr/share/php/doc: No existe el fichero o el directorio

*Vamos bien*, pensé. Intenté ir a una carpeta superior y listar el contenido de dicho directorio:

bc. tomas@tomas-debian:~$ cd /usr/share/php
tomas@tomas-debian:/usr/share/php$ ls
Archive Console data doc OS PEAR pearcmd.php PEAR.php
peclcmd.php Structures System.php XML

O sea, un elemento llamado _doc_ existe en la carpeta. ¿Pero que sera?

bc. tomas@tomas-debian:/usr/share/php$ ls -l
total 104
drwxr-xr-x 2 root root 4096 dic 22 08:13 Archive
drwxr-xr-x 2 root root 4096 dic 22 08:13 Console
drwxr-xr-x 3 root root 4096 dic 22 08:19 data
lrwxrwxrwx 1 root root 20 dic 22 08:13 doc -> ../doc/php-pear/PEAR
drwxr-xr-x 2 root root 4096 dic 22 08:13 OS
drwxr-xr-x 11 root root 4096 dic 22 08:13 PEAR
-rw-r–r– 1 root root 14726 nov 21 18:18 pearcmd.php
-rw-r–r– 1 root root 35783 nov 21 18:18 PEAR.php
-rw-r–r– 1 root root 928 nov 21 18:18 peclcmd.php
drwxr-xr-x 3 root root 4096 dic 22 08:13 Structures
-rw-r–r– 1 root root 19970 nov 21 18:18 System.php
drwxr-xr-x 2 root root 4096 dic 22 08:13 XML

Observemos entonces detenidamente la linea:

*lrwxrwxrwx 1 root root 20 dic 22 08:13 doc -> ../doc/php-pear/PEAR*

Esa es la tubería. Ya podemos tener una hipótesis de por donde viene el problema: La instalación de Symfony quiso hacer algo en la carpeta _/usr/share/doc/php-pear/PEAR/_ pero parece que esa carpeta no existe. Probemos creando a mano dicha carpeta.

bc. tomas@tomas-debian:/usr/share/php$ sudo mkdir ../doc/php-pear/PEAR
tomas@tomas-debian:/usr/share/php$ sudo aptitude install php5-symfony1.0
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido… Hecho
Inicializando el estado de los paquetes… Hecho
Se instalarán los siguiente paquetes NUEVOS:
php5-symfony1.0
0 paquetes actualizados, 1 nuevos instalados, 0 para eliminar y 2 sin
actualizar.
Necesito descargar 0B/2.629kB de ficheros. Después de desempaquetar se
usarán 12,7MB.
Escribiendo información de estado extendido… Hecho
(Leyendo la base de datos … 00%
156865 ficheros y directorios instalados actualmente.)
Desempaquetando php5-symfony1.0 (de …/php5-symfony1.0_1.0.21-1.1_all.deb) …
Configurando php5-symfony1.0 (1.0.21-1.1) …
update-alternatives: using /usr/share/php/data/symfony1.0/bin/symfony
to provide /usr/bin/symfony (symfony) in auto mode.

bc. Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido… Hecho
Inicializando el estado de los paquetes… Hecho
tomas@tomas-debian:/usr/share/php$

Era eso nomas. No se a que se debe el error en si, pero fue un caso donde el mensaje de error fue lo suficientemente descriptivo como para hallar la solución en un tiempo corto (Juro que lo soluciones en el momento, nada de buscar en Google ;-D ).

]]>
http://tomasdel.com/108/feed 0
Cliente DAAP y Songbird http://tomasdel.com/109 http://tomasdel.com/109#respond Wed, 20 Jan 2010 16:34:23 +0000 http://blog2.tomasdelvechio.com.ar/?p=109 Recuerdan el Post donde les mostré como “monte un servidor DAAP casero”:http://blog.tomasdelvechio.com.ar/index.php?id=7 en _Ubuntu_??

Resulta que la otra vez quise volver a probar “Songbird”:http://getsongbird.com/, que básicamente es un reproductor de audio basado en _Firefox_ (En realidad manejan el mismo motor de software interno).

Me lo bajo e instalo (no hay paquete en los repositorios de _Ubuntu_), y busco si tiene algún _plugin_ para cliente _DAAP_. Encuentro dos clientes, pero con tanta mala suerte que son para versiones viejas y no me deja instalarlo en la actual.

Como toda mi musica la tengo a través del servidor _DAAP_, entonces casi que tenia que poder instalar el _plugin_ o el reproductor no tenia sentido. Intento bajarme una versión mas vieja del programa, pero vaya a saber uno porque, resulta que a los muchachos de _Songbird_ se le cruzo que lo mejor era no publicar versiones antiguas.

Como no tenia ganas de renegar demasiado, me dispuse a fijarme si era sencillo retocar el _plugin_ para ver si podía hacer que la verificación de la versión no se lleve a cabo.

En efecto, descargue y abrí el archivo con extensión _.xpi_ (que resulto ser un archivo comprimido) y luego dentro abrí con un editor de texto el archivo _install.rdf_. Ahí dentro encontré la siguiente sección:

bc.

songbird@songbirdnest.com
1.0.0pre
1.3.0a

Y creo que esta claro. En donde decía ** que contenía *1.3.0a* lo cambie por *1.5.0a* (La versión actual de _Songbird_ va por la 1.4 y pico).

Hecho lo anterior, intento instalar el _plugin_, y no solo que no se queja, sino que instala y funcionó de maravilla.

Les dejo en “este enlace”:http://blog.tomasdelvechio.com.ar/index.php?s=file_download&id=7 el _plugin_ para _Songbird_ que agrega soporte como cliente _DAAP_. Recuerden que no me hago cargo por su descarga y utilización 😉

]]>
http://tomasdel.com/109/feed 0
PostgreSQL, Debian Sid y una reinstalacion fallida http://tomasdel.com/107 http://tomasdel.com/107#respond Fri, 15 Jan 2010 13:10:51 +0000 http://blog2.tomasdelvechio.com.ar/?p=107 La otra vez decidí probar la ultima versión de _PostgreSQL_, la 8.4, que en dicho momento hacia relativamente poco que acababa de salir.

Borre la 8.3, e instale la nueva versión, que hacia poco tiempo había ingresado en los repos de _Debian Sid_.

Pareció que todo había salido perfecto, pero me queria conectar a la BD vía _psql_ y no funcionaba. Me decía que el server no estaba andando.

Intente pararlo e iniciarlo manualmente pero no respondía. En realidad, no tiraba ni error ni nada, pero luego del clásico

bc. # /etc/init.d/postgresql-8.4 start
#

Me devolvía el _prompt_ enseguida como si nada hubiera pasado. Charlando con un amigo del laburo, este me hace notar que podía estar habiendo un problema en la creación del *cluster*, cosa que hasta ahora no me había ocurrido nunca.

Pero en efecto, cuando cree el nuevo *cluster* el servidor levanto sin problemas. Les paso lo que tuve que hacer:

bc. tomas@tomas-debian:~$ sudo pg_createcluster 8.4 main
[sudo] password for tdelvechio:
Creating new cluster (configuration: /etc/postgresql/8.4/main, data:
/var/lib/postgresql/8.4/main)…
could not change directory to “/home/tdelvechio”
Moving configuration file /var/lib/postgresql/8.4/main/postgresql.conf
to /etc/postgresql/8.4/main…
Moving configuration file /var/lib/postgresql/8.4/main/pg_hba.conf to
/etc/postgresql/8.4/main…
Moving configuration file /var/lib/postgresql/8.4/main/pg_ident.conf
to /etc/postgresql/8.4/main…
Configuring postgresql.conf to use port 5432…
tomas@tomas-debian:~$ sudo /etc/init.d/postgresql-8.4 start
Starting PostgreSQL 8.4 database server: main.
tomas@tomas-debian:~$

Espero que les sirva.

]]>
http://tomasdel.com/107/feed 0
Instalar Firebird en Ubuntu 9.10 http://tomasdel.com/89 http://tomasdel.com/89#respond Tue, 05 Jan 2010 06:32:54 +0000 http://blog2.tomasdelvechio.com.ar/?p=89 Para la materia Base de Datos que aprobé el cuatrimestre pasado, tuve que instalar el “SGBD Firebird”:http://www.firebirdsql.org, que es una versión abierta y libre de *Borland Interbase*.

La cuestión por la que me decido a _postear_ esto es que la instalación desde los repositorios oficiales de _Ubuntu_ siempre me causaron problemas de permisos. Por ello, quise probar suerte intentando bajar el código fuente e instalar a mano el SGBD.

Como la experiencia fue satisfactoria, comparto con ustedes los pasos seguidos en dicha oportunidad.

Las pruebas fueron en todos los casos realizadas sobre el SO _Ubuntu 9.10 Karmic Koala_.

Comencé “descargando de aquí”:http://sourceforge.net/projects/firebird/files/firebird-linux-i386/2.1.3-Release/FirebirdCS-2.1.3.18185-0.i686.tar.gz/download
la versión que deseaba instalar. (Ustedes fíjense si quieren esa u otra versión).

Antes de instalar _Firebird_, debemos instalar el superservidor _xinetd_. Para quienes no lo sepan, _Xinetd_ es un servidor conocido como superservidor, que optimiza la carga del sistema, teniendo el mínimo de recursos escuchando y levantando los servicios en la medida en que son solicitados. Para mas detalles, “Wikipedia”:http://es.wikipedia.org/wiki/Xinetd siempre al pie del cañón :-).

Procedemos entonces a instalar _Xinetd_:

bc. $ sudo aptitude install xinetd
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes… Hecho
Escribiendo información de estado extendido… Hecho
Se instalarán los siguiente paquetes NUEVOS:
xinetd
0 paquetes actualizados, 1 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 151kB de ficheros. Después de desempaquetar se usarán 414kB.
Escribiendo información de estado extendido… Hecho
Des:1 http://sft.if.usp.br karmic/main xinetd 1:2.3.14-7ubuntu2 [151kB]
Descargados 151kB en 4s (34,7kB/s).
Seleccionando el paquete xinetd previamente no seleccionado.
(Leyendo la base de datos … 00%
170698 ficheros y directorios instalados actualmente.)
Desempaquetando xinetd (de …/xinetd_1%3a2.3.14-7ubuntu2_i386.deb) …
Procesando disparadores para ureadahead …
Procesando disparadores para man-db …
Configurando xinetd (1:2.3.14-7ubuntu2) …
* Stopping internet superserver inetd [ OK ]
* Starting internet superserver xinetd [ OK ]

bc. Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes… Hecho
Escribiendo información de estado extendido… Hecho
$

Luego descomprimí el _*.tar.gz_ descargado dentro de mi carpeta personal (pueden hacerlo donde lo crean conveniente), y a continuación procedí a instalarlo con el _script_ que incluye a tal efecto:

bc. $ sudo ./install.sh
[sudo] password for tomas:

bc. Firebird classic 2.1.3.18185-0.i686 Installation

bc. Press Enter to start installation or ^C to abort
Extracting install data
Please enter new password for SYSDBA user: masterkey
/opt/firebird/bin/gsec: error while loading shared libraries: libstdc++.so.5: cannot open
shared object file: No such file or directory

bc. Please enter new password for SYSDBA user: ^C
$

*ERROR* :-(. O sea, me estaba faltando la _libstdc++.so.5_, lo cual se expresa en la linea:

bc. /opt/firebird/bin/gsec: error while loading shared libraries: libstdc++.so.5: cannot open
shared object file: No such file or directory

En _Ubuntu_ no existe esa versión de la librería, sino una mas avanzada (la .so.6). Con lo cual, procedemos a instalarla a mano.

“De esta pagina”:http://www.ubuntu-es.org/?q=node/68242, ver el post de _elcanyon_ el cual explica claramente lo que debemos realizar (lo replico aqui para tranquilidad):

bc. $ cd /tmp/
$ wget -c ftp://ftp.opentle.org/pub/linux-tle/archive/patong/pool/main/g/gcc-3.3/libstdc++5_3.3.6-13ubuntu2_i386.deb
$ dpkg -x libstdc++5_3.3.6-13ubuntu2_i386.deb libstdc++5
$ sudo cp libstdc++5/usr/lib/libstdc++.so.5.0.7 /usr/lib
$ cd /usr/lib
$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
$

Luego de esto, la librería a sido instalado y _linkeada_ correctamente.

A continuación reintento la instalación:

bc. $ sudo ./install.sh

bc. Firebird classic 2.1.3.18185-0.i686 Installation

bc. Press Enter to start installation or ^C to abort
Extracting install data
Please enter new password for SYSDBA user: masterkey
Install completed
$

Como se puede apreciar, la instalación concluyo satisfactoriamente.

Observen que aunque usen _top_ o _ps aux_ no verán al demonio _Firebird_ corriendo. Eso es normal, ya que corre bajo la guardia de _Xinted_.

Ahora pasaremos a trabajar con el usuario _Firebird_. Al usuario _Firebird_ le asignamos una contraseña, puesto que con el debemos comenzar a realizar ciertas configuraciones del SGBD.

bc. $ sudo passwd firebird
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente
$

Entramos con dicho usuario e intentamos usar la base de datos:

bc. $ su firebird
Contraseña:
firebird@tomas-laptop:/$ cd /opt/
firebird@tomas-laptop:/opt$ ls
firebird firebird_20091128_0833.tar.gz
firebird@tomas-laptop:/opt$ cd firebird
firebird@tomas-laptop:/opt/firebird$ ls
aliases.conf doc firebird.conf firebird.msg include isc_event1.tomas-laptop isc_lock1.tomas-laptop lib README UDF
bin examples firebird.log help intl isc_init1.tomas-laptop isc_monitor1.tomas-laptop misc security2.fdb WhatsNew
firebird@tomas-laptop:/opt/firebird$ cd bin/
firebird@tomas-laptop:/opt/firebird/bin$ ls
changeDBAPassword.sh changeRunUser.sh fb_config fb_lock_mgr fbsvcmgr gdef gfix gsec gstat nbackup restoreRootRunUser.sh
changeGdsLibraryCompatibleLink.sh createAliasDB.sh fb_inet_server fb_lock_print gbak gds_drop gpre gsplit isql qli uninstall.sh
firebird@tomas-laptop:/opt/firebird/bin$ ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE ‘PRUEBA.FDB’;
SQL> EXIT;
$

Con esto comprobamos que el servidor esta funcionando correctamente. Pudimos usar la linea de comandos _isql_, interfaz interactiva de _Firebird_, y luego pudimos crear una base de datos.

Lo siguiente que debemos hacer es que _isql_ pueda ser llamado desde cualquier lugar de la consola. Osea, resultaría cómodo que no tengamos que dirigirnos a */opt/firebird/bin* para ejecutar los _scripts_ de consulta y mantenimiento de _Firebird_. Para esto debemos agregar dicha ruta al _path_ (ruta) de binarios del sistema:

bc. $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
firebird@tomas-laptop:/opt/firebird/bin$ export PATH=$PATH:/opt/firebird/bin
firebird@tomas-laptop:/opt/firebird/bin$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/firebird/bin

Este método solo dura por la sesión en la que nos encontramos. (Lo único que hace es reasignar un valor a la variable *$PATH* que cuando vuelva a cargarse en el sistema tendrá nuevamente el viejo valor). Como estamos con el usuario *firebird* lo dejaremos así para trabajar.

Luego haremos que el valor de *$PATH* se haga permanente para nuestro usuario de trabajo cotidiano. Pasemos a ello.

Observemos que ocurre si tratamos de usar _Firebird_ con nuestro usuario sin darle los permisos adecuados:

bc. $ cd /opt/firebird/bin/
$ ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE ‘PRUEBA.FDB’;
Statement failed, SQLCODE = -902
I/O error for file “/opt/firebird/bin/PRUEBA.FDB”
-Error while trying to create file
-Permission denied
SQL> EXIT;
$

Hay que hacer dos cosas:

# Agregar al usuario *tomas* (o el usuario que uses normalmente en tu sistema) al grupo _firebird_ que creo el _script_ de instalación del _SGBD_.
# Setear el _path_ a los binarios de _Firebird_ (/opt/firebird/bin/) de manera permanente para dicho usuario.

1. Lo haremos de la forma gráfica:

Desde el menú de _GNOME_:
Sistema -> Administración -> Usuarios y grupos

Allí dentro nos dirigimos al botón que nos da permisos de administrador (botón con una llave y con el texto “Pulse para realizar los cambios”). Luego ingresamos al botón “Gestionar grupos”.

Aparecerá un listado, y nos dirigimos al grupo *firebird*. Lo seleccionamos y vamos a Propiedades. Una vez dentro tildamos al usuario que queremos asignar al grupo. Salimos de las ventanas aceptando todo.

Hecho esto, el usuario *tomas* tiene permisos para ejecutar los _script_ de _Firebird_ y hacer llamadas a la Base de datos.

2. Ahora configuramos el _path_:

*De manera temporal (en la sesión actual):*

De la misma forma que lo hicimos con el usuario anterior:

bc. $ export PATH=$PATH:/opt/firebird/bin
$ isql -U SYSDBA -p masterkey
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE “PRUEBA.FDB”;
SQL> EXIT;
tomas@tomas-laptop:~$

*Permanentemente:*

En una consola escribimos:

bc. $ echo “export PATH=$PATH:/opt/firebird/bin” >> /home/tomas/.bashrc

Esta configuración tendrá efecto luego del próximo reinicio del sesión.

Luego de esto, podemos trabajar con _Firebird_ con nuestro usuario normal.

Un dato adicional: Puede ocurrir que tengamos _scripts_ que reconozcan al programa _isql_ como isql-fb_. Esto ocurre porque cuando instalamos desde los paquetes del sistema, el ultimo nombre es con el cual se instala. La recomendación es crear un enlace simbólico al _script_, de la siguiente manera:

bc. $ sudo ln -s /opt/firebird/bin/isql /opt/firebird/bin/isql-fb

Luego de esto, el servidor _Firebird_ debería quedar listo para trabajar, con nuestro usuario diario.

]]>
http://tomasdel.com/89/feed 0
Atool, descomprimir y comprimir archivos en linux (II) http://tomasdel.com/57 http://tomasdel.com/57#respond Sun, 20 Dec 2009 16:55:54 +0000 http://blog2.tomasdelvechio.com.ar/?p=57 Un poco tarde, retomo este segundo post, que lo tenia a medio armar.

El primer post lo consiguen “aquí”:http://blog.tomasdelvechio.com.ar/index.php?id=16.

Antes de leer esta parte del post, lean el enlace anterior.

A continuación los ejemplos de _apack_, en los cuales se reproducen las salidas sin modificaciones.

h3. Comprimir varios archivos con formato .tar

bc. $ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
$ apack prueba.tar ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log
ejemplo1.txt
ejemplo2.txt
ejemplo3.sh
ejemplo4.log
$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 10240 2009-07-26 04:23 prueba.tar

El comando anterior crea un archivo llamado _prueba.tar_ que tiene dentro los 4 archivos que se pasan como parámetro. Entonces, el formato es pasarle el nombre del archivo destino, y luego los archivos origen.

h3. Comprimir los cuatro archivos a un _.zip_

bc. $ apack prueba.zip ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log
adding: ejemplo1.txt (deflated 24%)
adding: ejemplo2.txt (deflated 24%)
adding: ejemplo3.sh (deflated 63%)
adding: ejemplo4.log (stored 0%)
$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 2243 2009-07-26 04:31 prueba.zip

h3. Crear un _.tar.bz2_

bc. $ apack prueba.tar.bz2 ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log
ejemplo1.txt
ejemplo2.txt
ejemplo3.sh
ejemplo4.log
tomas@laptop1:~/pruebas$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 1942 2009-07-26 04:34 prueba.tar.bz2

h3. Crear un _.7z_

bc. $ apack prueba.7z ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log

bc. 7-Zip 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=es_AR.UTF-8,Utf16=on,HugeFiles=on,1 CPU)
Scanning

bc. Creating archive prueba.7z

bc. Compressing ejemplo3.sh
Compressing ejemplo1.txt
Compressing ejemplo2.txt
Compressing ejemplo4.log

bc. Everything is Ok
$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 1842 2009-07-26 04:38 prueba.7z

h3. Crear un _.tar.gz_

bc. $ apack prueba.tar.gz ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log
ejemplo1.txt
ejemplo2.txt
ejemplo3.sh
ejemplo4.log
$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 1852 2009-07-26 04:40 prueba.tar.gz

h3. Crear un _.rar_

bc. $ apack prueba.rar ejemplo1.txt ejemplo2.txt ejemplo3.sh ejemplo4.log

bc. RAR 3.80 Copyright (c) 1993-2008 Alexander Roshal 16 Sep 2008
Shareware version Type RAR -? for help

bc. Evaluation copy. Please register.

bc. Creating archive prueba.rar

bc. Adding ejemplo1.txt OK
Adding ejemplo2.txt OK
Adding ejemplo3.sh OK
Adding ejemplo4.log OK
Done
$ ls -l
-rwxr–r– 1 tomas tomas 38 2009-07-25 12:47 ejemplo1.txt
-rw-r–r– 1 tomas tomas 223 2009-07-25 12:47 ejemplo2.txt
-rwxr-xr-x 1 tomas tomas 3942 2009-07-25 12:47 ejemplo3.sh
-rwxr-xr-x 1 tomas tomas 30 2009-07-25 12:47 ejemplo4.log
-rw-r–r– 1 tomas tomas 1953 2009-07-26 04:41 prueba.rar

Creo que se ve claramente como funciona _apack_. La próxima entrada veremos como desempaquetar y el resto de utilidades de _atool_.

]]>
http://tomasdel.com/57/feed 0