Está en la página 1de 8

Guia de Instalación Modula-3*: Critical Mass Modula-3, cm3**

12 de marzo de 2007

1. Paquetes para (k)ubuntu edgy


sudo apt-get install <paquetes>

paquetes autoconf automake autotools-dev build-essential cpp-3.4 flex freeglut3-dev gcc-3.4 gcc-3.4-base libgl1-
mesa-dev libglu1-mesa-dev libice-dev libltdl3 libmotif3 libmotif-dev libncurses5-dev libsm-dev libstdc++6-
4.1-dev libx11-dev libxau-dev libxaw7-dev libxaw-headers libxdmcp-dev libxext-dev libxmu-dev libxmu-
headers libxpm-dev libxt-dev linux-source-2.6.17 m4 mesa-common-dev odbcinst1debian1 texinfo uni-
xodbc x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xlibmesa-gl-dev xtrans-
dev libmotif-dev libmotif3 dpkg-dev g++

2. Instalación bootstrap de cm3


El compilador y runtime cm3 versión 5.4 está escrito en Modula-3, es necesario tener instalado unos ejecutables
binarios (bootstrap) previamente para poder iniciar el proceso de compilación del cm3 completo:

2.1. Instalación cminstall


1. Crear carpeta cm3-boot dentro del home del usuario admin##

2. Descargar cm3-min-POSIX-LINUXLIBC6-5.4.0.tgz del sitio (dentro de la UN) ftp://linux.unal.edu.co/m3/cm3/


y dejar el archivo en la carpeta cm3-boot

3. cd cm3-boot

4. Descomprimir con
tar zxvf cm3-min-POSIX-LINUXLIBC6-5.4.0.tgz

5. ejecutar el archivo cminstall con


sudo ./cminstall

6. Contestar las preguntas considerando los siguientes aspectos:


* UN-Ing. Grupo de software libre EIDOS. http://dis.unal.edu.co/eidos, https://linux.unal.edu.co, ftp://linux.unal.edu.co.
** Elego Software Solutions http://modula3.elegosoft.com/cm3

1
La primera de las preguntas tiene que ver con el lugar donde será instalado todo el sistema en disco, despues
de que termine cminstall. Contestar en /usr/local/cm3 si no hay otro cm3 alli presente.

Las preguntas que tienen una sola respuesta en las opciones tendrán esta respuesta como default, dejarlas en
blanco, ya que si la respuesta es válida (el archivo buscado está allı́) ahorran la tecleada de la ruta y permiten
seguir con la instalación sin equivocarse.

En caso de que el archivo respondido en alguna pregunta no existe, la pregunta se repetirá, si esto ocurre,
verificar que el archivo se enctre en el lugar indicado en la respuesa.

La premisa para contestar las preguntas sobre dónde están las librerias, de X11, toolkits gráficos, etc, es
/usr/lib, es sólo ésto lo que hay que digitar en la mayorı́a de preguntas de ese tipo.

Las preguntas deben ser contestadas con la respuesta y luego presionar Enter o se asume la contestación
vacia (al presionar Enter ) con respuesta igual a la que aparece luego de los corchetes tras la pregunta
[/usr/bin/programa]

La pregunta de dónde estan las librerias de ODBC, cambiar la opción default por /usr/lib

La pregunta sobre donde está gcc, el compilador de C (las fuentes completas de cm3 traen ciertos archivos en
C; Modula-3 puede hacer interface con ese lenguaje), contestarla con /usr/bin/gcc.

Las preguntas de dónde está el assembler (ensamblador) y archiver (y archivador de librerias) contestarlas
con /usr/bin/as, y /usr/bin/ar respectivamente (es la respuesta por default, asi que baswta con dar enter).

Las pregunta de las librerias de X11 siempre buscan en el sistema de archivos para encontrar las mejores
opciones, por ejemplo, al buscar las librerias de X11, el instalador presentará las opciones:

1. /usr/lib
2. /usr/X11R6/lib

