Wednesday, November 10, 2010

El paréntesis: Instalación de STSDAS y TABLES en linux

Estimados,

Sé que muchas personas han tenido problemas instalando los packages STSDAS y TABLES en sus computadores, asi que he preparado un pequeño manual para que puedan instalarlo de manera fácil y directa.

Hay dos métodos. El método Python (fácil y simple) y el método "un poco más largo". Si no le resulta uno, pruebe con el otro, aunque recomiendo el primero por que es más limpio. Ámbos métodos parten de una base común que es la que voy a describir ahora.

  • Parte 1. La base común

    Como mencioné, ámbos métodos parten de la misma base, que es lo básico de lo básico en la instalación:

    1.- Debemos crear un directorio en donde instalemos los packages externos. Para ello hacemos en consola (y asumiendo todo el rato que pueden ser super-users con "sudo -s"):

    $ cd /iraf
    $ mkdir extern
    $ cd extern
    $ mkdir tables
    $ mkdir stsdas


    Con ello, hemos creado la carpeta extern (donde irán nuestro packages) y dentro de ésta, creamos dos carpetas: tables y stsdas, que serán las carpetas donde instalaremos los packages.

    2.- El siguiente paso es descargar, de la página oficial de STSDAS (http://www.stsci.edu/resources/software_hardware/stsdas/download) y en donde ustedes deseen (en mi caso, se descargan en /home/nestor/Descargas) los archivos comprimidos necesarios para STSDAS y TABLES que son dos: el archivo fuente (source) y el binario, que dependerá de su distribución (asumiremos linux). Los links son:

    - TABLES: [SOURCE] [BINARIO (REDHAT)]
    - STSDAS: [SOURCE] [BINARIO (REDHAT)]

    3.- Ahora, necesitamos descomprimir dichos archivos en las carpetas correspondientes. Para ello, primero ingresamos a la carpeta tables, descomprimimos el source y luego el binario dentro de la carpeta bin.linux (asumiré, como dije, que mis archivos se descargaron en /home/nestor/Descargas). Primero lo hacemos con TABLES:

    $ cd /iraf/extern/tables
    $ gunzip /home/nestor/Descargas/tables3.12.tar.gz
    $ tar -xvf /home/nestor/Descargas/tables3.12.tar
    $ cd bin.linux
    $
    gunzip /home/nestor/Descargas/tables3.12.bin.redhat.tar.gz
    $ tar -xvf /home/nestor/Descargas/tables3.12.bin.redhat.tar

    Y luego con STSDAS:

    $ cd /iraf/extern/stsdas
    $ gunzip /home/nestor/Descargas/stsdas3.12.tar.gz
    $ tar -xvf /home/nestor/Descargas/
    stsdas3.12.tar
    $ cd bin.linux
    $ gunzip /home/nestor/Descargas/
    stsdas3.12.bin.redhat.tar.gz
    $ tar -xvf /home/nestor/Descargas/
    stsdas3.12.bin.redhat.tar

    Ojo: Si no vas a usar el método que usa Python para instalar STSDAS, también debes copiar los binarios (los archivos .bin.redhat) en la carpeta bin.redhat, de la misma manera que lo hiciste con bin.linux, para TABLES y para STSDAS.

    4.- Ahora necesitamos modificar el archivo principal de IRAF para "avisarle dónde" guardamos los packages. Para ello, debemos buscar el archivo extern.pkg:

    $ locate extern.pkg

    En mi caso, el archivo está en /iraf/iraf/unix/hlib/extern.pkg. Debemos editar dicho archivo, lo que lo hacemos con nuestro editor favorito (en mi caso Kate):

    $ kate /iraf/iraf/unix/hlib/extern.pkg

    Allí, nuestro archivo debiése verse así:

    reset noao =iraf$noao/
    task noao.pkg =noao$noao.cl

    reset helpdb ="lib$helpdb.mip\
    ,noao$lib/helpdb.mip\
    "
    keep


    Y debiése quedar así:

    reset noao = iraf$noao/
    task noao.pkg = noao$noao.cl

    reset tables = /iraf/extern/tables/
    task tables.pkg = tables$tables.cl
    reset stsdas = /iraf/extern/stsdas/
    task stsdas.pkg = stsdas$stsdas.cl

    reset helpdb ="lib$helpdb.mip\
    ,noao$lib/helpdb.mip\
    ,tables$lib/helpdb.mip\
    ,stsdas$lib/helpdb.mip\
    "
    keep


    Una vez hecho esto, estamos listos para entrar al paso final de la instalación de TABLES y STSDAS (este último NECESITA tables para ser instalado).

  • Parte 2 (Primer método): El método "a lo Python"

    Si poseemos Python, la instalación de TABLES y STSDAS será directa y limpia. Basta con ir a la carpeta de stsdas y correr un código que instalará todo de una vez:

    $ cd /iraf/extern/stsdas
    $ python python/compileall.py ./python
    $ python python/compileall.py ./python*


    ¡Y listo! A saltarse al Paso 3 (para testear que está todo bien instalado).

  • Parte 2 (Segundo método): El método "un poco más largo"

    Si no poseemos Python (¡brfs para ti!), deberemos instalar todo "a la mala". Para ello, debemos buscar primero el archivo .cshrc en nuestra carpeta de iraf:

    $ locate .cshrc

    El mío está en /iraf/iraf/local/.cshrc. Ahora, debemos editar dicho archivo:

    $ kate /iraf/iraf/local/.cshrc

    Y debiésemos tener lo siguiente en nuestro código (si hay algo que no está, ¡agrégalo!):

    setenv iraf /iraf/iraf/
    setenv IRAFARCH redhat
    sourcce $iraf/unix/hlib/irafuser.csh


    Una vez hecho esto, instalamos tables primero (recuerda haber metido los archivos que pusiste en bin.linux en bin.redhat al final del Paso 1). Para ello debemos poder entrar a ecl desde xgterm desde la carpeta tables:

    $ cd /iraf/extern/tables
    $ mkiraf


    Escogemos xgterm y luego seguimos:

    $ xgterm
    # ecl
    # mkpkg -p tables


    Eso debiése instalar tables. Luego hacemos lo mismo para STSDAS:

    $ cd /iraf/extern/stsdas
    $ mkiraf


    Escogemos xgterm y luego seguimos:

    $ xgterm
    # ecl
    # mkpkg -p stsdas


    ¡Y listo! Eso debiése instalar TABLES y STSDAS. Ahora...¡probemos que todo este bien instalado!

  • Paso 3: La prueba de fuego de la instalación de TABLES y STSDAS

    Si todo salió bien, esto debiése ser un trámite. Si no, revisa los pasos anteriores o pregunta acá en el blog :). Primero, desde cualquier carpeta que no sea /iraf/extern/tables o /iraf/extern/stsdas ingresa a ecl (mkiraf -> xgterm -> ecl). Ahora escribe:

    ecl> stsdas
    stsdas> iminfo dev$pix

    Si salen datos en una tabla, todo está bien instalado: ¡Felicitaciones! Ya tienes STSDAS en tu computador.

Espero sea de ayuda y cualquier duda/problema, ¡posteenlo! Esa es la idea del blog.

Fuentes: STSDAS Installation Guide, The Step by Step IRAF Installation y The IRAF Official Forum.