De Jorge Andres Gonzalez Cetina - jag2kn
#!/bin/bash
#
# Este script instala los paquetes iraf (as+ib+nb), x11iraf, ds9, ecl y guiapps.
#
# Las aplicaciones se instalan en /iraf y en /usr/local.
#
# En ubuntu, el script se ejecuta como usuario y pide la contraseña
# una vez para hacer "sudo". En redhat, hay que ejecutarlo como root.
#
# Al acabar, crea un icono (de KDE) en el escritorio.
#
# El script sobreescribe /iraf/iraf/unix/hlib/extern.pkg (hace backup...
# considerarlo si se instalan mas paquetes de iraf)
#
# Si el script abortara a media ejecución se pueden comentar las acciones realizadas
# al final del fichero.
#
# Alberto Morales <amd77 en gulic.org> CopyLeft 2005
#
#
# DEFINICION DE VARIABLES
#
# si estamos en ubuntu
SUDO=sudo
OSTYPE=linux
OSKEY=lnux
# si estamos en redhat
#SUDO=
#OSTYPE=redhat
#OSKEY=rhux
# ARCH tiene valor "x86" si estamos en pc, "ppc" si estamos en mac
ARCH=x86
#ARCH=ppc
#
# RESTO DEL SCRIPT
#
# variables fijas
WORK=$(pwd)
DOWNLOAD=$(pwd)/installiraf-download
IRAF=/iraf/iraf
# si hay algun error no sigas
set -e
function ubuntu_sudo {
echo 'preguntamos la contraseña... (si no está ya cacheada)'
$SUDO true
}
function iraf_user {
echo Creando usuario iraf
$SUDO adduser --home /iraf/iraf/local --shell /bin/csh --disabled-password --gecos "Iraf Administrator" --no-create-home iraf
}
function iraf_dirs {
echo Creando directorios
$SUDO mkdir -p /iraf/iraf
$SUDO mkdir -p /iraf/iraf/local
$SUDO mkdir -p /iraf/irafbin
$SUDO mkdir -p /iraf/irafbin/bin.$OSTYPE
$SUDO mkdir -p /iraf/irafbin/noao.bin.$OSTYPE
$SUDO mkdir -p /iraf/x11iraf
$SUDO mkdir -p /iraf/extern
}
function iraf_download {
echo Descargando paquetes
mkdir -p $DOWNLOAD
cd $DOWNLOAD
# x86 o ppc
wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/as.pcix.gen.gz
wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/ib.$OSKEY.$ARCH.gz
wget -nc http://iraf.noao.edu/iraf/ftp/iraf/v212/PCIX/nb.$OSKEY.$ARCH.gz
}
function iraf_untar {
echo Descomprimiendo paquetes
cd $IRAF
$SUDO tar xpzf $DOWNLOAD/as.pcix.gen.gz
cd $IRAF/bin.$OSTYPE
$SUDO tar xpzf $DOWNLOAD/ib.$OSKEY.$ARCH.gz
cd $IRAF/noao/bin.$OSTYPE
$SUDO tar xpzf $DOWNLOAD/nb.$OSKEY.$ARCH.gz
echo Asignando permisos
$SUDO chown iraf.iraf -R $IRAF
}
function iraf_install {
echo Ejecutando postinstalacion
cd $DOWNLOAD
cat > installiraf.csh << EOF
setenv iraf $IRAF
cd \$iraf/unix/hlib
source irafuser.csh
./install -noedit
EOF
$SUDO csh installiraf.csh
rm installiraf.csh
}
function iraf_x11 {
cd $DOWNLOAD
wget -nc http://iraf.noao.edu/iraf/ftp/iraf/x11iraf/x11iraf-v1.3.1-bin.$OSTYPE.tar.gz
mkdir tmp
cd tmp
tar xzf ../x11iraf-v1.3.1-bin.$OSTYPE.tar.gz
$SUDO csh install
cd ..
rm -Rf tmp
}
function iraf_ds9 {
cd $DOWNLOAD
wget -nc http://hea-www.harvard.edu/saord/download/ds9/linux/ds9.linux.5.0.tar.gz
cd /usr/local/bin
$SUDO tar xzf $DOWNLOAD/ds9.linux.5.0.tar.gz
}
function iraf_ecl {
cd $DOWNLOAD
wget -nc http://iraf.noao.edu/iraf/ftp/pub/ecl_install_$OSTYPE.csh
$SUDO csh ecl_install_$OSTYPE.csh
}
function iraf_guiapps {
cd $DOWNLOAD
wget -nc http://iraf.noao.edu/iraf/ftp/iraf/extern/guiapps.tar.gz
$SUDO mkdir -p /iraf/extern/guiapps
cd /iraf/extern/guiapps
$SUDO tar xzf $DOWNLOAD/guiapps.tar.gz
cat > $DOWNLOAD/extern.pkg << EOF
# External (non core-system) packages. To install a new package, add the
# two statements to define the package root directory and package task,
# then add the package helpdb to the \`helpdb' list.
reset noao = iraf\$noao/
task noao.pkg = noao\$noao.cl
#reset tables = /iraf/extern/tables/
#task tables.pkg = tables\$tables.cl
reset guiapps = /iraf/extern/guiapps/
task guiapps.pkg = guiapps\$guiapps.cl
reset helpdb = "lib\$helpdb.mip\\
,noao\$lib/helpdb.mip\\
# ,tables\$lib/helpdb.mip\\
,guiapps\$lib/helpdb.mip\\
"
keep
EOF
$SUDO cp -b $DOWNLOAD/extern.pkg /iraf/iraf/unix/hlib/extern.pkg
}
function iraf_deb {
# TODO: Hacer una equivalente a esta para redhat
$SUDO apt-get install csh sharutils libxft1
}
function iraf_link {
echo Creando acceso directo
cat > ~/Desktop/IRAF.desktop << EOF
[Desktop Entry]
Encoding=UTF-8
Exec=xgterm -e csh -e /usr/local/bin/ecl
GenericName=IRAF ECL
GenericName[es]=IRAF ECL
Name=IRAF
Name[es]=IRAF
StartupNotify=true
Terminal=false
Type=Application
X-KDE-SubstituteUID=false
EOF
}
# listado de acciones a seguir (util comentar las ya realizadas)
ubuntu_sudo
iraf_deb
iraf_user
iraf_dirs
iraf_download
iraf_untar
iraf_install
iraf_x11
iraf_ecl
iraf_ds9
iraf_guiapps
iraf_link