Herramientas de usuario

Herramientas del sitio


Barra lateral

instalacion

Instalación de ns-3

A continuación se realiza una descripción detallada del proceso de instalación del simulador ns-3 y los elementos que intervienen en él.

Requisitos

Sistema Operativo

  • Sistema operativo tipo Unix (GNU/Linux, BSD, MacOS X) o Windows usando las librerías Cygwin.
  • Toolchain de GNU: compilador gcc, make, gdb, etc

Se usará la distribución GNU/Linux Debian 5.0.3 (Lenny) y su herramienta de paquetería apt como sistema de referencia.

Los ejemplos son extrapolables a otras distribuciones y sistema de paquetes.

Listado de paquetes para Debian

Listado de paquetes Debian necesarios para la instalación de NS-3:

  • gcc (>=4.0): compilador C de GNU
  • g++: compilador C++ de GNU
  • cpp: preprocesador C++ de GNU
  • pkg-config: sistema de gestión y opciones de compilación y enlazado de bibliotecas
  • libsqlite3-dev: librerías para SGBD sqlite3
  • python (>=2.5): lenguaje de programación Python
  • python2.5-dev: librerías de desarrollo Python
  • sudo: proporciona privilegios de root a determinados usuarios
  • mercurial: sistema de control de versiones distribuido
  • bzr: Bazaar, sistema de control de versiones distribuido
  • valgrind: depurador
  • libxml2-dev: archivos de desarrollo de la librería XML de GNOME
  • gsl-bin: librería cientírica de GNU
  • libgsl0-dev
  • libgtk2.0-dev

<box 100% round orange> apt-get install gcc g++ cpp pkg-config libsqlite3-dev python python2.5-dev sudo mercurial bzr valgrind libxml2-dev gsl-bin libgsl0-dev libgtk2.0-dev </box>

Los paquetes anteriores tienen una serie de dependencias que si instalarán automáticamente, la salida del anterior comando será similar a la siguiente en una instalación estándar:

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
gcc ya está en su versión más reciente.
fijado gcc como instalado manualmente.
g++ ya está en su versión más reciente.
fijado g++ como instalado manualmente.
cpp ya está en su versión más reciente.
fijado cpp como instalado manualmente.
python ya está en su versión más reciente.
fijado python como instalado manualmente.
sudo ya está en su versión más reciente.
fijado sudo como instalado manualmente.
mercurial ya está en su versión más reciente.
Se instalarán los siguientes paquetes extras:
  bzrtools gdb libatk1.0-dev libcairo2-dev libdirectfb-dev libdirectfb-extra libexpat1-dev libfontconfig1-dev libfreetype6-dev
  libglib2.0-dev libgsl0ldbl libice-dev libjpeg62-dev libmpeg3-1 libmpeg3-dev libpango1.0-dev libpixman-1-dev libpng12-dev
  libpthread-stubs0 libpthread-stubs0-dev libsm-dev libsysfs-dev libx11-dev libxau-dev libxcb-render-util0-dev libxcb-render0-dev
  libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev
  libxrandr-dev libxrender-dev python-crypto python-paramiko rsync x11proto-composite-dev x11proto-core-dev x11proto-damage-dev
  x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev
  xtrans-dev zlib1g-dev
Paquetes sugeridos:
  bzr-gtk bzr-svn python-pycurl python-kerberos librsvg2-bin gdb-doc libcairo2-doc libglib2.0-doc gsl-ref-psdoc gsl-doc-pdf gsl-doc-info
  gsl-ref-html libgtk2.0-doc libpango1.0-doc sqlite3-doc python-crypto-dbg libc6-dbg kcachegrind alleyoop
Se instalarán los siguientes paquetes NUEVOS:
  bzr bzrtools gdb gsl-bin libatk1.0-dev libcairo2-dev libdirectfb-dev libdirectfb-extra libexpat1-dev libfontconfig1-dev libfreetype6-dev
  libglib2.0-dev libgsl0-dev libgsl0ldbl libgtk2.0-dev libice-dev libjpeg62-dev libmpeg3-1 libmpeg3-dev libpango1.0-dev libpixman-1-dev
  libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libsm-dev libsqlite3-dev libsysfs-dev libx11-dev libxau-dev libxcb-render-util0-dev
  libxcb-render0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev
  libxi-dev libxinerama-dev libxml2-dev libxrandr-dev libxrender-dev pkg-config python-crypto python-paramiko python2.5-dev rsync valgrind
  x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
  x11proto-render-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev zlib1g-dev
0 actualizados, 62 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 79,1MB de archivos.
Se utilizarán 241MB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]?