En este caso la opción adecuada es cualquiera de las dos (por razones de tener links simbólicos), pero siempre
preferimos /usr/lib.

Cualquier pregunta que después de ser contestada avise que no existen todos los archivos buscados en la
carpeta, tales como libXmu.a, etc, por ejemplo, harán preguntas derivadas a contestar de la siguiente manera:

1. primero pregunta si quiere cambiale de nombre a las librrrias: ’Would you like to change the library
names? [yes]’ no: se le contesta que no.
2. Luego de esto preguntará que si desea continuar de todas maneras: Would you like to continue nonethe-
less? [yes]: le decimos que sı́.

Cuando las preguntas terminan el cminstall exporta (copia) todos los binarios a la carpeta /usr/local/cm3 y
dará unas indicaciones finales.
Verificar que el mensaje diga que se ha copiado exitosamente en /usr/local/cm3, mirando el contenido de esa
carpeta.

2
2.2. Ajustar las Opciones del archivo de configuración /usr/local/cm3/bin/cm3.cfg
Debido a que cm3 compila por default el sistema de hilos con la libreria Pthread del sistema Linux, debemos
introducir la ubicación de Pthreads en el archivo de configuración de cm3 con:
kdesu kate /usr/local/cm3/bin/cm3.cfg

1. Dentro del arreglo SYSTEM LIBS introducir está linea antes de la última variable de ese arreglo, TCP:
...
”PTHREAD” : [ ”-L/usr/lib”, ”-lpthread” ],
”TCP” : [ ]
}

2. También se debe incluir la nueva variable en el array que está más adelante en el arreglo SYSTEM LIBORDER,
escribiendo , ”PTHREAD” antes de cerrar los corchetes [], quedando ası́ :
SYSTEM LIBORDER = [ ”OPENGL”, ”DECPEX”, ”MOTIF”, ”X11”, ”TCP”, ”ODBC”, ”POSTGRES95”,
”FLEX-BISON”, ”LEX-YACC”, ”LIBC”, ”PTHREAD” ]

3. Guardar los cambios.

4. Comprobar el funcionamiento y correctud del archivo de configuración invocando /usr/local/cm3/bin/cm3


desde consola. Observar si hay salida de error por el archivo cm3.cfg.

3. Compilación de las fuentes de cm3-5.4


Notar (y ajustar de ser necesario, ver siguiente apartado) el estado de los links simbólicos en /usr/bin

El link /usr/bin/gcc debe apuntar a /usr/bin/gcc-3.4; al hacer ls -al /usr/bin/gc* observar salida.

• /usr/bin/gcov debe apuntar a /usr/bin/gcov-3.4


• /usr/bin/gccbug debe apuntar a /usr/bin/gccbug-3.4

Ajustar los links con las siguientes instrucciones de consola:

• sudo rm /usr/bin/gcc
• sudo rm /usr/bin/gccbug
• sudo rm /usr/bin/gcov
• sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
• sudo ln -s /usr/bin/gccbug-3.4 /usr/bin/gccbug
• sudo ln -s /usr/bin/gcov-3.4 /usr/bin/gcov

Al hacer ls -al /usr/bin/gc* observar salida.

1. Crear carpeta de fuentes de cm3 (estando en el home) llamada cm3-5.4:


mkdir cm3-5.4

3
2. Bajar las fuentes (cm3-5.4.tgz) de cm3 que se encuentran en ftp://linux.unal.edu.co/m3/cm3, alternativamente
por konqueror usar sftp con alguna máquina que tenga el servidor ssh y los archivos listos. Dejar el archivo
en la carpeta creada.
3. Descomprimir las fuentes
cd cm3-5.4
tar zxvf cm3-5.4.tgz
4. Convertirse en usuario root por consola, para poder instalar después de la compilación en la carpeta
/usr/local/cm3 con:
sudo su
5. Ajustar las variables de entorno para que sepa de los binarios de cm3:

a) Avisar que queremos usar cm3 con la variable PTHREAD


