Errores en la instalación de ns con bash 3.1.x

El simulador tiene un fallo en las librerías que distribuye con el paquete all-in-one (versiones 2.28 y 2.29), que hace que no se pueda compilar. Me he enfrentado a este problema al intentar instalar el simulador en dos ordenadores con una recién instalada.

Se produce con el intérprete bash en su versión 3.1.x o superior, que yo haya visto. Con las versiones 3.0.x va bien.

El error que da en primer lugar es:

checking system version (for dynamic loading)... ./configure: line 7624: syntax error near unexpected token `)'
./configure: line 7624: ` OSF*)'

(El número de línea puede variar de una distribución a otra)

Este error no se produce por esa salida, «OSF*)», que es una simple comprobación y está correcta, sino por un error de sintaxis que hay en otra parte. Está en 3 paquetes de los que se distribuyen en el ns-allinone: tcl, tk y otcl. Tendremos que buscar los siguientes archivos:

  • tcl: archivo tcl8.x.x/unix/tcl.m4.
  • tk: archivo tk8.x.x/unix/tcl.m4. Igual que para tcl.
  • otcl: archivo otcl-1.x/configure.in. Igual que para tcl y tk.

Dentro de esos archivos buscamos las líneas que contengan:
system=MP-RAS-`awk '{print $3}' /etc/.relid'`
y se sustituyen por:
system=MP-RAS-`awk '{print $3}' /etc/.relid`
Es decir, hay que quitar el apóstrofe del final.

Después de editar los archivos hay que ejecutar «autoconf» en cada directorio que se modifique, para volver a generar el script configure. A continuación, el script de instalación debería funcionar sin ningún problema.

Actualización: he enviado un informe de este problema al sistema de seguimiento de bugs en SourceForge: Configuration error in tcl, tk and otcl.

Share

Cómo NO pensar en un algoritmo de planificación de huecos para OBS

Sea un algoritmo de planificación para OBS LAUC (Latest Available Unscheduled Channel) con Void Filling (rellenado de huecos).

La forma correcta de implementarlo NO se hará pensando que el ordenador es inteligente de verdad y va a entender que tú le quieres decir que mire si se solapa con la planificación anterior o con la siguiente a la vez, sobre todo si lo que escribes dice que mire si se solapa con uno o con el resto de los huecos libres.

Vamos, que lo que tiene que hacer el algoritmo es comprobar si se solapa con una planificación cada paso del bucle, y no con dos a la vez.

Lo que más gusto da de esto es resolver el problema a las 8 de la mañana, menos de una hora después de llegar al curro 🙂

Me imagino que la mayoría de la gente que haya leído esto no se habrá coscado de nada, sólo necesitaba desahogarme un poco.

Share