En la anterior salida, el sistema de paquetes apt-get informa de los paquetes que ya están presentes en el sistema en su versión más reciente, los que se instalarán nuevos y las dependencias extra que es necesario instalar para poder realizar el proceso.

Opcionalmente, para el desarrollo en ns-3 con Python obtener e instalar el paquete pygccxml:

sudo apt-get install gccxml
wget http://sourceforge.net/projects/pygccxml/files/pygccxml/pygccxml-1.0/pygccxml-1.0.0.zip/download
unzip pygccxml-1.0.0.zip 
cd pygccxml-1.0.0
sudo python setup.py install

Ramas de ns-3

El proyecto ns-3 está aun en fase de desarrollo, por lo que cada cierto tiempo se toma una instantánea del proyecto, se depura y lanza como versión estable, etiquetada con su correspondiente número de versión (3.3, 3.4, 3.5, …)

Repositorio de código de ns-3

Las ramas más interesantes de cara al uso y desarrollo con ns-3 son:

  • ns-3-dev: rama de desarrollo, a pesar de estar en continuo cambio, es suficientemente estable como para trabajar con ella.
  • ns-3.X: ramas estables, a día de hoy la más reciente es la 3.5.
  • ns-3.X-RC: ramas candidatas a estable, a día de hoy el proyecto trabaja en la ns-3.6-RC, futura ns-3.6 versión estable.

ns-3-allinone

Aparte de estas ramas principales, cabe destacar ns-3-allinone, la cual únicamente contiene una colección de scripts que facilitan la selección, descarga e instalación de las anteriores ramas citadas (estable, desarrollo, RC) junto con ficheros útiles para realizar pruebas de regresión.

<box>En los ejemplos se instalará la rama de desarrollo mediante los scripts ns-3-allinone</box>

Instalación

Directorio de instalación

Todos los archivos generados durante la instalación de NS-3 y compilación de sus fuentes están contenidos dentro del directorio donde inicialmente se descargó el código fuente. Por tanto, puede eliminarse el simulador borrando simplemente dicho directorio, sin que quede ningún otro rastro en el sistema.

Es recomendable la creación de un directorio para NS-3 dentro del directorio home de usuario.

cd $HOME
mkdir ns-3

Obtener código fuente de NS-3

El código del simulador NS-3 puede obtenerse por dos vías distintas:

  • Descarga mediante Mercurial
  • Descarga mediante archivo comprimido con las fuentes

Descarga a través de Mercurial

El proyecto ns-3 gestiona su repositorio de código con Mercurial. Es necesario tener instalada esta herramienta para poder hacer uso del repositorio.

La descarga de código fuente mediante Mercurial es la opción más recomendable para trabajar sobre la rama de desarrollo ns-3-dev. Mercurial permite de manera fácil tener actualizada la copia de trabajo con todos los cambios que se van incluyendo en el repositorio.

Para realizar una copia de trabajo del repositorio de código, bastará con situarse en el directorio donde se creará la copia y ejecutar:

mkdir repositorio
cd repositorio
hg clone http://code.nsnam.org/ns-3-allinone

Donde el comando hg tiene los siguientes parámetros:

  • hg: ejecutable de la herramienta Mercurial
  • clone: indica que la acción a realizar es la creación de una copia de trabajo
  • http://code.nsnam.org/ns-3-allinone: especifica la rama del repositorio a partir de la que se creará la copia de trabajo

Tras ejecutar el anterior comando, el directorio ns-3-allinone contendrá los scripts que permiten descargar las versiones de desarrollo, estables, etc:

build.py  constants.py  dist.py  download.py  README  util.py

El script download.py permite especificar que rama concreta del repositorio que será descargada. Si no se le pasa parámetro alguno, selecciona por defecto ns-3-dev (rama de desarrollo):

cd ns-3-allinone
./download.py -n ns-3-dev -r ns-3-dev-ref-traces

Donde:

  • ./download.py: script de descarga
  • -n ns-3-dev: indica la rama de código a descargar
  • -r ns-3-dev-ref-traces: descarga los archivos necesarios para las pruebas de regresión

Descarga de archivo comprimido

El código fuente de la versión estable de ns-3 también puede ser descargada en forma de archivo comprimido. Página de descarga de ns-3

Este método es sólo una alternativa al uso de Mercurial.

Una vez descargado el archivo, sólo hay que descomprimirlo:

tar xvjf ns-allinone-3.X.tar.bz2

La estructura de directorios resultantes de la descompresión es similar a la obtenida tras descargar la rama allinone desde el repositorio Mercurial e invocar el script download.py.

instalacion.txt · Última modificación: 2009/11/12 12:05 (editor externo)