Guia de Instalación Modula-31: Critical Mass Modula-3, cm32
sudo apt-get install <paquetes>
paquetes previos que deben ser instalados.
sudo apt-get install autoconf automake autotools-dev build-essential
cpp-4.1 freeglut3-dev gcc-4.1 gcc-4.1-base libgl1-mesa-dev libglu1-mesa-dev
libice-dev libltdl3 libncurses5-dev libsm-dev libx11-dev libxau-dev
libxaw7-dev libxaw-headers libxdmcp-dev libxext-dev libxmu-dev libxmu-headers
libxpm-dev libxt-dev mesa-common-dev odbcinst1debian1 texinfo unixodbc
x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev
xtrans-dev dpkg-dev g++ m4 flex lesstif2-dev lesstif-bin
En caso de no encontrar algún paquete buscarlo en internet http://packages.ubuntu.com/<paquete>
descargarlo e instalarlo manualmente.
El compilador y runtime cm3 versión 5.4.0 están escritos en Modula-3,
es necesario tener instalado unos ejecutables binarios (bootstrap)
previamente para poder iniciar el proceso de compilación del cm3 completo:
Entrar en una consola para seguir los pasos.
- cd
- mkdir cm3-boot
- cd cm3-boot
- 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
- Descomprimir con
tar zxvf cm3-min-POSIX-LINUXLIBC6-5.4.0.tgz
- Ejecutar el archivo cminstall con
sudo ./cminstall
- Contestar las preguntas que permiten instalar en el sistema el bootstrap,
considerando los siguientes aspectos:
- La primera pregunta es sobre que directorio dejará instalado cm3,
la respuesta entre corchetes [] (por defecto) es [/usr/local/cm3].
Si previamente no se instaló un cm3, esta respeusta es correcta.
- Si la pregunta se trata de librerias (Motif, X11, ODBC):
- La respuesta preferida es: /usr/lib
- Cualquier pregunta que después de ser contestada avise que no existen
todos los archivos buscados en /usr/lib, tales como libXmu.a, libX11.a,
etc, por ejemplo, hará dos preguntas derivadas a contestar de la siguiente
manera: no, yes:
- Primero pregunta si quiere cambiale de nombre a las bibliotecas, se
le contesta que no: 'Would you like to change the library names? [yes]:'
no
- Luego de esto preguntará que si desea continuar de todas maneras,
decimos si: 'Would you like to continue nonetheless? [yes]:' yes
- Si la pregunta se trata de un programa (vi, gcc, as, ar):
- Contestar con: /usr/bin/<programa> donde programa es vi,
gcc, ar o as. En estos casos se puede dar
enter sin dar la respuesta pues cminstall asume la respuesta igual
a entre corchetes [/usr/bin/programa]
- Si una pregunta se repite, verificar que el programa se encuentre
en la ruta indicada en la respuesta.
- 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 de consola diga que se ha copiado exitosamente
en /usr/local/cm3, mirando el contenido de esa carpeta con ls
/usr/local/cm3
- El proceso cminstall se puede parar tecleando Ctrl+C en la consola,
en caso de haber contestado mal alguna pregunta, para recomenzar .
Debido a que cm3 compila por default el sistema de hilos con la libreía
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
- Dentro del arreglo SYSTEM_LIBS introducir está linea antes de la
última variable de ese arreglo, TCP:
...
"PTHREAD" : [ "-L/usr/lib",
"-lpthread" ],
"TCP" : [ ]
}
- 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"
]
- Guardar los cambios.
- Comprobar el funcionamiento y correcto del archivo de configuración
invocando:
/usr/local/cm3/bin/cm3
Observar si hay salida de error por el archivo cm3.cfg.
- Si el mensaje es
-- building in LINUXLIBC6 -- pero no termina, dar Ctrl+C
para terminar el proceso. En este caso es posible que nos diga también
Fatal Error: unable to get absolute path for "../ruta/extraña":
Invalid Pathname. Esto quiere decir que intentó buscar archivos fuentes
de Modula-3 pero no encontró una ruta apropiada. De todas maneras
el bootstrap está bien instalado.
- Si el mensaje es, nothing to be build, el bootstrap está
bien instalado.
- Si el mensaje indica, quake runtime error, verificar el archivo
cm3.cfg.
- Verificar si en el directorio actual se generó una carpeta con el
nombre LINUXLIBC6 y borrarla en tal caso
ls
rm -rf LINUXLIBC6
- Crear carpeta de fuentes de cm3 (estando en el home) llamada cm3-5.4:
- cd
- mkdir cm3-src
cd cm3-src
- 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.
- Descomprimir las fuentes
tar zxvf cm3-5.4.tgz
Ajustar las variables de entorno para que sepa de los binarios de
cm3, agregar en el archivo ~/.bashrc al final las
siguientes tres export: (Ejecutar el comando kate
~/.bashrc para agregar las lineas).
- Avisar que queremos usar cm3 con la variable PTHREAD
export CM3="/usr/local/cm3/bin/cm3 -DPTHREAD"
- Avisar de todos los binarios de cm3 incluido el compilador:
export PATH=''/usr/local/cm3/bin'':$PATH
- Configurar el linker para que sepa de las librerias dinámicas presentes
de cm3:
export LD_LIBRARY_PATH=''/usr/local/cm3/lib'':$LD_LIBRARY_PATH
- Configurar las págian de ayuda de man
export MANPATH=''/usr/local/cm3/man'':$MANPATH
- Guardar cambios y recargar las nuevas variables en la consola ejecutando
el comando
bash
sudo ldconfig -v
Ir a la carpeta de scripts de cm3:
cd cm3/scripts
- 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
#....
- 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:
sudo ./do-cm3-std.sh buildship
- Si aparecen errores, no preocuparse, el script termina y avisa del
error pero se puede recomenzar con el anterior comando después de
analizar la causa y hacer la corrección (en cm3.cfg, o instalar algún
paquete del SO), sin recompilar lo que ya se habia compilado ahorrando
tiempo.
- 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, es decir
se repite el proceso totoalmente.
- 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
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
Invocar desde la consola
mentor
En la ventana MENTOR, ver las animaciones de la Session Dgraph
del algoritmo Depth First Search (parte izquierda en la ventanade
mentor), y con varias vistas (mostradas en la parte derecha) de la
ventana de Mentor. Explorar las demás animaciones también.
mentor @M3showheap=showheap
mentor @M3shownew=shownew
Los Argumentos @M3x=x permiten ver información sobre el proceso
de Modula-3 con el que se les invoca en una nueva ventana.
- Showheap3: Dar click sobre ''start'' en la ventana de ShowHeap; esta vista
muestra las páginas de objetos localizadas en el heap del proceso
mentor por el runtime de cm3.
- ShowNew4: muestra la actividad del heap del proceso identificando por nombre
los objetos creados. Se comienza el proceso con click en el boton
Control, y luego en Start.
- Si no sale una ventana con el título showheap o shownew, comprobar
el funcionamiento invocando:
showheap
shownew
Realizar las pruebas bajo la cuenta de usuario agregando en el .bashrc
las variables de entorno de la sección 3.2.
Guia de Instalación Modula-31: Critical Mass Modula-3, cm32
This document was generated using the
LaTeX2HTML translator Version 2002-2-1 (1.71)
Footnotes
- ... Modula-31
- UN-Ing. Grupo de software libre EIDOS. http://dis.unal.edu.co/eidos,
https://linux.unal.edu.co, ftp://linux.unal.edu.co.
- ... cm32
- Elego Software Solutions http://modula3.elegosoft.com/cm3
- ... Showheap3
- Ver man showheap
- ... ShowNew4
- Ver man shownew
Daniel Benavides
2007-05-28