Dependencia de paquetes de libc6 y g++:
cesar@cesar:~$ sudo apt-get install build-essential autoconf automake libxmu-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have unmet dependencies:
build-essential: Depends: libc6-dev but it is not going to be installed or
libc-dev
libstdc++6-4.1-dev: Depends: libc6-dev (>= 2.3.6-7) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Para quitar estos errores lo solucioné con el comando aptitude
Para descargar los paquetes correspondientes se elige la opcion g:
Se selecciona el paquete libc6 para su instalación u actualización, donde se instalará con todos los paquetes de dependencia.
Es necesario convertirse en administrador para la instalación del paquete
En la siguiente imagen se muestra el inicio de descarga del paquete
INSTALACION DE NS-2.31
Luego de resolver la dependencia de paquetes seguí los siguientes pasos basándome en esta pagina.
Existen varias formas de instalarar ns-2 pero esta es la que yo seguí y me funcionó perfectamente.
- Descargar e instalar ns2.31
$ wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.31.tar.gz
- Descomprimir el archivo e ir al directorio donde se descomprimió.
$ tar -xzvf ns-allinone-2.31.tar.gz
$ cd ns-allinone-2.31
$ sudo apt-get install build-essential autoconf automake libxmu-dev
- Luego correr el siguiente comando para la instalación
$./install
Despues que termine la instalación debe presentar un mensaje como se muestra a continuación:
También se presentará la información siguiente, que servirá para ayuda de configuración de las variables de entorno. Punto 2
- Configurar variables de entorno
Añadir las siguientes lineas al archivo .bashrc
$ gedit ~/.bashrc
Añadir el siguiente codigo al final del archivo. Sustituir
“/home/cesar/” por la ruta de su directorio home, como por ejemplo“/home/su nombre de usuario/”
# LD_LIBRARY_PATH
OTCL_LIB=/home/cesar/ns-allinone-2.31/otcl-1.13
NS2_LIB=/home/cesar/ns-allinone-2.31/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/cesar/ns-allinone-2.31/tcl8.4.14/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/cesar/ns-allinone-2.31/bin
XGRAPH=$XGRAPH:/home/cesar/ns-allinone-2.31/tcl8.4.14/unix
XGRAPH=$XGRAPH:/home/cesar/ns-allinone-2.31/tk8.4.14/unix
NS=/home/cesar/ns-allinone-2.31/ns-2.31/
NAM=/home/cesar/ns-allinone-2.31/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAMRecargar el archivo .bashrc con el siguiente comando:
$source .bashrc o $ source ~/.bashrc- Luego reiniciar el equipo, y despues ejecutar el comando:
$ ns
Para terminar se digita exit, si no da ningún error esto prueba que la instalación de ns es correcta
3. Validación
Dentro del directorio ns-allinone-2.31
:
$ cd ns-2.31
$ ./validate
- Inicio Validación.
Esto puede tardar varias horas…
- Fin de la validación
- Acerca del programa tcl/tk
Para saber si está instalado correctamente tcl/tk digitar:
tclsh
y luego:
info patchlevel
- Instalar emacs para editar los archivos .tcl
$sudo apt-get install emacs
Si todos los pasos se ejecutaron correctamente y no dió ningún error, se ha instalado el programa ns2
En una siguiente entrada se mostrará como ejecutar un archivo .tcl...
PD: Cualquier duda me la pueden hacer conocer, estaré dispuesta a ayudarles en lo que este a mi alcance.
22 comentarios:
Creo que olvidé uno de los pasos principales que es la ejecución.
Para la ejecución de un programa para Ns2 se realiza los siguientes pasos:
1) ns (nombre.tcl) enter (para ejecutar el programa)
2) nam (nombrearchivo.nam) enter ( para ver resultados graficamente de la simulación)
3) xgraph (nombrearchivo1.tr) enter (para ver los resultos mediante gráfica)
donde nombre es el archivo generado en tcl, nombrearchivo es el archivo .nam para la visualización y nombrearchivo1 es el archivo .tr para ver la traza de resultados, los dos últimos archivos se crean dentro del archivo tcl
Para más información ingresar a http://nile.wpi.edu/NS/, aqui existen algunos ejemplos para descargar
Hola raquel, me podrias decir por favor donde esta ubicado el .bashrc ya que en una de mis prueba danie mi bash por modificar un bash.baschrc.
Ademas si me puedes indicar en que parte del archivo incluyo las lineas.
por otra parte te comento que al darle el comando ns me sale comand not found. que he hecho mal?
Pido disculpas por no contestar antes
Al archivo .bashrc lo puedes encontrar al digitar gedit ~/.bashrc o ingresando directamente a tu usuario lo encuentras con el nombre .bashrc, (si no lo puedes ver vas a la pestaña Ver y seleccionas Mostrar los archivos ocultos) las lineas incluyes al final de todo lo que haya en el archivo.
El mensaje de not found es porque precisamente no están incluidas las librerías en el archivo .bashrc
Si sigues los pasos tal como está en el post te aseguro que no vas a tener inconvenientes
Saludos
Raquel
Hola Raquel, bueno he tratado bastante de instalar el ns2 en ubuntu y creo q ya lo logre sabes pongo tclsh y sale el prompt % bueno, pero no se si estara del todo bien, como puedo probar correr algo en ns2?? tengo q conseguir archivos .tcl?? Ademas mi duda tambien es x q cuando coloco el $ns (enter), no me sale % sino como q llama a otro programa de ubuntu acerca de unos host, algo asi:
Usage: host [-v] [-a] [-t querytype] [options] name [server]
Listing: host [-v] [-a] [-t querytype] [options] -l zone [server]
Hostcount: host [-v] [options] -H [-D] [-E] [-G] zone
bueno y mas opciones, antes me figuraba "comando no encontrado, lo puedes descargar asi: sudo apt-get install hosts" y pues una vez lo hice, y pos enton sale asi ahora. NO creo q eso tenga q ver con el ns2, bueno raquel, quisiera q me ayudaras como puedo probar si mi instalacion de ns2 esta bien, y como utilizarla lo mas optimo. gracias.
En las referencias del final subí 2 ejemplos de ns2 que puedes descargar, uno para red inalámbrica y otro para Lan, están en .tcl
Para que pruebes si funciona digita:
ns basico.tcl ó
ns simulacion.tcl
y si la instalación esta bien debería correrte automáticamente la simulación, te aparecerá la ventana del archivo .nam
Con respecto a los mensajes que te aparecen creo que algo está mal en la instalación, si te salia "comando no encontrado" es porque no estaba instalado el ns2 y la sugerencia de "sudo apt-get install hosts" se refería a que ejecutes "sudo apt-get install ns", por lo tanto te sugiero hacer de nuevo todos los pasos
Saludos!!
Referencias:
http://www.4shared.com/file/121354375/dbb70e02/basico.html
http://www.4shared.com/file/121355917/d6c82a1b/simulacion.html
Hola Raquel, sabes he revisado una y otra vez y nada, al parecer he instalado mal el ns, x q cada vez q digito $ns (enter) me salen estas opciones:
Usage: host [-v] [-a] [-t querytype] [options] name [server]
Listing: host [-v] [-a] [-t querytype] [options] -l zone [server]
Hostcount: host [-v] [options] -H [-D] [-E] [-G] zone
Check soa: host [-v] [options] -C zone
Addrcheck: host [-v] [options] -A host
Listing options: [-L level] [-S] [-A] [-p] [-P prefserver] [-N skipzone]
Common options: [-d] [-f|-F file] [-I chars] [-i|-n] [-q] [-Q] [-T] [-Z]
Other options: [-c class] [-e] [-m] [-o] [-r] [-R] [-s secs] [-u] [-w]
Special options: [-O srcaddr] [-j minport] [-J maxport]
Extended usage: [-x [name ...]] [-X server [name ...]]
Hago los siguientes seteos (tengo el ns-allinone-2.34):
# LD_LIBRARY_PATH
OTCL_LIB=/usr/src/ns-allinone-2.34/otcl-1.13
NS2_LIB=/usr/src/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/usr/src/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/usr/src/ns-allinone-2.34/bin
XGRAPH=$XGRAPH:/usr/src/ns-allinone-2.34/tcl8.4.18/unix
XGRAPH=$XGRAPH:/usr/src/ns-allinone-2.34/tk8.4.18/unix
NS=/usr/src/ns-allinone-2.34/ns-2.34/
NAM=/usr/src/ns-allinone-2.34/nam-1.14/
PATH=$PATH:$XGRAPH:$NS:$NAM
actualizo y nada, sigue con la misma opcion, digito para probar con tus ejemplos y resulta:
rolly@desktop1:~/Escritorio/NS2$ ns basico.tcl
basico.tcl does not exist (Authoritative answer)
rolly@desktop1:~/Escritorio/NS2$ ns simulacion.tcl
simulacion.tcl does not exist (Authoritative answer)
Como te digo, no se q pasa, pero otras cosas de la instalacion me funcionan x ejemplo digito $nam (enter) y me aparece el entorno del programa, incluso me genera algunos archibos .ns los cuales tienen el codigo fuente en Otcl de lo q diseño en el animador.
Pero supongo q de todas maneras debe funcionar cuando pongo $ns y pues como ves no esta bien, mi pregunta es ¿donde esta mi error?
Pueda que haya algún error en la configuración de variables, te sugiero hacer de nuevo la instalación para que te fijes en los datos que te muestra luego de que termina la instalación de ns2, donde te indica las rutas y las versiones de tcl, tk, ns y nam que se ha instalado.
No he tenido en ninguna de las instalaciones ese tipo de error pero de acuerdo a lo leído creo que el error proviene de la ejecución del comando "sudo apt-get install hosts".
He leído en otros posts y lo que puedes hacer es reinstalar el sistema operativo e instalar de nuevo el ns
Espero que te sirva en algo de ayuda!!
Hola Raquel, gracias por la respuesta... me ha ayudado también, necesitamos una sugerencia, podrías facilitarme tu correo?, el mío es leohm.pe@gmail.com, saludos!!
Hola Raquel:
Muchas gracias por el tutorial. Mi instalacion quedo muy bien, menos el nam. Cuando corro los programas, se general los .nam y .tr, pero no los puedo ver. Como puedo saber si el nam esta instalado correctamente?
Saludos y Gracias
Israel
A que te refieres con que no los puedes ver a .tr y .nam??. Con respecto a nam, para saber si está instalado, abres la terminal y escribes nam, si esta correctamente instalado te aparecerá una ventana de NAM con la bienvenida, muestra la versión, autores, entre otra información.
Saludos!!
hola mi nombre es juan y yo tambien tanía el problema de:
ns
Usage: host [-v] [-a] [-t querytype] [options] name [server]
Listing: host [-v] [-a] [-t querytype] [options] -l zone [server]
Hostcount: host [-v] [options] -H [-D] [-E] [-G] zone
para resolverlo desinstale el ns que tenía que corresponde a otro programa, sin embargo seguia apareciendo lo mismo.
lo que hice fue desinstalar el programa con el siguiente comando
sudo apt-get purge host
posterior a eso aplicaba el comando ns y me aparecia comando no encontrado
Despues de todo volvi a instalar el ns siguiendo los pasos sin embargo hay que observar bien la modificacion del bashrc y verificar que existan las carpetas ruta y librerias
eso
ojala les sirva
hola Raquel, cuando ejecuto ./install, cuando empieza a compilar el OTcl me da un error y no se a que se debe.. es el siguiente.
* Build OTcl-1.13
============================================================
No .configure file found in current directory
luego empieza a chequear todo y luego me da el make failed con el siguiente mensaje
No explicit static compilation flag; setting V_STATIC to ""
checking for dlopen in -ldl... yes
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
rm -f libotcl.so otcl.o so_locations
gcc -c -g -O2 -DNDEBUG -DUSE_SHM -fpic -I. -I/usr/src/ns-allinone-2.34/include -I/usr/src/ns-allinone-2.34/include -I/usr/src/ns-allinone-2.34/include -I/include otcl.c
ld -shared -o libotcl.so otcl.o
otcl.o: In function `OTclDispatch':
/usr/src/ns-allinone-2.34/otcl-1.13/otcl.c:495: undefined reference to `__stack_chk_fail_local'
otcl.o: In function `Otcl_Init':
/usr/src/ns-allinone-2.34/otcl-1.13/otcl.c:2284: undefined reference to `__stack_chk_fail_local'
ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] Error 1
otcl-1.13 make failed! Exiting ...
problema resuelto.. el otcl tiene problemas con el gcc 4.4 hay q instalar el gcc 4.3 y modificar el makefile.in para que lo utilice
Estaba buscando la solución al problema pero veo que ya está solucionado...
Gracias Joel por tu aporte y por compartir la solución.
Saludos!!
Hola, yo también tuve el problema de que salía:
xxx.tcl does not exist
Esto es porque estás haciendo referencia a otro programa... primero te piden instalar "apt-get install host" y con eso instalas un "ns" distinto, que es en realidad un "Name Service".
La solución es primero borrar eso, con:
"apt-get purge host"
Luego no es necesario que rehagas toda la instalación, basta solamente con hacer ./install dentro del directorio de NS.
Finalmente, indicar cuál es la ruta de acceso al programa NS.
Para esto primero ir a la carpeta de los ejecutables de NS (cambia la palabra "carlos" según tu PC, y mi versión es 2.34 en Ubuntu 9.04):
cd /home/carlos/ns-allinone-2.34/bin
Y luego:
export PATH=$PATH:/home/carlos/ns-allinone-2.34/bin
Con eso debería funcionar bien. Espero ayudar mucho.
necesito tu ayuda, realize todos los pasos y resulta que no me funciona el nam, que puede estar pasando, de igual manera cuando le doy ejecutar el archivo .tcl me saca un error en tcl-object. Que puede estar pasando.
No me funciona el nam y ademas cuando ejecuto el archivo .tcl me sale un error en tcl-object, que puede pasar. espero tu ayuda lo mas pronto posible.
gracias
Estimado,
En realidad no he tenido inconvenientes con ese tipo de errores, pero me puedes decir en que versión de ubuntu instalaste y cual es la versión de ns2, puede ser que el error esté en la configuración de variables de entorno debido a las diferentes versiones del programa ns2 que existen o que la ruta dada esté incorrecta.
Podrías mostrar el error exacto que te muestra al ejecutar ns2 (nam y tcl) y las variables de configuración que añadiste al archivo .bashrc??
Con esa información se te ayudaría a buscar una solución más acertada.
Saludos..!!
PD: Hasta que punto te funcionó la instalación como se explica en el post??
Hola Raquel:
Mira el error que me muestra cuando le doy nam es:
nam:
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox {
%W yview scroll [expr {- (%D)}] units
}
bind Li..."
De la misma manera cuando ejecuto el archivo .tcl me muestra lo siguiente:
warning: no class variable Tracefile::debug_
see tcl-object.tcl in tclcl for info about this warning.
diana@diana-laptop:~/Escritorio/ns-example$ nam:
[code omitted because of length]
: no event type or button # or keysym
while executing
"bind Listbox {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {
bind Listbox {
%W yview scroll [expr {- (%D)}] units
}
bind Li..."
ya lo he desintalado y vuelto a instalar siguiendo cada uno de los pasos y nunca me saca un error, lo estoy nstalando en ubuntu 9.04 y la version del ns2 es la misma yo sigo cada uno de los pasos que tu indicas pero nada.
Espero nuevamente tu ayuda, gracias
AH! tu me pediste tambien que te mostrara lo del gedit de bashrc, es este:
# LD_LIBRARY_PATH
OTCL_LIB=/home/diana/ns-allinone-2.31/otcl-1.13
NS2_LIB=/home/diana/ns-allinone-2.31/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/diana/ns-allinone-2.31/tcl8.4.14/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/diana/ns-allinone-2.31/bin
XGRAPH=$XGRAPH:/home/diana/ns-allinone-2.31/tcl8.4.14/unix
XGRAPH=$XGRAPH:/home/diana/ns-allinone-2.31/tk8.4.14/unix
NS=/home/diana/ns-allinone-2.31/ns-2.31/
NAM=/home/diana/ns-allinone-2.31/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM
Por lo visto la configuración de variables está correcta de acuerdo con la versión 2.31 de ns, asi que se descarta la posibilidad de error, pero sería recomendable que instalarás la versión más reciente de ns en Ubuntu 9.04.
En conclusión, de acuerdo a lo investigado el problema está en la versión 9.04 de Ubuntu ya que ésta provee gcc-4.4 mientras que otcl requiere gcc-4.3
Para esto tienes que instalar el gcc 3.4 y luego modificar el makefile.in
En la dirección de abajo describen la instalación de ns 2.33 en Ubuntu 9.04 y como modificar el makefile.in (esto te puede servir ya que tienen los mismos errores)
http://www.techquark.com/2009/09/install-ns-2-on-ubuntu-904.html
Espero que te sirva de ayuda y comentas como te fue.
Saludos..!!
Hola Raquel muy bueno tu tutorial, me preguntaba si talvés me podrías ayudar con un ejemplo en ns-2 de un enlace 802.11a, espero puedas ayudarme Gracias.
Publicar un comentario