Instalar ZeroC Ice para Python en CentOS 5.7

7 02 2012
ZeroC Ice logo

ZeroC Ice logo

Ice o  Internet Communications Engine  es una plataforma middleware orientada a objetos, que permite escribir aplicaciones distribuidas con muy poco coste. Provee herramientas, APIs, bibliotecas y bindings para la construcciones de aplicaciones cliente-servidor de forma escalable.

Es una buena herramienta de trabajo para entornos que sean bastante heterogéneos, donde el cliente y servidor puede estar escritos en lenguajes de programación muy diferentes y ejecutarse sobre plataformas, sistemas operativos o arquitecturas muy variadas.

Su fuerte radica en un gran soporte de tecnologías de red con interacciones a bajo nivel de red, enfoque en la lógica de las aplicaciones y portabilidad de entornos muy diversos.

Otro punto fuerte a destacar es la abstracción de red para detalles como abrir conexiones de red, serializado y des-serializado de datos transmitidos por red, reintentos fallidos de conexión y muchos otros detalles más de bajo nivel que ayudan a simplificar la capa de red.

Soporta bindings con bastantes lenguajes de programación como: 
C++.NETJava,PythonObjective-CRubyPHP, y ActionScript.

Debido a estas características Ice es usado por muchas compañias con misiones críticas en el mundo. La curva de aprendizaje es sencilla y existe una gran infraestructura de aplicaciones técnicas que se demandan.

Ice es software libre bajo licencia GPLv2 y comercializado bajo la marca ZeroC.

Instalación con repositorio

Esta opción de instalación es sencilla y cómoda, pero no esta aconsejada para desarrolladores que necesiten actualizaciones con bastante frecuencia o disponer de una versión determinada.

Descargar el repo (en estos momentos de escribir el artículo para la versión 3.4) desde la página web oficial:

1
 # wget http://download.zeroc.com/Ice/3.4/rhel6/zeroc-ice-rhel6.repo -O /etc/yum.repos.d/zeroc-ice-rhel6.repo

Activar el repositorio e instalar ZeroC Ice y biblioteca Ice para Python:

1
 # yum --enablerepo zeroc-ice install -y ice ice-python

Instalación desde fuentes

Si tu necesidad esta más orientada al enfoque desarrollador, puedes compilar la versión que requieras o en desarrollo. En el momento de escribir este artículo se compila para la versión 3.4.2 de Ice.

Instalar portable C preprocessor desde el repo de ZeroC Ice (también puedes optar por bajar y compilar los fuentes de mcpp, pero no es necesario):

1
# yum install -y mcpp-devel

Después bajamos los fuentes de Ice, descomprimimos y compilamos la versión en C++ y su binding para Python (en este caso para la versión 3.4.2 de Ice). Puedes hacerlo todo en una línea con:

1
# wget http://zeroc.com/download/Ice/3.4/Ice-3.4.2.tar.gz; tar xvzf Ice-*.tar.gz; cd Ice-*/cpp; make; make install; cd ../py/; make;make install

La instalación de Ice quedará bajo /opt/Ice-3.4.2/ y el binding python sobre /opt/Ice-3.4.2/python. Es importante recalcar que el binding python se asociara con la versión de defecto de Python en el sistema si dispones de varias.

Por último, es necesario indicar el el PATH y el PYTHONPATH del sistema, donde se encuentra la instalación de Ice y su binding de Python:

1
2
# export PATH=/opt/Ice-3.4.2/bin:$PATH
# export PYTHONPATH=/opt/Ice-3.4.2/python:$PYTHONPATH

 

VN:F [1.9.17_1161]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Automatizar actualizaciones con yum-updatesd y yum-cron en CentOS

23 12 2011
Actualizaciones automáticas

CentOS es una distribución de las consideradas como más estables. Aunque sea bastante estable, no implica que no necesite de actualizaciones con regularidad debido a incidencias críticas en algún paquete de software o bien debido avulnerabilidades.

Para evitar consumir tiempo a los administradores de sistemas comprobando regularmente si se necesita alguna actualización, existen herramientas que se encargan de realizar esta tarea de forma períodica.

Existen dos alternativas en CentOS:

  • yum-updatesd es un demonio notificador de actualizaciones que puedan ser aplicadas al sistema
  • yum-cron es un paquete con los archivos necesarios para hacer que el comando yum update se establezca como un trabajo de cron.

Generalmente yum-updatesd es más recomendable para escritorios y yum-cron para servidores, por este motivo coexisten ambos.

yum-cron es algo más sencillo pero no dispone de muchas opciones de configuración, aunque yum-updatesd es más configurable, pero parece tener algunas fugas y acumulaciones de memoria/CPU cuando se ejecuta durante bastante tiempo en servidores.

Configurando yum-updatesd

Podemos instalarlo con:

1
# yum install yum-updatesd

yum-updatesd dispone de varios métodos de notificación:

  • syslog
  • email
  • dbus

