jueves, 29 de abril de 2010

Curiosidad de Ubuntu 10.04 Lucid Lynx (Lince)

Mientras se descargaba mi nueva distribución, estaba mirando la descripción de la nueva Ubuntu One Music Store, un servicio nuevo para la compra de música por internet al estilo iTunes y me ha hecho gracia y a la vez me ha gustado leer lo siguiente.

Ubuntu 10.04 LTS, the new release from Ubuntu, is code-named the Lucid Lynx. Unfortunatley the Iberian lynx is endangered with some estimates putting the numbers as low as 150 animals remaining. So at Canonical we've decided to give our users the chance to help the people at the charity SOS Lynx.
Desde aquí me uno a Canonical y puesto que soy de España pongo la web de ayuda para el Lince (Lynx) Ibérico,

SOS Lince Iberico

Es un animal precioso en peligro de extinción del que solo quedan unos 150 en libertad de forma salvaje. Espero que se recupere este animal y deje de estar en peligro de desaparecer. Bien por Canonical.

Ubuntu 10.04 LTS Server Edition y otros sabores disponible desde hoy

ACTUALIZACION 20:00: Ubuntu Final está disponible para la descarga.
ACTUALIZACION: Al parecer, la nueva versión de Ubuntu ha sido retrasada por un bug detectado en Grub que provocaba la No-Detección de otros sistemas (Ms Windows, Distribuciones linux) que ya estuviesen instalados, dual-boot. Esto hace que no sea óptimo para nuevos usuarios y es preferible un retraso. Esperemos que esté disponible en breve.
https://wiki.ubuntu.com/IncidentReports/2010-04-29-Late-respin-for-bug-570765

Hoy salen las nuevas versiones LTS (Long Time Support - Soporte Extendido) de los diferentes sabores de Ubuntu. Este soporte es proporcionado por Canonical, la empresa creadora de Ubuntu y prometen mucho.

Entre ellas tenemos:
En cuanto a Ubuntu Server (oficial) aquí tenéis las mejoras y características de Ubuntu Server Edition 10.04 Lucid Lynx. La mejor distribución para servidores:
  • Actualización directa para usuarios de Ubuntu 8.04 LTS y Ubuntu 9.10.

    • No se necesita eliminar el sistema anterior y reemplazarlo, simplemente se actualiza.
  • Mejoras en Estabilidad y Seguridad para LTS entre ellas:

    • Cinco años de soporte en actualizaciones de mantenimiento y seguridad. Libres y gratuitas para todos los usuarios.
    • Seguridad de AppArmor por defecto en las claves (keys) de paquetes.
    • Securización "hardening" del Kernel (proteción de memoria, bloqueo de carga de módulos, aleatoriedad de la capa de espacio de direcciones)
    • Extensión fácil del cortafuegos (Firewall) a todos los servicios comunes.
    • Encriptación de directorios Privados y de Usuario (Homes)
  • Múltiples aplicaciones nuevas y actualizadas desde 8.04 LTS disponibles como opciones de instalación. Incluyendo:

    • CouchDB
    • Puppet
    • Eucalyptus
    • Django 1.1
    • OpenJDK6
    • Tomcat 6
    • MySQL 5.1
    • ClamAv
    • SpamAssassin
    • Samba 3.4
    • Python 2.6
    • Nagios 3
    • Ruby
    • PowerNap
    • PHP 5.3
    • KVM 84
    • Libvirt 0.7.5
    • RabbitMQ 1.7
  • Mejoras en Virtualización:

    • Construida sobre Libvirt y KVM para una gestión y despliegue sencillos. Ahora, KVM soporta:
    • Kernel Samepage Merging (KSM) agregación de memoria.
    • Migración de máquinas virtuales en vivo (Live migration)
    • VMBuilder para la creación rápida y automatizada de imágenes.
    • Ubuntu como Virtual Machine (VM) soportada por VMWare, Xen, KVM, Virtualbox, EC2 y UEC
  • Mejoras de Ubuntu Enterprise Cloud (UEC) y Amazon EC2, incluyendo:

    • Las imágenes de UEC y EC2 están incluidas en los cinco años de soporte libre y gratuito de actualizaciones de mejora y seguridad.
    • Perfil de instalación mínimo para crear instalaciones de VMs mínimas y optimizadas para EC2 y UEC
    • Las imágenes de Ubuntu EC2 pueden iniciarse desde EBS (Elastic Block Store)
    • Soporte de la librería multi-lenguaje AWS (Amazon Web Services)
    • Imágenes fácilmente optimizables y frecuentemente actualizables en tiempo de inicio (boot) para obtener alto grado de flexibilidad usando cloud-init.
    • Puppet, un framework de gestión de la configuración, se puede usar para control masivo de instancias desde su inicio.
  • Capacidades de almacenamiento avanzado integradas, incluyendo:

    • Soporte RAID desde el instalador.
    • Arranque y soporte de iSCSI y multipath.
  • Simpleza para el despliegue masivo y gestión.

    • Integración de Puppet en la nube (cloud) o como un add-on.
    • Control de versiones de cambios de configuración (integrado en Puppet) que proporciona historial y cumplimiento de responsabilidad.
    • Gran cantidad de nuevos perfiles nuevos y mejorados.
    • Paquetes de espejado (mirroring) integrado y herramientas de instalación en red.
    • Gestión mejorada desde Canonical's Landscape, incluyendo:

      • Registro Masivo
      • Gestión de VMs y Servidores físicos.
      • Gestión de instancias en la nube tanto de UEC como de EC2, incluyendo:

        • Zonas y credenciales de seguridad.
        • Elastic Block Storage (EBS) y Walrus storage elements.
        • Gestión de IPs con Elastic.
        • Monitorización de la topología de la Nube.
      • Mantenimiento programado (Apagados y reinicios, actualización de paquetes y ejecución de scripts)
      • Vista directa dentro de la configuración del servidor.
      • Agrupación lógica de máquinas para una administración fácil.

