Gastón Ramos

"La mayoría de las gaviotas no se molesta en aprender sino las normas de vuelo más elementales: como ir y volver entre playa y comida. Para la mayoría de las gaviotas, no es volar lo que importa, sino comer. Para esta gaviota, sin embargo, no era comer lo que le importaba, sino volar. Más que nada en el mundo, Juan Salvador Gaviota amaba volar".

Tag: debian

Tip Linux/Bash: rename, un comando muy cheto para renombrar un conjunto de archivos

Hace un tiempo atrás tuve que renombrar un conjunto de archivos, como soy vago, no quería hacerlos a mano uno por uno, así que buscando un poquito
me encontré con este hermoso script en perl: rename, que en realidad es un symlink a /usr/bin/prename. Rename sirve para renombrar un conjunto de archivos
utilizando un regex, por ejemplo para eliminar la extensión .bak de todos los archivos:

rename 's/\.bak$//' *.bak

o para cambiar todas la letras mayúsculas por minúsculas:

rename 'y/A-Z/a-z/' *

como pueden ver las limitaciones están en la imaginación y el conocimiento de regex de cada uno.

Este fué el primer tip Linux/Bash, dicho sea esto, me comprometo a escribir uno por semana.

Los ejemplos de este artículo fueron extraídos/copiados del manual de rename (man rename).

Configurar acentos con teclado US en GNU/Linux Debian

Hace poco adquirí una laptop Sony Vaio S series ultrabook con teclado US, y por unos días estuve escribiendo sin acentos, obviamente esta no era una forma correcta de escribir, así que después de un poco de investigación encontré la forma de configurar el teclado correctamente, así:

Editar el archivo /etc/default/keyboard

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="intl"
XKBOPTIONS="lv3:ralt_switch,terminate:ctrl_alt_bksp"

BACKSPACE="guess"

básicamente lo que tengo es un teclado pc105, pero el detalle
a tener en cuenta es en XKBOPTIONS la opción “lv3:ralt_switch”
que hace que cuando apretamos la tecla alt derecho, las funciones de algunas teclas cambien, entonces para escribir una a acentuada, lo que tenemos que hacer es apretar “alt-der” + “‘” y luego la “a”.

Así que ahora podemos disfrutar de los acentos, y para escribir una “ñ” tenemos que apretar: “alt-der” + “shift” + “~” y luego la “n”.

Can’t install RMagick 2.13.1. Can’t find MagickWand.h

Estuve tratando de instalar rmagick 2.13.1 en debian wheezy, y al ejecutar el gem install

me tiraba el siguiente error:


Installing rmagick (2.13.1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /home/gramos/.rbenv/versions/1.9.2-p320/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for /usr/bin/gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/home/gramos/.rbenv/versions/1.9.2-p320/bin/ruby


Gem files will remain installed in /home/gramos/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1 for inspection.
Results logged to /home/gramos/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1/ext/RMagick/gem_make.out

Se soluciona instalando la siguiente biblioteca:


sudo apt-get install libmagick++-dev

ya hora sí….


gem install rmagick -v '2.13.1'
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
1 gem installed
Installing ri documentation for rmagick-2.13.1...
Installing RDoc documentation for rmagick-2.13.1...

Espero que les sea útil!

Como configurar ODBC en GNU/Linux Debian Wheezy

La idea es configurar una acceso ODBC en un servidor GNU/linux Debian el cual se va a conectar a un servidor MS Sql Server en windows, para lograr esto necesitamos algunas cosas, primero el programa que nos va a permitir crear una “conexión” ODBC, este es
unixodbc que es la implementación de ODBC para linux, trae además un comando para usar desde la consola que se llama isql, luego necesitamos el driver para el tipo de servidor que vamos “Interfacear” en este caso es MS SQL SERVER, este driver lo provee el paquete tdsodbc.

Instalamos los paquetes necesarios:

apt-get install tdsodbc unixodbc 
vi /etc/odbc.ini
[mi-sql-server]
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Description     = Base en win
Trace           = Yes
Servername      = pcwin
Database        = mi-sql-server
TraceFile       = /tmp/mi-sql-server-sql.log
ForceTrace      = Yes
port            = 1433

vi /etc/freetds/freetds.conf
[mi-sql-server]
  host = sqlserver.host
  port = 1433
  tds version = 7.0

vi /etc/odbcinst.ini
[FreeTDS]
Description             = FreeTDS Driver
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage               = 1
CPTimeout               = 5
CPReuse         = 5
UsageCount              = 2

Una vez configurados todos los archivos necesarios podemos, probar la conexión:

isql mi-sql-server usuario pass

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

Bueno con estos 3 archivos debería estar funcionando, desde este prompt podes ejecutar consultas sql.

PD: Gracias a mi amigo Esteban Fornal por pasarme algunos archivos de de configuración de ejemplo.

Cambiar entre versiones de ruby con debian

Como desarrolladores muchas veces necesitamos cambiar entre versiones del interprete que estemos usando, en este caso ruby por ejemplo, debido que tenemos que seguir manteniendo aplicaciones que usan versiones no tan nuevas. Como todos sabemos existen varios programas que hacen esto por nosotros (como rvm); en debian hay forma mucho más simple de hacerlo:

La primer forma es usando ruby-switch que básicamente lo que hace es cambiar la versión de ruby actual para todo el sistema, por eso es necesario ser root:

Primero instalamos ruby-switch


apt-get install ruby-switch

Ahora vemos las versiones disponibles en nuestro sistema:


ruby-switch --list
ruby1.8
ruby1.9.1

en realidad el nombre del paquete de debian es ruby1.9.1 pero la version es la 1.9.3 si estamos en debian Wheezy.

Ahora veamos que version estamos usando:


ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

Supongamos que queremos cambiar a 1.8


sudo ruby-switch --set ruby1.8
update-alternatives: using /usr/bin/ruby1.8 to provide /usr/bin/ruby (ruby) in manual mode.
update-alternatives: using /usr/bin/gem1.8 to provide /usr/bin/gem (gem) in manual mode.

Bueno esa fué una forma fácil de cambiar entre versiones de ruby a nivel de sistema (para todos los usuarios), si necesitamos cambiar la versión de ruby pero sólamente para nuestro usuario podemos usar rbenv que lo tenemos disponible en debian:


apt-get install rbenv

También podemos listar las versiones disponibles:


rbenv versions
  1.8.7-debian
* 1.9.3-debian (set by /home/gramos/.rbenv/global)

y si queremos pasar a usar 1.8:


rbenv global 1.8.7-debian

Esto fué todo, espero que les haya sido útil.