Instalar NCTuns 5.0 en Debian Lenny y derivados.

En la universidad,   frecuentemente veo estudiantes de semestres mas altos, con algunas deficiencias de conocimiento sobre GNU/Linux, y esto es algun inconveniente, por que en esta etapa de la carrera hay herramientas educativas muy interesantes que necesitan estar instaladas un sistema operativo, GNU/Linux, Un caso mas especifico es el NCTuns 5.0 el cual es un simulador  y emuladores de redes, desarrollado para Fedora 9,  este software es muy interesante, sin embargo, me parecio algo raro,   ver que siendo GNU/Linux, nos pidiera  como requeremiento una distribucion en especial, asi que me puse a la tarea  de investigar un poco  como instalar esta aplicaciones en mi querido Debian Lenny, obviamente  si lograba instalar  NCTuns 5.0 en  Debian, tambien seria posible  en sus derivados como UBUNTU, KUBUNTU, LINUX MINT,  etc etc etc. Despues de dos dias de busqueda  e investigacion me encontre con un documento que me facilito mucho el trabajo,  asi que decidi hacer esta guia en español, para todos aquellos estudiantes que tengan la necesidad de instalar este software y tengan varios problemas para hacerlo en Fedora 9.

Antes que nada debemos tener claro  que  es el NCTuns 5.0, una pequeña definicion sacada de la guia mencionada anteriormente:

nctuns

el NCTUns es un simulador de red extensible de alta fidelidad y un emulador capaz de simular varios protocolos usados en redes guiadas y no guiadas.

PROCEDIMIENTO

Inicialmente debemos preparar nuestro sistema, instalando las dependencias necesarias para compilar el codigo fuente de nuestra aplicacion, asi que en consola como root hacemos esto:

apt-get install build-essential
apt-get install rpm
apt-get install tcl8.5
apt-get install tcl8.5-dev
apt-get install xinetd
apt-get install rsh-server
apt-get install libncurses5-dev
apt-get install libqt3-mt

Con estas aplicaciones instaladas ya tendremos nuestro sistema listo para proceder a modificar el fuente del NCTuns 5.0 y seguir con los demas paso.

El siguiente paso es descargar el paquete NCTuns 5.0 y descomprimirlo:

wget http://nsl10.csie.nctu.edu.tw/download/NCTUns-allinone-linux-2.6.25.9-f9.20080919-3.tar.gz
tar xzf NCTUns-allinone-linux-2.6.25.9-f9.20080919-3.tar.gz
cd NCTuns-5.0

Despues de tener las fuentes procedemos a modificarlas, en esta parte del proceso es donde esta la clave, puesto que con los parametros que vamos a modificar, le haremos crear al script de instalacion que  tenemos los paquetes rpm instaldos, pero obviamente no es asi, porque no queremos instalar rpm en debian:

Modificamos el archivo install.d/E00common:

# WHICH=”/usr/bin/which –skip-function –skip-alias”
WHICH=”/usr/bin/which”

Explicando un poco, buscamos la primera linea y la comentamos con el #. Despues de esta linea agregamos la segunda.

En el mismo archivo buscamos esta linea:

#if [[ `eval echo \\\$$1` =~ ^[Yy]([Ee][Ss])?$ ]]; then
if [[ `eval echo \\\$$1` =~ ^[Yy]\([Ee][Ss]\)?$ ]]; then

El mismo proceso del punto de arriba, hay que tener en cuenta la diferencia entre esas dos lineas,  son los dos \

Seguimos con el archivo install.d/S06check buscamos estas lineas y  hacemos esto:

# test rpm package manager whether exists
#RPM=rpm
#export RPM=`$WHICH $RPM 2>/dev/null`
fake_rpm() { echo “fake_rpm”; }
export RPM=fake_rpm

Ahora creamos el archivo /etc/xinetd.d/rlogin con este contenido:

# default: on
# description: rlogind is the server for the rlogin(1) program. The server \
# provides a remote login facility with authentication based on \
# privileged port numbers from trusted hosts.
service login
{
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
disable = no
}

Creamos el archivo /etc/xinetd.d/rsh con este contenido:

# default: on
# description: The rshd server is the server for the rcmd(3) routine and, \
# consequently, for the rsh(1) program. The server provides \
# remote execution facilities with authentication based on \
# privileged port numbers from trusted hosts.
service shell
{
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
disable = no
}

Ya modificamos los archivos,  lo que sigue seria compilar el NCTuns 5.0, debemos crear un archivo install.conf con el contenido del archivo install.conf-example, dejando todas las configuraciones habilitadas menos install_kernel (install_kernel=no). Luego  ejecutar el script de instalacion como root asi:

./install.sh  -c install.conf

Hay que tener en cuenta que las tareas  que se esten ejecutando a la hora de la instalacion  no tengan estado “skip”, si mientras estas instalando el NCTuns  te aparece “skip” en cada tarea del script, es por que hiciste algo malo modificando las fuentes del programa, asi que devuelvete y revisa bien el proceso. Si en cambio todo ha salido bien,  ya debemos tener nuevo usuario llamado nctuns. Ahora incluimos las variables de entorno del NCTuns 5.0 asi:

nano /home/nctuns/.bashrc

Agregamos al final las siguientes lineas:

export NCTUNSHOME=/usr/local/nctuns
export NCTUNS_TOOLS=$NCTUNSHOME/tools
export NCTUNS_BIN=$NCTUNSHOME/bin
export PATH=${NCTUNS_BIN}:${PATH}

nano /root/.bashrc

Agregamos al final las siguientes lineas:

export NCTUNSHOME=/usr/local/nctuns
export NCTUNS_TOOLS=$NCTUNSHOME/tools
export NCTUNS_BIN=$NCTUNSHOME/bin
export PATH=${NCTUNS_BIN}:${PATH}

PARCHANDO Y COMPILANDO EL KERNEL

Hasta aqui llevamos la mitad del proceso y la mas facil ahora viene la parte donde hay que poner mas cuidado. Como todos saben   NCTuns 5.0 tiene un propio kernel, es decir, cuando normalmente  instalamos esta aplicacion en Fedora, el programa nos instala un kernel propio con configuraciones y caracteristicas especiales para que el programa corra  de forma eficiente. Pero como en este caso no lo estamos haciendo en Fedora, debemos parchar un kernel y compilarlo con las fuentes propias de Debian, Muchos diran,  solo basta  convertir el kernel precompilado .rpm  por medio de “alien” un programa que cumple esta funcion, sin embargo esta opcion no es muy segura, asi que procederemos  a   crear el parchear del kernel:

cd NCTUns-5.0/src/kernel-patch
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.9.tar.bz2
tar jxf linux-2.6.25.9.tar.bz2
mkdir linux-2.6.25.9-nctuns
tar -C linux-2.6.25.9-nctuns -xjf kernel-2.6.25.9nctuns20080826-patches.tar.bz2
LC_ALL=C diff -urP linux-2.6.25.9 linux-2.6.25.9-nctuns | grep -v “^Only in” > nctuns-2.6.25.9.patch

Con esto hemos creado el parche, el siguiente paso es instalar el kernel de debian y parcharlo:

cd /tmp
wget http://puga.vdu.lt/debian/dists/lenny/main/binary-i386/l/linux-2.6.25/linux-source-2.6.25_2.6.25-3~1_all.deb
dpkg -i linux-source-2.6.25_2.6.25-3~1_all.deb

Ya instalamos el kernel asi que vamos  a las fuentes  y aplicamos el parche creado anteriormente:

cd /usr/src
tar jxf linux-source-2.6.25.tar.bz2
cd linux-source-2.6.25
patch -p1 < /ruta/donde/estaelparche/nctuns-2.6.25.9.patch

Hay que aclarar que  /ruta/donde/estaelparche/ es la direccion donde creamos el parche.

Ahora que ya tenemos el kernel parchado debemos compilarlo e instalarlo de nuevo,  no puedo explicar esto por que se me iria muy extenso, sin embargo  hace algun tiempo hice una entrada que explicaba la forma de compilar el kernel aca este el enlace: Si hicieron  bien la compilada del kernel  ya lo tendran instalado y listo para arrancar, asi que reiniciamos y  entramos por el kernel

Debian GNU/Linux, kernel 2.6.25-nctuns

Entramos con el usuario nctuns, y posteriormente lanzamos los demonios en 3 consolas diferentes hacemos esto:

dispatcher  # 1. consola
coordinator # 2.consola
nctunsclient # 3.consola

nctuns2

Listo despues de un largo proceso,   si has seguido todo al pie de la letra, tendras el NCTUns 5.0 instalado en GNU/Linux Debian Lenny, si alguien tiene compiz instalado este puede generar problemas a la hora de la visualizacion,  en vez de compiz pueden usar el clasico metacity. Espero que esta guia sea de mucha utilidad para la comunidad estudiantil y  sobre todo para la comunidad del software libre,  por qure esta aplicacion es una buena alternativa contra el software privativo. Si tienen cualquier duda  comentario, sugerencia o problema, quedan bienvenidos a  dejarla en los comentarios que con mucho gusto   se respondera.

13 Comments