Ubuntu 10.04 LTS Server Edition, incluyendo Ubuntu Enterprise Cloud puede descargarse gratuitamente desde http://www.ubuntu.com. Desde el Jueves 29 April 2010.

Y a la vez, los usuarios pueden optar por actualizar el sistema directamente desde Ubuntu 8.04 LTS y Ubuntu 9.10 release October 2009.

Que los disfrutéis. Yo me descargaré mi Kubuntu con el flamante KDE 4.4.X cuando esté disponible en breve.

miércoles, 28 de abril de 2010

Herramientas útiles para gestión de discos en GNU\Linux

NOTA: Mucho cuidado con estos comandos y con los dispositivos a usar, una equivocación del dispositivo a particionar o del comando y será destruido. Antes de usarlos hay que estar seguro de lo que se está haciendo.

SFDISK

Sfdisk es una herramienta que nos permite usar su salida de información de particiones de un disco dado como entrada para otro disco dado y que se cree un disco idéntico en cuanto a particiones. Podemos hacerlo de la siguiente forma:

# sfdisk -d /dev/sdc | sfdisk /dev/sdd

El disco sdc será particionado exactamente igual al disco sdd. Esto es muy útil cuando manejamos muchos discos y creamos RAIDs.Es parecido al uso de los comandos prtvtoc y fmthard de solaris 10, pero usando un solo comando.

También podemos crear un fichero con la salida del comando y usarlo de entrada después. Lo que nos permite modificar el fichero si queremos, pero obviamente cambiaremos las particiones.

# sfdisk -d /dev/sdc > archivo.txt
# sfdisk /dev/sdd < archivo.txt

En el siguiente ejemplo le pasamos la información del disco f que tiene una partición raid al disco g con lo que el disco g tiene exactamente la misma tabla de particiones que f. Y lo comprobamos con fdisk.

# sfdisk -d /dev/sdf | sfdisk /dev/sdg
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdg: 1044 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/sdg: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0

   Device Boot    Start       End   #sectors  Id  System
/dev/sdg1            63  16771859   16771797  fd  Linux raid autodetect
/dev/sdg2             0         -          0   0  Empty
/dev/sdg3             0         -          0   0  Empty
/dev/sdg4             0         -          0   0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)

# fdisk -l /dev/sdg

Disk /dev/sdg: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdg1               1        1044     8385898+  fd  Linux raid autodetect

Hdparm y smartools

Instalamos las smartmontools y hdparm para poder ver datos de los discos. Hdparm suele venir instalado.

$ sudo aptitude install smartmontools hdparm

$ sudo smartctl -i /dev/sda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     Hitachi HDP725050GLA380
Serial Number:    GEM534RF20YJVF
Firmware Version: GM4OA52A
User Capacity:    500,107,862,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Wed Apr 28 13:46:29 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

$ sudo hdparm -i /dev/sda

/dev/sda:

 Model=Hitachi, FwRev=GM4OA52A, SerialNo=GEM534RF20YJVF
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56
 BuffType=DualPortCache, BuffSize=7174kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode

Con hdparm podemos cambiar la caché de disco para que no se use y los datos se escriban directamente a disco. Esto es útil si usamos el disco para contener una base de datos ya que hacemos que los datos vayan a disco directamente y hacemos que ante fallos no se pierdan datos de cache. De hecho se recomienda hacerlo para discos con bases de datos ya que aunque se pierde rendimiento por no usar la cache se gana seguridad, sobretodo para bases de datos transaccionales.

Mucho cuidado con hdparm porque si usáis una opción errónea os podéis cargar los datos del disco. Así que estad seguros de lo que ponéis (no es lo mismo -w que -W).

$ sudo hdparm -W0 /dev/sda
/dev/sda:
 setting drive write-caching to 0 (off)
 write-caching =  0 (off)

$ sudo hdparm -W1 /dev/sda
/dev/sda:
 setting drive write-caching to 1 (on)
 write-caching =  1 (on) 

Blkid

Con blkid podemos ver los UUID de las particiones y dispositivos raid así como el tipo de sistema de ficheros y las etiquetas o Labels que usen.


$ sudo blkid 
/dev/sda1: UUID="5652fcfb-68e3-4920-b75d-f1cbac082a7d" TYPE="ext4" 
/dev/sda2: UUID="c796a6c3-7f0a-4928-8456-a2df0a3755a6" TYPE="swap" 
/dev/sda3: UUID="a99cd19b-52a4-4015-b32b-c11bb23e47f8" TYPE="ext4"

Hay muchas más herramientas y muchos usos pero pongo estos que considero prácticos para el día a día.

martes, 27 de abril de 2010

CGT proporciona asistencia laboral gratuita a informáticos

Aquí os dejo una noticia sobre asistencia laboral gratuita a informáticos (en cuanto a dudas) sin importar la titulación. Han pedido que se difunda y yo la difundo, ya que me parece que es una buena iniciativa.

"¿Se puede evitar que me absorban en nómina los incrementos por trienio de antigüedad? ¿Las cláusulas de mi contrato, o simplemente mi contrato, son legales? ¿Puede la empresa obligarme a trabajar fuera de mi horario laboral? Trabajo en cliente ¿tengo derecho a hacer su jornada intensiva? La empresa hace lo que quiere con los trabajadores, nos machaca ¿qué podríamos hacer para plantar cara?

Los trabajadores y trabajadoras que formamos parte de la Coordinadora de Informática de CGT hemos abierto una sección en nuestra Web http://www.nodo50.org/coord-informatica desde donde cualquier trabajador informático pueda hacernos llegar cualquier duda laboral, sea de tipo legal o no.

Podremos dar una primera aproximación legal a cualquier compañer@ que lo necesite para que conozca exactamente los derechos que tiene según la Ley, e igual de importante, saber cómo defender los derechos que ésta no reconoce (derecho a no ser un esclavo de la empresa, a no tener sueldos o condiciones precarias, a ser respetad@).


