Instalacion Alberto Herrera - ASTROINGENIERIA/ASTROUFRO GitHub Wiki

Instalacion de "ACS for Dummies"

En el presente documento se describen los pasos necesarios para poder llevar a cabo la instalacion de Alma Common Software (ACS) en un equipo portatil. En una primera instancia se detallaran las caracteristicas del equipo utilizado para la instalacion, y posteriormente se describira el paso a paso de la misma.

CARACTERISTICAS DEL EQUIPO

CONOCIMIENTOS PREVIOS A LA INSTALACION

  • ¿Que arquitectura debo elegir? A la hora de elegir la arquitectura del sistema CentOS a utilizar, es necesario tener en cuenta que si se posee un equipo con un procesador de la familia Intel la arquitectura correspondiente es la i386 (en referencia a la familia de procesadores Intel x86 en especifico a la version Intel i80386) arquitectura que define el sistema operativo a 32 bits, o bien x86_64 (en referencia a la familia de procesadores intel compatibles con arquitecturas de 32 bits y 64 bits), .Si se posee un equipo con un procesador de la familia AMD la arquitectura correspondiente es la x86_64 o en algunas ocaciones denominado amd64. Cabe destacar que la mayoria de los sistemas operativos vienen en ambas versiones (Procesadores basados en el intel 80386 y reconocida como i386, y procesadores basados en arquitectura dual x86_64).

  • ¿Que hacer si no se utiliza el usuario root? En caso de no utilizar el usuario root, es necesario que el usuario que se este utilizando tenga permisos de super usuario, por lo que es necesario modificar el archivo ubicado en /etc/sudoers con cualquier editor de texto plano (vim, nano, gedit, etc) y añadir debajo de la definicion del usuario root el usuario en cuestion añadiendo exactamente los mismos atributos que el usuario root posee, con esto, el usuario utilizado en cuestion podra realizar cualquier tarea que necesite de un super usuario (dentro de ellas la instalacion de paquetes, necesaria para el siguiente paso).

  • ¿Como realizar una instalacion limpia? Antes de realizar el proceso de instalacion, es recomendable realizar una actualizacion al sistema de gestor de paquetes utilizado por CentOS, para esto es necesario seguir la siguiente cadena de comandos en su orden respectivo. sudo yum clean all -> sudo yum update -> sudo yum upgrade -> reboot .

  • ¿Que hace el comando source? Cuando se ejecuta un script o comando dentro de una consola, este crea un sub proceso (proceso hijo) el cual es ejecutado por la shell (proceso padre), si el comando o script ejecutado realiza modificaciones en las variables de entornos del sistema, estos no seran permanentes sino temporales hasta que la ejecucion del comando o script finalice. Para efectos del proceso de compilacion en la instalacion de ACS, se utiliza el comando source de Bash, el cual permite dejar de manera permanente los cambios realizados a la hora de ejecutar un comando o script.

INSTALACION DE ACS

Para la instalacion de ACS copie y pegue el siguiente comando, en una consola desde el usuario root, si no esta logeado como el usuario root use sudo -s y luego el comando de instalacion. Cabe destacar que es necesario tener configurada la clave publica para el servicio SSH, necesaria para la compilacion del producto externo Ant, si esta no esta configurada porfavor dirigirse a la seccion de Referencias. Para el detalle de la instalacion porfavor continuar leyendo el documento:

  • cd /; yum clean all; yum update -y; yum upgrade -y; yum install -y ksh blas-devel expat-devel gcc-c++ byacc patch cvs subversion openssh git libX11-devel ncurses-devel gdbm-devel bzip2-devel zlib-devel sqlite-devel openssl-devel db4-devel openldap-devel freetype-devel libpng-devel libxml2-devel libxslt-devel gsl-devel flex epel-release doxygen autoconf213; yum list -y; yum install -y xemacs python-pip python-virtualenv; yum list -y; wget https://bootstrap.pypa.io/ez_setup.py -O - | python; git clone https://bitbucket.org/AlbertoHP/jdk; rpm -ivh /jdk/jdk-7u79-linux-i586.rpm; rm -rf /jdk; pip install virtualenv==13; git clone https://bitbucket.org/AlbertoHP/acs; unzip /acs/ACS-master.zip; cp -rf /ACS-master/ /ACS; rm -rf /ACS-master; rm -rf /acs; mkdir /alma; source /ACS/LGPL/acsBUILD/config/.acs/.bash_profile.acs; wget http://download1590.mediafire.com/79qptu7qobeg/tdy39pqhr9j644i/extprod.zip; unzip /extprod.zip; rm -rf /extprod.zip; rm -rf /ACS/ExtProd/PRODUCTS; cp -rf /AlbertoHP-acs_extprod-c7392bf99703 /ACS/ExtProd/PRODUCTS/; rm -rf /AlbertoHP-acs_extprod-c7392bf99703; cd /ACS/ExtProd/INSTALL/; source ./buildTools