export CM3=”/usr/local/cm3/bin/cm3 -DPTHREAD”
b) Avisar de todos los binarios de cm3 incluido el compilador:
export PATH=/usr/local/cm3/bin:$PATH
c) Configurar el linker para que sepa de las librerias dinámicas presentes de cm3:
1) export LD LIBRARY PATH=/usr/local/cm3/lib
2) ldconfig -v

6. Ir a la carpeta de scripts de cm3:


cd cm3/scripts
7. Abrir el archivo cm3/scripts/def-std-pkgs.sh con kate y cambiar en las lineas 149 hasta la 152, introduciendo
el simbolo # (comentariando) en el comienzo de cada linea, con el fin de no compilar este editor:
# The Juno-2 graphical constraint based editor
#....
8. Ejecutar el script desde la consola, dejándola abierta. Recordar que este proceso tardará de media hora a 45
minutos si no hay más ventanas o procesos corriendo dentro del SO:
./do-cm3-std.sh buildship
9. Si aparecen errores, no preocuparse, el script termina y avisa del error pero se puede recomenzar con el anterior
comando despues de analizar la causa y hacer la corrección (en cm3.cfg, o instalar algun paquete del SO), sin
recompilar lo que ya se habia compilado ahorrando tiempo.
10. En caso extremo de errores numerosos se borra lo instalado en /usr/local/cm3 y se reinstala cminstall, y se
refresca la carpeta de fuentes de cm3, por que queda con archivos de lo que se alcanzó a compilar (binarios
posiblemente dañados), y se repite el proceso totalmente.
11. Al final de la compilación si todo termina bien se verá en la consola las fuentes exportadas:
El mensaje de salida deberia ser al terminar toda la compilación del paquete mentor:
../src/wheeler => /usr/local/cm3/pkg/mentor/src/wheeler

4
MiscFmt.m3 MiscFmt.i3 Wheeler.m3 Wheeler.i3
CharArraySort.m3 CharArraySort.i3
../src/zpaper => /usr/local/cm3/pkg/mentor/src/zpaper
Fn.i3 AlgFn.m3 AlgFn.i3 ViewFn.m3
ViewFn.i3 ViewMFn.m3 ViewMFn.i3 ViewHisto.m3
ViewHisto.i3
. => /usr/local/cm3/bin
mentor
==> /home/danielb/cm3-5.4-Rc /cm3/m3-demo/mentor done

12. Salirse de root con


exit.

4. Pruebas a mentor (m3-demo)


1. Setear la variable PATH en /home/admin##/.bashrc:
Como usuario admin ejecutar con Alt+F2
kate .bashrc
dejar escrito en la última lı́nea:
export PATH=/usr/local/cm3/bin:$PATH

2. Repetir el paso anterior en el usuario normal.

3. Comprobar funcionamiento del programa mentor en cualquier cuenta con el comando en consola:
mentor @M3showheap=showheap
Dar click sobre ”start” en la ventana de ShowHeap, esta vista muestra las páginas de objetos localizadas en
el Heap del proceso por el sistema de tiempo de ejecución de cm3.
En la ventana ver las animaciones del algoritmo Depth First Search en la sesión Dgraph, y varias vistas, Views
mostradas de la parte derecha de la ventana de Mentor.

5
4. Repita la misma prueba pero con la vista ShowNew, de objetos del proceso. Para iniciar el proceso haga
click en el boton Control (se despliega Menu), y luego en Start. Para ver otras opciones vea el menu Control.
Para cerrar haga click en Control y luego en Quit. Ejecute otra sesión como Euclid
mentor @M3shownew

6
5. Finalmente ejecute con la vista ShowThread. La ventana se parece a la de ShowHeap, de click en Start para
iniciar la aplicación. Finalmente Quit para salir.
Nota esta vista tiende a generar un error en tiempo de ejecución que se marca en la consola desde la que se
invoca el programa.
mentor @M3showthread

7
8

También podría gustarte