Si siempre te has preguntado el alcance de alguna medida laboral que te afecta, conocer la legalidad o no de acciones de la empresa, dudas acerca de alguno de nuestros derechos, nóminas, cómo formar un comité de empresa, una sección sindical o, en definitiva, cualquier otra duda que puedas tener no te lo pienses: Visita la Web de la Coordinadora de Informática de la CGT (http://www.nodo50.org/coord-informatica) y rellena el formulario de Contacto.

Nuestros problemas como trabajadores sólo se arreglan si nos involucramos en su solución, esperamos que esta iniciativa permita que no sea el desconocimiento o el aislamiento, fomentado por las empresas, lo que lo impida. Haz llegar esta noticia a todo aquel/lla que creas le pueda ayudar.
El conocimiento legal es importante, pero la organización de los trabajadores es la única vía que permite evitar ser machacados.

Ante la prepotencia empresarial, solidaridad entre l@s trabajador@s

(La respuesta enviada no tiene un carácter vinculante, siendo puramente informativa: siempre recomendamos hablar con un abogado laboralista en caso de duda)
"


Dirección de la CGT
http://www.nodo50.org/coord-informatica/?q=node/110
Formulario de contacto
http://www.nodo50.org/coord-informatica/?q=contact

lunes, 26 de abril de 2010

Authbind y permisos sobre puertos menores a 1024

Authbind permite la configuración del uso de los puertos menores a 1024 a usuarios que no son root. Esta característica del sistema es propia de kubuntu 10.04 y otras distribuciones.

Esto es útil para aplicaciones como Tomcat que usan el usuario tomcat6 para hacer bind a las direcciones y puertos que usan. Hay que tener en cuenta que, actualmente, authbind no puede ser usado con tcp6, solo debemos usarlo con tcp4.

Authbind se configura en /etc/authbind/ y dentro de este directorio encontramos tres subdirectorios que permiten granularidad en la configuración. Funciona así.

  1. Authbind busca primero en el directorio /etc/authbind/byport/ ficheros llamados "[port]" es decir el fichero lleva el nombre del puerto, por ejemplo "25". Si encuentra el fichero y este fichero es ejecutable por el usuario al que queremos permitir el uso del puerto, entonces se autoriza a ese usuario a usar ese puerto en particular, si no, deniega su uso y pasa al paso dos.
  2. En segundo lugar busca en el directorio /etc/authbind/byaddr/ los ficheros con nombre "[ipaddress]:[port]", por ejemplo "192.168.3.125:25". Si el fichero es ejecutable para el usuario le permite su uso en la dirección especificada. Si no, deniega y pasa al punto tres.
  3. En último lugar busca el en el directorio /etc/authbind/byuid/ un fichero llamado "[uid]", es decir, con el nombre del número de identificación de usuario al que queremos permitir el uso de puertos. El fichero tiene permisos de lectura, escritura y ejecución para el usuario al que se le permite el uso y 0 permisos para el grupo y otros. Si se encuentra este fichero, entonces lee linea a linea y va autorizando las direcciones y rangos de puertos que pongan en cada linea al usuario con esa uid. Las lineas tiene el formato [ipaddress]/[netmaskprefix]:[puertoinicial],[puertodestino]. Por ejemplo, la linea 192.168.3.56/32:25,110 permite el uso de los puertos 25 a 110 en la dirección 192.168.3.56. Si no se encuentra el fichero o el fichero está vacío, se deniega el uso de puertos definitivamente.

Pongamos el caso de Alfresco. Cuando desplegamos el war en tomcat 6 en Kubuntu Lucid, Alfresco usa un servidor CIFS/Samba que usa los puertos 445 y 139. Estos puertos no pueden ser accedidos por el usuario tomcat6 ya que no es root, y, por tanto, la aplicación Alfresco tampoco puede usarlos.

Para habilitar los puertos se activa en /etc/default/tomcat6 la directiva authbind=true y se mantiene deshabilitada la seguridad de java #TOMCAT6_SECURITY=no (esto es debido a errores, bugs, con jsvc en los inicios y paradas del servicio tomcat). Esta activación hace que se cree un fichero en /etc/authbind/byuid llamado 113 (es el uid del usuario tomcat6) con permisos 700 (rwx,---,---) para tomcat6. Dentro del fichero se encuentra la linea 0.0.0.0/32:1,1023 que da acceso al usuario tomcat6 a todas las direcciones y a todos los puertos del 1 al 1023 para que puedan ser utilizadas.

Como Alfresco es ejecutado por el usuario tomcat6, ya que es una aplicación war desplegada dentro de Tomcat, esta tendrá permisos para usar esos puertos en esas direcciones evitando tener que redireccionar puertos superiores a 1024 para los servicios que use.

Hasta Kubuntu 10.04 no había oido hablar de esta herramienta. Creo que es bastante útil saber como usarla. Siempre teniendo en mente la seguridad del sistema.

NOTA: Para Tomcat 6, se ha alcanzado consenso entre Debian y Ubuntu con ayuda del creador de Tomcat: The Definitive Guide para usar authbind en vez de jsvc.

jueves, 22 de abril de 2010

Red Hat 6 Beta

Red Hat 6 acaba de publicar la primera beta de la nueva versión empresarial de su distribución. La última (versión 5) fue publicada en 2007, así que ya iba tocando. Es pública, es decir, que todos pueden descargarla para probarla.

Esta nueva versión 6 trae las mejoras correspondientes y las "novedades" del sistema lógicas, aunque, estas "novedades", llevamos disfrutándolas mucho tiempo en otras distribuciones. Es normal, ya que es una distribución enfocada en la estabilidad.

Personalmente nunca me ha gustado Red Hat, aunque les doy mi enhorabuena por esta nueva versión. Todo lo que sea software libre es bienvenido. Espero que pronto tengamos la nueva versión 6 de CentOS también.

Información sobre las novedades se puede leer aquí
http://press.redhat.com/2010/04/21/red-hat-enterprise-linux-6-beta-available-today-for-public-download/

Para descargar la beta y probarla
http://www.redhat.com/rhel/beta/

miércoles, 21 de abril de 2010

03-Instalación Alfresco 3.3 Community WAR en GNU\Linux Kubuntu Lucid Lynx (Configuración Básica)

Configuración básica de Alfresco

Una vez desplegados los war, Alfresco tiene dos directorios de configuración, uno para el mismo y otro para share que son:
  • <configroot>: /var/lib/tomcat6/webapps/alfresco/WEB-INF
  • <configrootshare>: /var/lib/tomcat6/webapps/share/WEB-INF
Dentro de estos directorios se puede configurar alfresco o share.

El fichero general de configuración de alfresco lo tenemos en
/var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco-global.properties.sample

Podemos configurar las opciones generales en este fichero y después renombrarle quitando .sample, Pero este fichero es muy básico así que copiaremos el fichero que viene con alfresco-community-war-3.3.tar.gz. Lo copiamos desde el directorio donde lo descomprimimos (alfresco) al directorio donde se ha desplegado alfresco y le cambiamos el propietario y grupo a tomcat6. En concreto estos comandos.

$ sudo cp extensions/extension/alfresco-global.properties \
> /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/
$ sudo chown tomcat6:tomcat6 /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco-global.properties

Y ahora lo editamos. Este fichero es el general de configuración. Es mejor poner todos los cambios aquí y no tocar los ficheros generales de alfresco. Así en las actualizaciones no perderemos los cambios de esos ficheros que deberemos reconfigurar.

$ sudo vim /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco-global.properties

Pongo las secciones que he cambiado, el fichero es más largo.

###############################
## Common Alfresco Properties #
###############################

#
# Sample custom content and index data location
#-------------
# Repositorio de documentación de Alfresco que
# creamos antes.
dir.root=/home/casa/backups/alf_data

#
# Sample database connection properties
#-------------
# Datos de conexión de la base de datos. Si cambiamos
# la contraseña o el usuario al configurar mysql
# debemos cambiarlos aquí.
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306

#
# External locations
#-------------
# Rutas a los programas que necesita alfresco y que
# instalamos previamente. Podemos usar whereis.
ooo.exe=/usr/bin/soffice
#ooo.enabled=false
#img.root=./ImageMagick
img.exe=/usr/bin/convert
swf.exe=/usr/bin/pdf2swf

#
# MySQL connection
#-------------
# Driver de mysql. Por defecto usa el dialecto
# hybernate de InnoDB asi que no ponemos nada más.
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}