Con esto los productos externos de ACS estaran instalados correctamente, posteriormente es necesario copiar los modulos de python al directorio alma creado anteriormente en la raiz del sistema, exportar las variables de entorno y realizar el make para la instalacion de ACS:

  • cd /ACS/ExtProd/INSTALL/; export MAKE_NOSTATIC=yes; export MAKE_NOIFR_CHECK=on; cd /ACS; make

Instalacion de las dependencias

  • Nombre del paquete: epel-release (sudo yum install epel-release)
  • Nombre del paquete: ksh (sudo yum install ksh)
  • Nombre del paquete: blas-devel (sudo yum install blas-devel)
  • Nombre del paquete: expat-devel (sudo yum install expat-devel)
  • Nombre del paquete: jdk-1.7.0 (Descargado desde http://www.oracle.com/technetwork/es/java/javase/downloads/jdk7-downloads-1880260.html)
  • Nombre del paquete: pip (sudo yum install python-pip)
  • Nombre del paquete ez_setup (wget https://bootstrap.pypa.io/ez_setup.py -O - | python)
  • Nombre del paquete: gcc-g++ (sudo yum install gcc-c++)
  • Nombre del paquete: byacc (sudo yum install byacc )
  • Nombre del paquete: patch (sudo yum install patch )
  • Nombre del paquete: cvs (sudo yum install cvs )
  • Nombre del paquete: subversion (sudo yum install subversion )
  • Nombre del paquete: openssh (sudo yum install openssh )
  • Nombre del paquete: git (sudo yum install git )
  • Nombre del paquete: libX11-devel (sudo yum install libX11-devel )
  • Nombre del paquete: libncurses-devel (sudo yum install ncurses-devel )
  • Nombre del paquete: libgdbm-devel (sudo yum install gdbm-devel )
  • Nombre del paquete: libbz2-devel (sudo yum install bzip2-devel )
  • Nombre del paquete: zlib-devel (sudo yum install zlib-devel )
  • Nombre del paquete: libsqllite3-devel (sudo yum install sqlite-devel )
  • Nombre del paquete: openssl-devel (sudo yum install openssl-devel )
  • Nombre del paquete: libdb4.5-devel (sudo yum install db4-devel )
  • Nombre del paquete: openldap-devel (sudo yum install openldap-devel )
  • Nombre del paquete: libfreetype-devel (sudo yum install freetype-devel )
  • Nombre del paquete: libpng12-devel (sudo yum install libpng-devel )
  • Nombre del paquete: libxml2-devel (sudo yum install libxml2-devel )
  • Nombre del paquete: libxslt-devel (sudo yum install libxslt-devel )
  • Nombre del paquete: python-virtualenv (sudo yum install python-virtualenv)
  • Nombre del paquete: gsl-devel (sudo yum install gsl-devel )
  • Nombre del paquete: flex (sudo yum install flex )
  • Nombre del paquete: xemacs (sudo yum install xemacs )
  • Nombre del paquete: doxygen (sudo yum install doxygen )
  • Nombre del paquete: autoconf2.1 (sudo yum install autoconf213 )
  • Nombre del paquete: bc (Este paquete ya se encuentra instalado)
  • Nombre del paquete: autoconf (Este paquete ya se encuentra instalado)
  • Nombre del paquete: util-linux (Este paquete ya se encuentra instalado)
  • Nombre del paquete: unzip (Este paquete ya se encuentra instalado)
  • Nombre del paquete: time (Este paquete ya se encuentra instalado)
  • Nombre del paquete: gcc (Este paquete ya se encuentra instalado)
  • Nombre del paquete: make (Este paquete ya se encuentra instalado)
  • Nombre del paquete: gcc-fortran (Este paquete ya se encuentra instalado)
  • Nombre del paquete: vim (Este paquete ya se encuentra instalado)
  • Nombre del paquete: libncursesw-devel (Este paquete ya se encuentra instalado)
  • Nombre del paquete: readline (Este paquete ya se encuentra instalado)
  • Nombre del paquete: gdbm (Este paquete ya se encuentra instalado)
  • Nombre del paquete: xemacs-sumo (Este paquete ya se encuentra instalado)
  • Nombre del paquete: sunrpc (Se ha optado por ignorar este paquete)
  • Nombre del paquete: mintty (Se ha optado por ignorar este paquete)

Copia del codigo fuente

Para esta etapa de la instalacion, es necesario importar el codigo fuente desde el repositorio de ALMA mediante el siguiente comando cd / y posteriormente sudo git clone https://github.com/ACS-Community/ACS, este proceso puede tomar mucho tiempo dependiendo de la conexion de red (Con una descarga de 2 Mb/s el proceso tarda al rededor de 30 minutos).

Compilacion del codigo fuente

  1. Es necesario crear el directorio de alma mediante el comando sudo mkdir /alma/ y cambiar el propietario de esta al usuario que realizara la compilacion mediante el comando sudo chown -R <user> /alma en este caso el usuario es alberto por lo que el comando quedaria como sudo chown -R Alberto /alma.

  2. Para la correcta compilacion de todos los productos externos de ACS, es necesario tener definida las variables de entorno de manera correcta ya que si alguna de estas esta mal definida o no existe, la instalacion de cualquiera de los modulos es propensa a fallar. Cuando se copia el codigo fuente, viene en el un bash con la definicion de todas las variables de entorno que la compilacion necesita. Para su correcta carga primero nos ubicaremos como usuario root mediante el comando sudo -s, y posteriormente cargaremos las variables de entorno a nuestra bash mediante el comando source /ACS/LGPL/acsBUILD/config/.acs/.bash_profile.acs, con esto todas las variables de entorno deberian haber sido cargadas en la bash actual. A modo de prueba una vez realizado el comando anterior al ver a donde apunta por ejemplo la variable ACE_ROOT mediante el siguiente comandoecho $ACE_ROOT deberia apuntar a /alma/ACS-2015.4/TAO/ACE_wrappers/build/linux.

  3. Una vez comprobado el correcto funcionamiento de las variables de entorno, es necesario descargar los productos externos utilizados por la compilacion de ACS, mediante el comando cd ACS/ExtProd/PRODUCTS y luego source ./download-products.sh .

  4. Una vez descargados los ficheros necesarios para la compilacion de los productos externos que ACS utiliza, es necesario compilarlos mediante comando cd /ACS/ExtProd/INSTALL y luego source ./buildTools . Cabe destacar que dicho proceso puede tardar varios minutos incluso horas dependiendo del procesador del equipo, ademas que es necesaria la conexion a internet para una correcta compilacion.

  5. A veces, la compilacion del modulo buildPyModules a pesar de que aparece como compilada (OK) esta en realidad no lo esta, debido a que no es capaz de obtener librerias tales como pytz, six, numpy, etc. Para asegurarnos de que el Python con el que trabajara ACS tiene las librerias necesarias tipiaremos el siguiente comando sudo -s seguido de rm -rf /alma/ACS-2015.4/Python/lib/python2.6; cp -rf /usr/lib/python2.6/ /alma/ACS-2015.4/Python/lib/; rm -rf /alma/ACS-2015.4/Python/include/python2.6; cp -rf /usr/include/python2.6/ /alma/ACS-2015.4/Python/include/; rm -rf /alma/ACS-2015.4/Python/bin/python; rm -rf /alma/ACS-2015.4/Python/bin/python2.6; cp -rf /usr/bin/python /alma/ACS-2015.4/Python/bin/; cp -rf /usr/bin/python2.6 /alma/ACS-2015.4/Python/bin/; cd /ACS/ExtProd/INSTALL/; source ./buildPyModules

  6. Una vez compiladas todos los productos externos de ACS, entonces es necesario como paso previo a la compilacion de ACS definir dos nuevas variables de entorno mediante los comandos export MAKE_NOSTATIC=yes y export MAKE_NOIFR_CHECK=on

  7. Por ultimo, ya es posible realizar la compilacion de ACS. Si el proceso es ejecutado en un equipo con procesador multinucleo entonces la compilacion se realizara mediante el siguiente comando cd /ACS seguido por MAKE_PARS=" -j nNucleos " make donde nNucleos es el numero de nucleos que posea el equipo en el que se trabaja. En este caso el equipo posee 2 nucleos por lo que el comando se ejecutario asi MAKE_PARS=" -j 2 " make . En caso de que el procesador no sea multinucleo entonces la compilacion se realizara mediante el siguiente comando cd /ACS seguido por make.

EJECUTANDO ACS POR PRIMERA VEZ

Si todos los pasos anteriores fueron realizados tal y como se mencionan en el presente documento, entonces es necesario realizar los ultimos ajustes para poder ejecutar correctamente los servicios de ACS, los cuales seran detallados en pasos a continuacion.

  1. Es necesario instalar un paquete adicional, el cual se instala mediante el siguiente comando yum install -y procmail y posteriormente realizando un yum update -y seguido por yum upgrade -y y por ultimo yum list -y.

  2. Es necesario verificar que el archivo de host de linux este bien configurado, si no es asi probablemente ACS no pueda iniciar sus servicios. Es por eso que el fichero /etc/hosts sera usado como la interface de red de ACS para la red de comunicaciones de ACS. Esta interface puede ser el loopback local o bien no. Lo importante es que esta este mapeada de manera correcta a una direccion de red (IP).

    Por ejemplo si la maquina que ejecutara ACS se llama acsvm, su dominio fuera localdomain, y la direccion de red de su adaptador de red fuera 10.0.0.100. Si se deseara utilizar el adaptador de red local entonces el fichero /etc/hosts deberia lucir asi:

  • 10.0.0.100 acsvm acsvm.localdomain
  • 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
En caso de que se se desee utilizar el loopback local (No habra comunicacion con el entorno de la red solo a nivel local de la maquina) entonces el fichero `/etc/hosts` deberia lucir asi:

127.0.0.1 acsvm acsvm.localdomain localhost localhost.localdomain localhost4 localhost4.localdomain4

REFERENCIAS

#PROBLEMAS

En esta seccion se detallan los problemas que van surgiendo durante la instalacion del software, y a medida que se van solucionando tambien se comentan sus soluciones, en primera instancia estan los problemas presentados con los productos externos de ACS y luego los problemas presentados durante la compilacion del propio ACS.

Problemas compilacion productos externos

  • buildAnt -> error de Java en testURLKeystoreHTTP (Unico error de 1666 test realizados, compilacion exitosa pero los test no).

  • SOLUCION: Este error se produce cuando la conexion es interrumpida, es un error en un test por lo que no significa mayor problema. Como solucion, se recomienda encarecidamente asegurar la conexion a internet (Buena conexion a internet) antes de realizar la instalacion de ACS.

  • buildPyModules -> No puede importar el modulo pytz, pero si esta en el sistema. Al parecer hay un problema con las variables de entorno o el source que se utiliza en el bash.

  • SOLUCION: Primero sudo -s y luego pip install virtualenv==13.

  • buildTAO -> Compilacion exitosa, pero dentro del registro se encontro que falta el siguiente archivo DLSYM_VX.patch .

  • buildTcltk -> Compilacion exitosa, pero dentro del registro se encontro que falta el siguiente archivo /ACS/ExtProd/PRODUCTS/tcltk/TclTk8.5.15-Linux-2.6.32-642.4.2.el6.i686-NO_MSQL .

           -> AltKeyInDialog AmpMenuArgs AmpWidget ButtonAutoInvoke ButtonDown ButtonEnter ButtonInvoke ButtonLeave ButtonUp CancelRepeat CheckEnter CheckInvoke CheckLeave CheckRadioInvoke EntryAutoScan EntryBackspace EntryButton1 EntryClosestGap EntryGetSelection EntryInsert EntryKeySelect EntryMouseSelect EntryNextWord EntryPaste EntryPreviousWord EntryScanDrag EntryScanMark EntrySeeInsert EntrySetCursor EntryTranspose EventMotifBindings FindAltKeyTarget FirstMenu GenerateMenuSelect GetSelection ListboxAutoScan ListboxBeginExtend ListboxBeginSelect ListboxBeginToggle ListboxCancel ListboxDataExtend ListboxExtendUpDown ListboxMotion ListboxSelectAll ListboxUpDown MbButtonUp MbEnter MbLeave MbMotion MbPost MenuButtonDown MenuDownArrow MenuEscape MenuFind MenuFindName MenuFirstEntry MenuInvoke MenuLeave MenuLeftArrow MenuMotion MenuNextEntry MenuNextMenu MenuRightArrow MenuUnpost MenuUpArrow PlaceWindow PostOverPoint RestoreFocusGrab RestoreOldGrab SaveGrabInfo ScaleActivate ScaleButton2Down ScaleButtonDown ScaleControlPress ScaleDrag ScaleEndDrag ScaleIncrement ScreenChanged ScrollButton2Down ScrollButtonDown ScrollButtonUp ScrollByPages ScrollByUnits ScrollDrag ScrollEndDrag ScrollSelect ScrollStartDrag ScrollToPos ScrollTopBottom SetAmpText SetFocusGrab SourceLibFile TabToWindow TextAnchor TextAutoScan TextButton1 TextClosestGap TextCursorInSelection TextInsert TextKeyExtend TextKeySelect TextNextPara TextNextPos TextNextWord TextPasteSelection TextPrevPara TextPrevPos TextResetAnchor TextScanDrag TextScanMark TextScrollPages TextSelectTo TextSetCursor TextTranspose TextUpDownLine TraverseToMenu TraverseWithinMenu UnderlineAmpersand button canvas checkbutton entry frame label labelframe listbox mc mcmax mcmaxamp menubutton message panedwindow pkgconfig radiobutton scale scrollbar spinbox text toplevel
    

FAILED

         ->> AltKeyInDialog AmpMenuArgs AmpWidget ButtonAutoInvoke ButtonDown ButtonEnter ButtonInvoke ButtonLeave ButtonUp CancelRepeat CheckEnter CheckInvoke CheckLeave CheckRadioInvoke EntryAutoScan EntryBackspace EntryButton1 EntryClosestGap EntryGetSelection EntryInsert EntryKeySelect EntryMouseSelect EntryNextWord EntryPaste EntryPreviousWord EntryScanDrag EntryScanMark EntrySeeInsert EntrySetCursor EntryTranspose EventMotifBindings FindAltKeyTarget FirstMenu GenerateMenuSelect GetSelection ListboxAutoScan ListboxBeginExtend ListboxBeginSelect ListboxBeginToggle ListboxCancel ListboxDataExtend ListboxExtendUpDown ListboxMotion ListboxSelectAll ListboxUpDown MbButtonUp MbEnter MbLeave MbMotion MbPost MenuButtonDown MenuDownArrow MenuEscape MenuFind MenuFindName MenuFirstEntry MenuInvoke MenuLeave MenuLeftArrow MenuMotion MenuNextEntry MenuNextMenu MenuRightArrow MenuUnpost MenuUpArrow PlaceWindow PostOverPoint RestoreFocusGrab RestoreOldGrab SaveGrabInfo ScaleActivate ScaleButton2Down ScaleButtonDown ScaleControlPress ScaleDrag ScaleEndDrag ScaleIncrement ScreenChanged ScrollButton2Down ScrollButtonDown ScrollButtonUp ScrollByPages ScrollByUnits ScrollDrag ScrollEndDrag ScrollSelect ScrollStartDrag ScrollToPos ScrollTopBottom SetAmpText SetFocusGrab SourceLibFile TabToWindow TextAnchor TextAutoScan TextButton1 TextClosestGap TextCursorInSelection TextInsert TextKeyExtend TextKeySelect TextNextPara TextNextPos TextNextWord TextPasteSelection TextPrevPara TextPrevPos TextResetAnchor TextScanDrag TextScanMark TextScrollPages TextSelectTo TextSetCursor TextTranspose TextUpDownLine TraverseToMenu TraverseWithinMenu UnderlineAmpersand button canvas checkbutton entry frame label labelframe listbox mc mcmax mcmaxamp menubutton message panedwindow pkgconfig radiobutton scale scrollbar spinbox text toplevel

FAILED

  • buildOpenSpliceDDS -> Compilo bien, pero al leer el registro falta /ACS/ExtProd/INSTALL/../PRODUCTS/OpenSpliceDDSV5.3-x86.linux2.6-gcc412-gnuc25-HDE.tar.gz y luego se detonan muchos ficheros no encontrado.

  • buildJacORB -> Compila bien, pero al leer el registro no puede conectarse a un repositorio git scm:git:[email protected]:JacORB/JacORB.git/jacorb-services y una serie de repos mas.

Problemas compilacion ACS

  • A la hora de realizar la compilacion de ACS, no se encuentra el package de java alma.ACSErr.ErrorTrace

  • SOLUCION: Este paquete se instalo correctamente, luego del fix del modulo de buildPyModules.

  • Estos paquetes no se instalan al hacer el make:

  • SOLUCION: Todos los paquetes fueron instalados exitosamente, luego del fix del modulo de buildPyModules.

⚠️ **GitHub.com Fallback** ⚠️