Estas notificaciones se configuran mediante el archivo de configuración /etc/yum/yum-updatesd.conf. Este archivo dispone de una única sección “main” que define todas las opciones de configuración globales. Las opciones disponibles son las siguientes:

  • run_interval Número de segundos a esperar entre comprobaciones de actualizaciones disponibles.
  • updaterefresh Número mínimo de segundos entre para actualizar la información de actualizaciones para evitar acceder al servidor con demasiada frecuencia.
  • emit_via Lista de maneras para emitir una notificación de actualización. Los valores válidos son: ‘email’, ‘dbus’ y ‘syslog’.
  • do_update Opción booleana para decidir si las actualizaciones deberían ser o no aplicadas. Por defecto falso.
  • do_download Opción booleana para decidir si las actualizaciones deberían o no ser descargadas automáticamente. Por defecto falso.
  • do_download_deps Opción booleana para automáticamente descargar las dependencias de paquetes que necesitan actualizarse también. Por defecto falso.

Opciones de notificacion por email

  • email_to Lista de direcciones email para enviar las actualizaciones de notificación. Por defecto ‘root@locahost’.
  • email_from Direcciones de email desde donde enviar las notificaciones de actualización. Por defecto ‘yum-updatesd@localhost’.
  • smtp_server Servidor SMTP para usar en el envío de email, cadena de host o host:puerto. Por defecto ‘localhost:25′.

Opciones de notificacion por Syslog

  • syslog_facility La instalación de syslog que debería ser usada. Por defecto ‘DAEMON’.be used. Defaults to ‘DAEMON’.
  • syslog_level Nivel de los mensajes en syslog. Por defecto ‘WARN’.

Ejemplo de configuración

Un ejemplo de configuración posible para /etc/yum/yum-updatesd.conf donde cada 8 horas comprobamos actualizaciones sin instalarlas, pero descargandolas y notificamos si existe alguna por email puede ser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[main]
# how often to check for new updates (in seconds)
run_interval = 28800
 
# how often to allow checking on request (in seconds)
updaterefresh = 3600
# how to send notifications (valid: dbus, email, syslog)
emit_via = email
# should we listen via dbus to give out update information/check for
# new updates
dbus_listener = yes
# who to send the email notifications to
email_to = tuemail@tudominio.com
# who send the notifications
email_from = yumupdates@tudominio.com
# automatically install updates
do_update = no
# automatically download updates
do_download = yes
# automatically download deps of updates
do_download_deps = yes

Después de configurar el servicio, lo iniciaremos con:

1
# service yum-updatesd start

Y para que se inicie en cada inicio del servidor:

1
# chkconfig yum-updatesd on

Para desactivar es realizar la operación inversa a yum-updatesd:

1
2
#service yum-updatesd stop
#chkconfig --del yum-updatesd

Nota: Recuerda que una vez desactivado no se notificará ningún tipo de actualización, y debe por tanto realizarse de forma manual.

Configurando yum-cron

yum-cron se habilita como si fuera cualquier otro daemon:
1
2
3
# yum install yum-cron
# yum chkconfig yum-cron on
# service yum-cron start

Esto creara un archivo /etc/cron.daily/0yum.cron que será ejecutado diariamente a la hora programada.

Aunque se trata como daemon, en realidad no lo es, sino que es un script que se ejecuta diariamente y limpia las actualizaciones semanalmente. Es fácil comprobar con chkconfig –list que yum-cron esta en la lista, pero desahabilitado para todos los niveles de ejecución. Puede activarse si se desea con:

1
# chkconfig yum-cron on
Este paso no es necesario ya que cron ejecutara igualmente la tarea programada.
Si es necesario iniciar por primera vez yum-cron para que se cree el archivo en cron-daily con un flag en /var/lock/subsys/yum-cron:
1
# /etc/init.d/yum.cron start

Nota: Es importante recalcar que algunos paquetes como los del kernel requieren de reinicio para aplicar las nuevas actualizaciones y yum-updatesd y yum-cron no implican reiniciar el sistema, por lo que recae esta ultima atencion al administrador del sistema.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Como añadir entorno grafico a un servidor CentOS

10 09 2010

Para propósitos de desarrollo, a veces es necesario convertir un servidor CentOS sin interfaz gráfica, a uno con interfaz gráfica o GUI.

En general, no recomiendo hacer esto en servidores de producción, hospedaje, etc, sino por ejemplo para hacer pruebas en una máquina virtual como puede ser VirtualBox y además de montar la imagen del servidor, tener una interfaz gráfica, para probar aspectos de lado del cliente.

La opción más fácil es que yum nos gestione una lista de aplicaciones seleccionadas por la distribución para realizar este entorno gráfico. Antes de nada, es importante comprobar los paquetes que serán instalados, por si alguno puede entrar en conflicto o no deseas instalarlo. Para ello, es posible crear una lista con:

1
# yum groupinfo 'GNOME Desktop Environment'

Para obtener la lista de paquetes del entorno de escritorio de Gnome. Y para el sistema de ventanas X Window:

1
# yum groupinfo 'X Window System'

Ahora para instalar es simplemente cambiar groupinfo por groupinstall:

1
2
# yum groupinstall 'GNOME Desktop Environment'
# yum groupinstall 'X Window System'

Reinicia tu máquina y tras iniciar tu sesión de consola escribe “startx” para pasar a modo gráfico.

VN:F [1.9.17_1161]
Rating: 8.8/10 (8 votes cast)
VN:F [1.9.17_1161]
Rating: +1 (from 1 vote)