#
# Index Recovery Mode
#-------------
index.recovery.mode=FULL

#
# Outbound Email Configuration
#-------------
mail.host=localhost
mail.port=25
#mail.username=anonymous
#mail.password=
mail.encoding=UTF-8
mail.from.default=admin@dominio.com
#mail.smtp.auth=false

Si vamos ahora a http://localhost/alfresco veremos, por fin, la página de alfresco funcionando.



Entramos dando a login(guest) y usuario: admin, contraseña: admin. Nos vamos a la configuración de usuarios, editamos el usuario admin y cambiamos su contraseña por una nuestra.

Configuración del Idioma

Para elegir el idioma español bajamos el pack en español de alfresco y share de aquí

http://forge.alfresco.com/projects/alfrescoeses/

En mi caso el último es el de la versión 3.2 beta. Hay que tener en cuenta que no está totalmente traducido. Lo descomprimimos y copiamos los ficheros en la carpeta correspondiente:

$ mkdir lang_es
$ cd lang_es/
$ unzip ../alfresco_3.2_ES-beta1.zip
$ sudo cp alfresco_3.2_ES-beta1/messages/* /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco/messages/
$ sudo chown tomcat6:tomcat6 /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco/messages/*

Para share

$ sudo cp -R alfresco_3.2_ES-beta1/web-extension/site-webscripts/org/alfresco/* /var/lib/tomcat6/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/
$ sudo cp alfresco_3.2_ES-beta1/messages/slingshot_es.properties /var/lib/tomcat6/webapps/share/WEB-INF/classes/alfresco/messages/
$ sudo chown -R tomcat6:tomcat6 /var/lib/tomcat6/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/* /var/lib/tomcat6/webapps/share/WEB-INF/classes/alfresco/messages/slingshot_es.properties

Por último, editamos el siguiente fichero y añadimos el lenguaje español quedando así

$ sudo vim /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco/web-client-config.xml

   <config evaluator="string-compare" condition="Languages">

      <!-- the list of available language files -->

      <languages>

         <language locale="es_ES">Español</language>

         <language locale="en_US">English</language>

      </languages>

   </config>

Reiniciamos la aplicación (no hace falta reiniciar tomcat siempre, podemos entrar en el manager y reiniciar solo la aplicación)

$ sudo /etc/init.d/tomcat6 restart

Y comprobamos eligiendo español en la pantalla de login, aunque la misma pantalla de login debería estar ya en español.

Configuración del log de alfresco y share (ver apendice I para comando sed)

Vamos a configurar el log de alfresco para que se guarde en el directorio por defecto de logs.

# sed 's/^M//' /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties > /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties_tmp

# mv /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties_tmp /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties

# sed 's/^M//' /var/lib/tomcat6/webapps/share/WEB-INF/classes/log4j.properties > /var/lib/tomcat6/webapps/share/WEB-INF/classes/log4j.properties_tmp

# mv /var/lib/tomcat6/webapps/share/WEB-INF/classes/log4j.properties_tmp /var/lib/tomcat6/webapps/share/WEB-INF/classes/log4j.properties

Cambiamos la directiva siguiente en cada fichero log4j.properties (alfresco y share) y guardamos

log4j.appender.File.File=/var/log/tomcat6/alfresco.log

# chown tomcat6:tomcat6 \
> /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/log4j.properties \
> /var/lib/tomcat6/webapps/share/WEB-INF/classes/log4j.properties

Podemos ver en el apéndice la explicación del comando sed (importante teclearlo y no copiar y pegar)


Apéndice I – Solución de caractéres de final de linea Unix/DOS


Si en algún fichero, al ejecutar vim para editarlo nos sale un carácter ^M al final de linea es que está en formato DOS y por tanto usa como final de linea el CR+LF y no LF como en Unix. Así que eliminamos las ^M que salen al final de la linea antes de editarlo con los siguientes comandos.

NOTA: El comando sed hay que escribirlo, no vale con cortar y pegar ya que donde pone ^M en realidad tenemos que pulsar las teclas CTRL+v+m para que salga el carácter ^M. Usamos el usuario root.

# sed 's/^M//' alfresco-global.properties.sample > alfresco-global.properties.sample_tmp
# mv alfresco-global.properties.sample_tmp alfresco-global.properties.sample

Ahora si

$ sudo vim /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco-global.properties.sample

02-Instalación Alfresco 3.3 Community WAR en GNU\Linux Kubuntu Lucid Lynx

Alfresco se compone de varios elementos con distintas funcionalidades. Al instalar el archivo WAR es necesario instalar estos componentes por separado. Si usáramos el paquete de instalación, incluiría tomcat, openoffice, etc. Pero nosotros queremos instalar el war solo.

Nos bajaremos los ficheros desde
http://wiki.alfresco.com/wiki/Community_Edition_file_list_3.3

En concreto yo me bajo los siguientes. Todos no son necesarios para una instalación básica de alfresco y share.

  • alfresco-community-war-3.3.tar.gz, alfresco-community-sample-extensions-3.3.tar.gz: archivo WAR principal de alfresco.
  • alfresco-dod5015.amp, alfresco-dod5015-share.amp: gestión de expedientes o registros para ayudar al cumplimiento de normas de seguridad como Sarbanes Oxley y demás.
  • vti-module.amp: conector a sharepoint.
  • alfresco-community-wcm-3.3.tar.gz, alfresco-wcm-examples-3.3.tar.gz: gestor de contenidos web.
  • alfresco-community-deployment-3.3.zip
  • alfresco-community-webeditor-3.3.zip: editor web.
  • alfresco-web-service-client-3.3.tar.gz: cliente para la conexión remota a alfresco.
  • alfresco-mmt-3.3.jar: gestor de módulos de alfresco.
  • aggadget-unsupported.zip: soporte para gadges de Google.
  • alfresco-bm-3.3.jar: herramientas de benchmarking.
  • alfresco-fb-doclib-unsupported.amp: soporte para integración con facebook.
  • org.alfresco.module.mediawikiintegration-unsupported.amp: soporte para integración con media wiki.
  • alfresco-community-excel2003-addin-3.3.zip, alfresco-community-office2003-addins-3.3.zip, alfresco-community-powerpoint2003-addin-3.3.zip, alfresco-community-word2003-addin-3.3.zip: soporte para los ficheros de Ms Office.

Los ficheros que tienen extensión amp son paquetes de módulos de alfresco.

En principio, para la configuración inicial usaremos los primeros de la lista que contienen los WAR. Una vez descargados, descomprimimos el archivo principal de los WAR.

$ mkdir alfresco
$ cd alfresco
$ tar -xzvf ../alfresco-community-war-3.3.tar.gz
$ ls
alfresco.war  commands  endorsed  extensions  extras  licenses  README.txt  share.war

Como vemos tenemos dos archivos WAR que se auto desplegarán en el servidor de aplicaciones y otros directorios y ficheros.

  • Alfresco.war es la aplicación core de gestión de la documentación.
  • Share.war es la aplicación de gestión de contenidos y documentación.
Una vez descomprimidos (estamos en el directorio que hemos creado, alfresco), vamos a crear la base de datos en MySQL. Para ello debemos usar el script

$ cat extras/databases/mysql/db_setup.sql
create database alfresco default character set utf8 collate utf8_bin;
grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;
grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;

Vemos que lo que hace es crear la base de datos para utf8 por defecto y los usuarios por defecto alfresco y contraseña alfresco. Lo dejamos así por ahora y creamos la base de datos y comprobamos que existe. Si queremos podemos poner nuestra contraseña ahora y luego acordarnos de cambiarla en el fichero de propiedades (más adelante) También comprobamos que existen los usuarios nuevos y recargamos las tablas de permisos.

$ mysql -u root -p < extras/databases/mysql/db_setup.sql
$ mysql -u root -p -e "show databases like 'alfresco'"
Enter password: 
+---------------------+
| Database (alfresco) |
+---------------------+
| alfresco            |
+---------------------+

$ mysql -u root -p -e "select user,host,password from user where user like 'alfresco'" mysql
Enter password: 
+----------+-----------------------+-------------------------------------------+
| user     | host                  | password                                  |
+----------+-----------------------+-------------------------------------------+
| alfresco | localhost             | *F9F457310EF9364D42AABE6D8C24A21712C000B5 |
| alfresco | localhost.localdomain | *F9F457310EF9364D42AABE6D8C24A21712C000B5 |
+----------+-----------------------+-------------------------------------------+

$ mysqladmin -u root -p flush-privileges
Enter password: 

Creamos el directorio donde vamos a guardar el repositorio de alfresco que es donde se van a guardar los índices y los ficheros que subamos (documentos, etc.) Yo pondré un directorio de ejemplo en mi home. Vosotros poned el que queráis. Después cambiamos los permisos para que tomcat pueda leer los datos.

$ mkdir -p /home/casa/backups/alf_data
$ sudo chown -R tomcat6:tomcat6 /home/casa/backups/alf_data

Copiamos todos los ficheros del directorio endorsed al directorio de tomcat, endorsed..

$ sudo cp endorsed/* /var/lib/tomcat6/common/endorsed/
$ sudo chown -R tomcat6:tomcat6 /var/lib/tomcat6/common/endorsed

Copiamos los ficheros .war al directorio de aplicaciones de tomcat donde se autodesplegarán simplemente copiándolos en el directorio.

$ cp alfresco.war share.war /var/lib/tomcat6/webapps/

jueves, 15 de abril de 2010

01-Instalación Alfresco 3.3 Community WAR en GNU\Linux Kubuntu Lucid Lynx (Prerrequisitos)

Alfresco es un Gestor de Documentación profesional y Open Source. Tiene dos versiones. Una versión Enterprise (de pago y con servicio técnico, etc.) y Community (gratuita y sin garantía)

Requisitos

Para la instalación de Alfresco 3.3 Community usaremos los ficheros WAR que sirven para desplegar aplicaciones en servidores ya existentes. Necesitamos realizar ciertos pasos con anterioridad.

Yo usaré un GNU\Linux Kubuntu 10.04 LTS Lucid Lynx (versión beta2 actualmente) de 32Bits.

Instalación de Java

En mi caso voy a usar el Java de Sun (Oracle)

$ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk sun-java6-plugin sun-java6-fonts libcommons-el-java

Cuando nos lo pida en la consola aceptamos la licencia.

$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

Si tuviéramos ya instalado otro java podríamos hacer que se use por defecto el de Sun con:

$ sudo update-alternatives --config java
Sólo hay una alternativa en el vínculo de grupo java: /usr/lib/jvm/java-6-sun/jre/bin/java
Nada que configurar.

En mi caso no hay otro pero si lo hubiera este comando es interactivo y podríais elegir. Si lo queréis para un script (no-interactivo)

$ sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java

Instalación de MySQL

Instalamos el servidor mysql

$ sudo aptitude install mysql-server-5.1 mysql-client-5.1 libmysql-java

y cuando nos lo pida en la consola introducimos la contraseña del usuario root. Posteriormente instalaremos la base de datos de alfresco.

$ mysqladmin -u root -p version
Enter password: 
mysqladmin  Ver 8.42 Distrib 5.1.41, for debian-linux-gnu on i486
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.1.41-3ubuntu12
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
...

libmysql-java es el controlador JDBC de MySQL version 5.1.10. Lo configuramos en la instalación de tomcat6.

Instalación de Tomcat 6

Instalamos el servidor de aplicaciones Tomcat 6. La versión usada es la 6.0.24-2ubuntu1. En la instalación podemos ver lo siguiente.

$ sudo aptitude install tomcat6 tomcat6-admin tomcat6-docs tomcat6-examples tomcat6-user
...
 * Starting Tomcat servlet engine tomcat6
Using CATALINA_BASE:   /var/lib/tomcat6
Using CATALINA_HOME:   /usr/share/tomcat6
Using CATALINA_TMPDIR: /tmp/tomcat6-tmp
Using JRE_HOME:        /usr/lib/jvm/java-6-sun
Using CLASSPATH:       /usr/share/tomcat6/bin/bootstrap.jar
...

Para manejar el gestor de aplicaciones y el gestor de hosts de tomcat desde el explorador web debemos añadir nuestro usuario a los roles manager y admin de tomcat. Para ello configuramos el siguiente fichero y añadimos el usuario a la sección tomcat-users. Sustituimos usuario y contraseña por los nuestros.

$ sudo vim /etc/tomcat6/tomcat-users.xml

<tomcat-users>
   <user username="usuario" password="contraseña" roles="admin,manager"/>
</tomcat-users>

Para configurar el conector AJP y que así el servidor web Apache envíe las peticiones a Tomcat configuramos el siguiente fichero y descomentamos la linea del conector.

$ sudo vim /etc/tomcat6/server.xml

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Creamos el directorio endorsed en catalina.base/common

$ sudo mkdir /var/lib/tomcat6/common/endorsed
$ sudo chown -R tomcat6:tomcat6 /var/lib/tomcat6/common/endorsed

Para que podamos usar alfresco correctamente debemos cambiar unos parámetros en el fichero /etc/default/tomcat6

$ sudo vim /etc/default/tomcat6

# Resuelve el problema de "Out of Memory" que nos puede surgir con alfresco
# lo cambiamos dependiendo de la memoria que tengamos
# -Xms1G: Memoria inicial en megas del heap que asignamos a la maquina virtual
# -Xmx2Gm: Memoria máxima en megas del heap
# Tienen que ser múltiplos de 1024 y mayor a 1MB.
# Se recomienda para 32 bits con al menos 2G de ram disponibles para la JVM esta configuración
JAVA_OPTS="-Djava.awt.headless=true -Xms1Gm -Xmx2G -Xss1024k -XX:MaxPermSize=128m -XX:NewSize512m -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed:/var/lib/tomcat6/common/endorsed"
...
# Lo dejamos como está en Lucid (10.04). En Karmic (9.10) había que desactivarlo
# ya que hay problemas de permisos y alfresco no se iniciaba. También se pueden
# añadir permisos de seguridad mediante java a la aplicación alfresco para que funcione
# Use the Java security manager? (yes/no, default: no)
#TOMCAT6_SECURITY=no

# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind.  It is used for binding Tomcat to lower port numbers.
# NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.
# (yes/no, default: no)
# Habilitamos esta opción para que tomcat o sus aplicaciónes puedan usar puertos
# por debajo de 1024 con usuarios no privilegiados (como tomcat6). Esto se debe 
# a que la version 10.04 de ubuntu (debian) no usa jsvc para la seguridad (con
# (debido a bugs) sino Authbind
AUTHBIND=yes

libmysql-java es el controlador JDBC de MySQL version 5.1.10 y libcommons-el-java son componentes reusables opensource de java. Esta instalación instala los jar JDBC de mysql y commons en java pero para que funcione correctamente con tomcat debemos incluirlo en el classpath de tomcat. Esto lo hacemos añadiendo un link simbólico al jar de mysql y commons en java en el directorio /usr/share/tomcat6/lib.

$ cd /usr/share/tomcat6/lib
$ sudo ln -s ../../java/mysql.jar mysql.jar
$ sudo ln -s ../../java/commons-el.jar commons-el.jar

En /usr/share/java tenemos un link simbólico llamado mysql.jar que apunta al jdbc de mysql (mysql-connector-java-5.1.10.jar) en el mismo directorio. Por eso apuntamos mysql.jar en el directorio de tomcat a mysql.jar en el directorio de java. Un link a otro link.

Reiniciamos tomcat

$ sudo /etc/init.d/tomcat6 restart

Y vemos que funciona en http://localhost:8080 y que podemos acceder al manager y al hostmanager con el usuario y contraseña que pusimos.

Instalación de Apache 2.2

Instalamos el servidor web de apache. No es necesario en principio pero lo haremos para que sea apache el que se encargue de las peticiones web.

$ sudo aptitude install apache2 apache2-utils
$ apache2ctl -v
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Apr 13 2010 19:28:27

No voy a entrar en la configuración de apache, solo configuraremos el conector de apache a tomcat.

Para conectar el servidor web con el servidor de aplicaciones (contenedor de servlets y JSP) se usa el protocolo AJP. Para configurar esto se pueden usar, o el módulo de apache mod_jk o el módulo mod_proxy. La recomendación es usar el módulo mod_proxy ya que es más moderno y es el que configuraremos. También se puede usar para balanceo de carga, clusters... Por defecto, ya viene instalado con apache2.

En la instalación de Tomcat ya configuramos el conector AJP para que funcinara correctamente. Ahora nos ocupamos de la parte de configuración de apache.

Para configurar el conector editamos el fichero de configuración de mod proxy y lo dejamos así:

$ sudo vim /etc/apache2/mods-available/proxy.conf

<IfModule mod_proxy.c>
        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.
        # Con esta directiva en Off hacemos que se deshabilite la redirección del
        # proxy excepto para las entradas que nosotros pongamos con ProxyPass
        ProxyRequests Off

        # Hace que las peticiones originales de información de host se mantengan a 
        # través de la conexión del conector AJP. Es útil para aplicaciones que
        # necesitan mantener esta información.
        ProxyPreserveHost On


        # Indica que todos los hosts (*) pueden acceder a traves del proxy
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
                #Allow from .example.com
        </Proxy>

        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block
        ProxyVia On

        # Indica que las peticiones a apache para /alfresco se pasen por el protocolo AJP 
        # a la dirección IP y puerto donde Tomcat está escuchando mediante el protocolo
        # AJP con un conector.
        ProxyPass /alfresco ajp://192.168.1.35:8009/alfresco

        # Indica que cualquier peticion de cabeceras (request headers) del reverse proxy 
        # debería ser reescrita de forma adecuada para asegurar que las redirecciones que
        # haga el servidor Tomcat sean manejadas de forma correcta.
        ProxyPassReverse /alfresco ajp://192.168.1.35:8009/alfresco

        # Permitimos el acceso a la aplicación alfresco
        <Location /alfresco >
                Order allow,deny
                Allow from all
        </Location>

        # Bloque para share.war. Con cada aplicación desplegada que queramos incluir en
        # el conector deberemos poner el bloque siguiente.
        ProxyPass /share ajp://192.168.1.35:8009/share
        ProxyPassReverse /share ajp://192.168.1.35:8009/share
        <Location /share>
                Order allow,deny
                Allow from all
        </Location>


</IfModule>

Activamos los módulos proxy (se configuran en el mismo archivo anterior)

$ sudo a2enmod proxy_balancer proxy_ajp proxy
Considering dependency proxy for proxy_balancer:
Enabling module proxy.
Enabling module proxy_balancer.
Considering dependency proxy for proxy_ajp:
Module proxy already enabled
Enabling module proxy_ajp.
Module proxy already enabled
Run '/etc/init.d/apache2 restart' to activate new configuration!

Vemos si se han cargado los módulos

$ apache2ctl -M
Loaded Modules:
 core_module (static)
 log_config_module (static)
 ...
 proxy_module (shared)
 proxy_ajp_module (shared)
 proxy_balancer_module (shared)
 ...
Syntax OK

Y reiniciamos apache2

$ sudo /etc/init.d/apache2 restart
[sudo] password for casa: 
 * Restarting web server apache2
... waiting

En la siguiente imagen vemos como el conector, apache y tomcat están funcionando. No usamos directamente el puerto 8080 de tomcat si no el 80 de apache. El error de Alfresco es simplemente debido a que todavía no lo hemos instalado en su sitio, lo que veremos en el siguiente post.


Instalación de herramientas adicionales

Para un correcto funcionamiento necesitamos instalar las siguientes herramientas.
  • Flash 10.x: Kubuntu trae la 10.0.45.
  • SWF Tools: para la conversion de pdf y swf usar la vista previa de pdfs. Kubuntu usa la 0.9.0.
  • OpenOffice.org: Kubuntu trae la 3.2.0.
  • Imagemagick: Para manipulación de imágenes. Ya viene por defecto, pero por si acaso lo incluimos.
Por tanto las instalamos si no lo tenemos ya

$ sudo aptitude install swftools flashplugin-installer openoffice.org imagemagick

martes, 13 de abril de 2010

Compilación de Xen 3.4.x con el núcleo de Debian Lenny 2.6.26-2

Xen es una herramienta que sirve para la virtualización de sistemas.

Usaremos el núcleo 2.6.26-2 de Debian con soporte para dom0. Estamos en el directorio /root y partimos de una instalación básica.

Primero descargamos las xen-tools, el código fuente de xen y xen-shell.

debinstall:~# wget http://bits.xensource.com/oss-xen/release/3.4.2/xen-3.4.2.tar.gz
debinstall:~# wget http://xen-tools.org/software/xen-tools/xen-tools-4.1.tar.gz
debinstall:~# wget http://www.xen-tools.org/software/xen-shell/xen-shell-1.9.tar.gz


Instalamos los requerimientos de compilación y el núcleo (nos intalará libc6-xen como dependencia) Si usamos 64bits añadimos gcc-multilib:

debinstall:~# aptitude update
debinstall:~# aptitude full-upgrade
debinstall:~# aptitude install bcc bin86 gawk bridge-utils iproute libcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfo pciutils-dev mercurial build-essential zlib1g-dev python python-dev python-twisted libncurses5-dev libvncserver-dev libsdl-dev libjpeg62-dev ntp debootstrap perl rinse rpm
debinstall:~# aptitude install linux-image-2.6.26-2-xen-686

Descomprimimos Xen y las herramientas.

debinstall:~# tar -xzvf xen-3.4.2.tar.gz
debinstall:~# tar -xzvf xen-tools-4.1.tar.gz
debinstall:~# tar -xzvf xen-shell-1.9.tar.gz

Compilamos solo el hypervisor y solo las herramientas básicas de Xen:

debinstall:~# cd xen-3.4.2
debinstall:~/xen-3.4.2# make xen
debinstall:~/xen-3.4.2# make install-xen
debinstall:~/xen-3.4.2# make tools
debinstall:~/xen-3.4.2# make install-tools
debinstall:~/xen-3.4.2# update-rc.d xend defaults 20 21
debinstall:~/xen-3.4.2# update-rc.d xendomains defaults 21 20
debinstall:~/xen-3.4.2# update-grub
debinstall:~/xen-3.4.2# init 6

Como los dispositivos loop están compilados como módulo en este núcleo, aumentamos el número que podemos usar de ellos. Por defecto 8, lo aumentamos a 128, y recargamos el módulo.

Debinstall:~# dmesg | grep loop
[ 11.430723] loop: module loaded
debinstall:~# /etc/init.d/xendomains stop
debinstall:~# echo “options loop max_loop=128” > /etc/modprobe.d/loop
debinstall:~# rmmod loop
debinstall:~# modprobe loop
debinstall:~# /etc/init.d/xendomains start

Y con esto arrancamos con el hypervisor 3.4.2 y el núcleo más actual de Debian Lenny. Este núcleo funciona como dominio 0 y como dominio U.

Para definir la memoria que vamos a usar para el dom0, añadimos la opción dom0_mem=256M a la linea del hypervisor de /boot/grub/menu.lst quedando así.

debinstall:~# vim /boot/grub/menu.lst

title Xen 3.4.1 / Debian GNU/Linux, kernel 2.6.26-2-xen-686
root (hd0,0)
kernel /boot/xen-3.4.2.gz dom0_mem=256M
module /boot/vmlinuz-2.6.26-2-xen-686 root=/dev/sda1 ro console=tty0
module /boot/initrd.img-2.6.26-2-xen-686

Instalamos las Xen-tools, con las que crearemos las imágenes de las máquinas virtuales.

debinstall:~/xen-3.4.2# cd ../xen-tools-4.1
debinstall:~/xen-tools-4.1# make install

Instalamos la herramienta Xen-Shell para que los usuarios puedan acceder a las máquinas virtuales a través de consola. Esto es opcional.

debinstall:~/xen-3.4.2# cd ../xen-shell-1.9
debinstall:~/xen-shell-1.9# make install

Y listo.

debinstall:~/# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 256 1 r----- 18.8

Inicio del Blog

Hoy comienzo un blog sobre tutoriales y administración de sistemas en general y de GNU\Linux en particular.

También espero dejar artículos sobre software libre y sobre lo que se me vaya ocurriendo.

La plantilla que he elegido y modificado para el blog es un homenaje al navegador web de reciente creación Chromium y el nombre que he elegido para el blog es un guiño a la obra Yo, Robot, aunque en vez de referirme a la robótica me refiero a la Administración de Sistemas que también tiene su miga y sus problemáticas.

El código fuente y las salidas del sistema las pondré dentro de recuadros verdes con bordes punteados y usando el tag "pre" para que respete la estructura.

Por otro lado quiero referirme al buen uso de los términos en mundo de "linux". Quiero dejar claro estos términos para que no haya equívocos.

  • Linux: Kernel y solo eso. Es el núcleo del sistema operativo GNU\Linux.
  • GNU\Linux: Es el sistema operativo en sí. Se compone de las herramientas GNU y el núcleo Linux. Si hablamos del sistema operativo hay que escribirlo así, correctamente, ya que hay mucho trabajo detrás de los desarrolladores de GNU como para que solo nombremos al núcleo cuando hablamos del sistema operativo. Es un error común que espero se vaya subsanando. Además hay otros núcleos a parte de Linux. Hay otros sistemas operativos con GNU que usan otro núcleo diferente.
  • Distribución GNU\Linux: Es un sistema operativo GNU\Linux con unas características determinadas, logos, herramientas, etc. Por ejemplo, Debian, SuSE, Red Hat, Fedora, Mandriva, Ubuntu...
  • Derivados: Son diferentes "sabores" de una Distribución GNU\Linux. Un ejemplo lo tenemos con la distribución GNU\Linux Ubuntu que además dispone de Kubuntu (usa KDE), Xubuntu (XFCE), Ubuntu Studio...
  • Open Source y Software Libre: Son lo mismo y sin embargo difieren en la filosofía. Mientras que el Open Source se centra en la tecnología, en los aspectos técnicos, el movimiento del Software Libre (fundado por Richard Stallman) se centra en la Ética en la libertad del usuario.
  • Software Libre distinto de Gratis: El software libre no es gratuito, a pesar de que muchas aplicaciones lo sean. El software libre cuesta dinero y además vale mucho dinero y se gana mucho dinero con el. Aún así, los creadores de dicho software permiten que se use de forma gratuita en la mayoría de casos, pero no en todos. No tienen por que poner sus aplicaciones de forma gratuita si liberan el código. Eso nunca ha sido una característica del software libre así que no confundamos términos.
Y después de esta presentación del blog os diré que yo uso la distribución Kubuntu GNU\Linux, ahora mismo la versión Lucid Lynx (10.04 LTS beta 2) y estoy encantado con ella. Van solucionando los problemas de inestabilidad y os la recomiendo pero cuando salga oficialmente la versión final este mismo mes.

Sin más, espero que disfrutéis del blog.

Un saludo a todos y bienvenidos
Related Posts with Thumbnails