.. |br| raw:: html
Instalar IRAF y PyRAF en portátil personal con Ubuntu 24.04
===========================================================
Aquí van unas relativamente sencillas instrucciones para instalar IRAF
y PyRAF en un portátil o desktop personal con Ubuntu 24.04.
Recomendamos seguir estas instrucciones, en lugar de instalar IRAF y
PyRAF desde los repositorios de Ubuntu o usando AstroConda, o de la
`página web de NOIRLab `__, ya que
con esta instalación obtendremos exactamente los mismos IRAF y PyRAF
que están instalados en todas las máquinas del CCA, con todos
los paquetes necesarios para las asignaturas TOB y TdE.
.. warning::
Nota: IRAF y PyRAF ya están instalados en todas las máquinas
del CCA; estas instrucciones son para quienes quieran instalarlos
en un portátil personal.
Instalación de IRAF
-------------------
Bajarse el siguiente fichero, que vale también para versiones
más recientes de Ubuntu. Es casi 1 GB, la descarga puede tardar un
ratillo.
.. sourcecode:: bash
wget -cNS ftp://siesoft:siesoft@ftp.iac.es/iraf-2.16.1_Ubu1804.run
Si por alguna razón el comando de arriba no funcionara, se puede
intentar descargar el mismo fichero de esta `carpeta en el cloud
del IAC `__
Ejecutarlo:
.. sourcecode:: bash
sudo sh iraf-2.16.1_Ubu1804.run
Instalación paquetes de Ubuntu 24.04
------------------------------------
Es necesario instalar los siguientes paquetes (es posible que
algunos se encuentren ya preinstalados), incluyendo algunos de 32bit:
.. sourcecode:: bash
sudo apt install libncurses-dev libncurses6 libtinfo6 libxtst6 libxmu6
sudo apt install tcsh x11proto-dev git libx11-dev tcl-dev tk8.6-dev
sudo dpkg --add-architecture i386
sudo apt install lib32ncurses6 lib32ncurses-dev lib32gcc-13-dev libxmu6:i386 \
libxtst6:i386
También algunos paquetes básicos de Python (cuya versión por defecto en Ubuntu
24.04 es la 3.12), y de la librería gráfica Qt:
.. sourcecode:: bash
sudo apt install python3 python3-dev python3-pip python3-venv \
python3-wheel python3-tk libpython3-dev
sudo apt install libnss3 libqt5core5a libqt5webenginecore5 \
libqt5script5 libqt5serialbus5-dev libqt5webkit5-dev
Instalar el DS9 (visor de imágenes):
.. sourcecode:: bash
sudo apt install saods9
Instalación de PyRAF
--------------------
Recomendamos que PyRAF se instale en un entorno virtual de Python, ya
que una instalación realizada a nivel local (usando el flag ``--user``)
puede sufrir inconsistencias o conflictos con paquetes de Python
instalados por el propio Ubuntu, y producir errores en la importación
o ejecución de algún paquete.
En este entorno virtual se pueden además instalar otros paquetes de
Python de uso más general como por ejemplo Astropy, Spyder,
Jupyter Notebook, etc. Sin embargo, paquetes para machine learning,
como por ejemplo Tensorflow o PyTorch, necesitan cada uno un propio
entorno virtual distinto e independiente.
Podemos proceder de la siguiente manera:
.. sourcecode:: bash
mkdir ${HOME}/py312_virtualenvs
cd ${HOME}/py312_virtualenvs/
/usr/bin/python3.12 -m venv pyraf
Esto nos crea el entorno virtual 'pyraf'. Ahora tenemos que activarlo
e ir instalando los paquetes que necesitemos
.. sourcecode:: bash
source ${HOME}/py312_virtualenvs/pyraf/bin/activate
python3 -m pip install --upgrade pip setuptools
python3 -m pip install wheel
python3 -m pip install numpy==1.26.4
python3 -m pip install tk scipy matplotlib astropy
# y demás paquetes que querramos instalar
Es importante que numpy no sea la versión 2.0 o superior, porque parece
dar errores con ciertas tareas de PyRAF.
Instalamos ahora los paquetes específicos para PyRAF:
.. sourcecode:: bash
python3 -m pip install pmw
python3 -m pip install d2to1
python3 -m pip install stsci.tools
python3 -m pip install pyraf
Para comprobar qué paquetes tenemos instalados y con qué versión:
.. sourcecode:: bash
python3 -m pip list
Configuración de IRAF/PyRAF
---------------------------
Antes de usar PyRAF, tenemos que crear el fichero de arranque
*login.cl*, que debe estar obligatoriamente en el subdirectorio *iraf*
en nuestro home:
.. sourcecode:: bash
# creamos el directorio iraf en el home; ~/ corresponde a nuestro home)
mkdir ~/iraf
# vamos a ese directorio
cd ~/iraf
mkiraf
# contestamos xgterm a la pregunta sobre el tipo de terminal.
Con estos comandos se ha creado el fichero *login.cl* que contiene las
definiciones y las instrucciones necesarias para que IRAF y PyRAF
arranquen correctamente.
En el fichero *.bashrc* (en el home) poner las siguientes instrucciones:
.. sourcecode:: bash
export iraf="/opt/iraf/iraf-2.16.1/"
export IRAFARCH="linux64"
Es probable que para que esto funcione tengamos que definir la terminal
como de 'login', siguiendo las instrucciones en 'Configuración y Programas'.
Finalmente, para comprobar la instalación de PyRAF, abrimos una nueva
terminal, activamos el entorno, lanzamos primero python3, probamos a importar
iraf, y ejecutamos un simple comando:
.. sourcecode:: python
from pyraf import iraf
iraf.imstatistics("dev$pix")
iraf.implot("dev$pix")
# para probar la gráfica.
# Para salir, ir a la ventana gráfica y pulsar 'q'.
# (dev$pix es una imagen de test incluida en la distribución de IRAF).
Usando PyRAF
------------
En general, para usar PyRAF, necesitamos primero activar el entorno
virtual correspondiente con el comando:
.. sourcecode:: bash
source ${HOME}/py310_virtualenvs/pyraf/bin/activate
Se puede crear un alias con esta línea que pondremos en el fichero
*.bashrc*:
.. sourcecode:: bash
alias actpyraf="source ${HOME}/py310_virtualenvs/pyraf/bin/activate"
(*actpyraf* es un nombre mnemónico para 'activate pyraf', se puede
obviamente cambiar por otro que nos guste más).
Cuando hayamos terminado de usar PyRAF, conviene desactivarlo con el
comando: ``deactivate``.
Spyder en Ubuntu 24.04
----------------------
Conviene instalar Spyder dentro del entorno virtual que acabamos de
crear, ya que la versión que viene con los paquetes de Ubuntu en
general está algo desfasada. Simplemente, tras activar el entorno
virtual como explicado anteriormente, tecleamos:
.. sourcecode:: bash
python3 -m pip install spyder
# (también se instalarán muchas dependencias)
Luego para lanzar spyder usamos el comando:
.. sourcecode:: bash
spyder
Puede que salgan varios mensajes de warning, pero en principio parece que
no tienen importancia y spyder funciona correctamente.
Arreglos para IRAF
------------------
Es posible que en ciertas asignaturas se use directamente IRAF. En este caso,
tendremos que crear unos enlaces simbólicos (symlinks) para que IRAF
encuentre las librerías y versiones que necesita.
Primero creamos en nuestro home los subdirectorios llamados lib y lib32:
.. sourcecode:: bash
mkdir -p ${HOME}/lib
mkdir -p ${HOME}/lib32
En el primer directorio creamos los siguientes symlinks:
.. sourcecode:: bash
cd ${HOME}/lib/
ln -sf /lib/x86_64-linux-gnu/libncurses.so.6 libncurses.so.5
ln -sf /lib/x86_64-linux-gnu/libtinfo.so.6 libtinfo.so.5
En el otro directorio:
.. sourcecode:: bash
cd ${HOME}/lib32/
ln -sf /usr/lib32/libncurses.so.6 libncurses.so.5
Para que el sistema sepa donde encontrar estos ficheros, agregamos
los directorios a la variable *LD_LIBRARY_PATH*:
.. sourcecode:: bash
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOME}/lib:${HOME}/lib32"
Este comando conviene ponerlo en el fichero *.bashrc* para que se ejecute
automaticamente en cada sesión.
De esta forma, deberían funcionar los comandos ``xgterm`` (terminal gráfica
de IRAF) y ``ecl64`` (sesión interactiva de IRAF). No podemos utilizar el
comando ``ecl`` (el que se encuentra en los manuales de IRAF) porque
hay un comando llamado igual que pero en Ubuntu corresponde a otra aplicación.