Tag Archives: Ubuntu

Actualizando Ubuntu

Acerca de la política de actualización

La política de actualizaciones del sistema operativo determina que tipos de actualizaciones disponibles serán tenidas en cuenta para ser sugeridas al usuario y ser finalmente instaladas en el equipo.

Las políticas disponibles corresponden a las siguientes.

  1. Tener en cuenta las versiones nuevas y estables (normal).
  2. Tener en cuenta sólo actualizaciones LTS (lts).
  3. Nunca tener en cuenta actualizaciones (never).

Para modificar la política de actualización vigente se debe editar el archivo /etc/update-manager/release-upgrades y ajustar el valor de la variable Prompt.

Este procedimiento también se puede realizar desde la interfaz gráfica de usuario ejecutando la aplicación Software & Updates y bajo el tab de Updates, modificar el valor de la opción Notify me of a new Ubuntu version.

Server Edition

$ sudo aptitude install update-manager-core
$ sudo do-release-upgrade

Desktop Edition

Utilizar la aplicación Update Manager o Software Updater desde la interfaz gráfica de usuario.

Ejecute el Update Manager (System > Administration > Update Manager)  o Software Updater desde Unity.

$ sudo /usr/bin/update-manager

Presione el botón Upgrade el cual se activará únicamente si se detecta una actualización disponible.

Enlaces

Instalación de NX 3.5 en Ubuntu 12.10 utilizando SSH y autenticación basada en contraseñas

Introducción

NX es un producto de NoMachine que permite acceder al escritorio de un servidor remoto.  A diferencia de software similar como VNC, NX ofrece por defecto el cifrado del tráfico a través de conexiones SSH y de SSH con túnel para el protocolo X, NX ofrece un mayor desempeño al optimizar la transmisión de datos.

NoMachine provee una versión gratuita para servidores Linux que se encuentra limitada a dos conexiones concurrentes.

En el pasado realicé la instalación de FreeNX, un fork del proyecto NX original el cual parece que ya no recibe actualizaciones.  En esta ocasión se va a realizar la instalación de NX 3.5 encontrándose también que versiones preliminares de la 4 pueden descargarse para experimentación.

Recomendaciones

En caso de actualizarse de una versión mayor es mejor desinstalar por completo los paquetes antiguos antes de instalar los nuevos.  Inclusive remover (o renombrar) el directorio del software.

$ sudo rm -rf /usr/NX

También debe tenerse en cuenta que la versión 3.5 de NX no soporta los entornos de escritorio que incluyan los efectos de escritorio compuesto provistos por Compiz, por este motivo se tendrán serios problemas al intentar acceder a escritorio remotos utilizando Unity o GNOME3.  En este caso se recomienda instalar otros manejadores de escritorio como XFCE o GNOME Fallback.

El transporte de la información se realiza a través de SSH así que el servicio (OpenSSH o similar) debe estar previamente instalado y funcionando.

Instalación en el cliente

Descargar del siguiente enlace el paquete cliente (NX Client Products) de la plataforma y arquitectura que corresponda.

http://www.nomachine.com/download.php

En este caso se realiza la instalación de la versión 3.5.0 para Ubuntu de 32 bits.

$ sudo dpkg -i nxclient_3.5.0-7_i386.deb

Instalación del servidor

Descargar del siguiente enlace los paquetes correspondientes a la plataforma y arquitectura del servidor.  Del lado del servidor es necesario instalar los paquetes de cliente, nodo y servidor.

http://www.nomachine.com/select-package-server.php?id=1&ids=2

En este caso se realiza la instalación de la versión 3.5.0 para Ubuntu Server de 64 bits.

$ sudo dpkg -i nxclient_3.5.0-7_amd64.deb
$ sudo dpkg -i nxnode_3.5.0-9_amd64.deb
$ sudo dpkg -i nxserver_3.5.0-11_amd64.deb

En algunas ocasiones la instalación del paquete servidor falla siendo requerido ejecutar la siguiente instrucción antes de volver a correr el comando de instalación mencionado anteriomente.

$ sudo /usr/NX/scripts/setup/nxserver --install

Autorizar a un usuario para realizar conexiones

Para autorizar a un usuario del sistema a realizar conexiones a su escritorio remoto se debe ejecutar el siguiente comando.

$ sudo /usr/NX/bin/nxserver --useradd USERNAME

Para mas información acerca de la gestión de los usuarios consultar la sección #5 (NX Users Administration on the Server Host) del NX Server Administrator’s Guide.

Realizar la conexión desde el cliente

Desde el equipo cliente ejecute la aplicación nxclient.

$ /usr/NX/bin/nxclient

Desde ella especifique la información básica para la conexión, incluyendo como mínimo la siguiente información.

  1. Nombre para la sesión
  2. Dirección o nombre del servidor
  3. Puerto del servicio SSH
  4. Nombre de usuario para realizar la conexión
  5. Contraseña del usuario especificado

Enlaces

  1. Getting Started with NX.
    http://www.nomachine.com/documents/getting-started.php
  2. NX Free Edition (for Linux & Solaris)
    http://www.nomachine.com/select-package-server.php?id=1&ids=2
  3. Documentación de instalación y configuración.
    1. Cliente
      http://www.nomachine.com/documents/client/install.php
      http://www.nomachine.com/documents/configuration/client-guide.php
    2. Nodo
      http://www.nomachine.com/documents/node/install.php
    3. Servidor
      http://www.nomachine.com/documents/server/install.php
      http://www.nomachine.com/documents/admin-guide.php
  4. Instalación de NoMachineNX en Ubuntu
    https://help.ubuntu.com/community/NomachineNX
  5. Why can't I run the Unity or the Gnome 3 desktop environments with NX?
    http://www.nomachine.com/ar/view.php?ar_id=AR0500591

Actualizar a LibreOffice 4 desde Ubuntu 12.10 (o posteriores)

Introducción

La actualización de los paquetes de LibreOffice suele tomar un tiempo adicional desde que son oficialmente liberados hasta que se encuentran disponibles en los repositorios de Ubuntu para ser actualizados.  Si se desea realizar esta actualización rápidamente y utilizando el sistema de paquetes de Ubuntu es necesario agregar el repositorio oficial de LibreOffice al sistema como se muestra a continuación.

Método #1: para una versión específica (recomendado)

Existen dos formas básicas en las que es posible instalar una versión recién publicada de LibreOffice.  El primero de los métodos corresponde con agregar el repositorio exacto de la versión específica que se desea instalar, en este caso, la 4.x.  Esto se hace de la siguiente manera.

$ sudo add-apt-repository ppa:libreoffice/libreoffice-4-0
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Método #2: para la versión mas reciente

Agregando el repositorio general de LibreOffice es posible mantener el sistema actualizado a la última versión disponible.  Debe tenerse en cuenta que es posible que se actualice el software a versiones no necesariamente estables y se actualicen también paquetes relacionados con LibreOffice.  Para hacer esto se deben realizar los pasos mostrados a continuación.

$ sudo add-apt-repository ppa:libreoffice/ppa
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Montar una partición cifrada en Ubuntu

Introducción

Las versiones recientes de los sistemas operativos como Ubuntu permiten que se cifren las particiones (usualmente la que contiene a /home) para evitar así que terceros tengan acceso a la información contenida en estas si se obtiene el acceso físico a las mismas.

Esta mejora en la seguridad algunas veces se convierte en problema cuando por razones válidas es necesario acceder a esta partición desde otro sistema diferente del original.  Tal es el caso cuando se desactiva o pierde la contraseña del usuario administrador.

En ese caso es necesario iniciar el sistema con un livecd de Ubuntu (o montarlo físicamente en otro equipo), montar la partición que contenga al sistema de archivos raíz y realizar las modificaciones necesarias en los archivos de configuración para garantizar el futuro acceso a la cuenta de usuario en cuestión.  Estos pasos se ven modificados cuando la partición a montarse se encuentra cifrada.

Montar la partición cifrada

Identificar cual es la partición que se desea montar.

$ sudo fdisk -l
   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1              63       96389       48163+  de  Dell Utility
   /dev/sda2   *       98304   163938303    81920000    7  HPFS/NTFS/exFAT
   /dev/sda3       163938304   167843839     1952768   82  Linux swap / Solaris
   /dev/sda4       167845886   234440703    33297409    5  Extended
   /dev/sda5       167845888   189327359    10740736   83  Linux
   /dev/sda6       189329408   234440703    22555648   83  Linux

En este ejemplo se determina que la partición que se desea montar temporalmente es /dev/sda5 que contiene al sistema de archivos raíz.

Instalar los paquetes requeridos si estos no se encuentran aún en el sistema.

$ sudo apt-get install lvm2 cryptsetup

Agregar el módulo del kernel necesario para acceder a los dispositivos de bloque cifrados.

$ sudo modprobe dm-crypt

Configurar al módulo de cifrado de Linux para que reconozca a la partición que se va a montar.

$ sudo cryptsetup luksOpen /dev/sda5 crypt1

En este punto el sistema solicita al usuario la contraseña secreta (passphrase) que se utilizó para el cifrado de la partición.

Identificar los grupos de volúmenes cifrados disponibles.  El nombre obtenido aquí debe tenerse en cuenta para un paso posterior.  En el caso de la partición cifrada por defecto se encontró que el nombre del grupo era ubuntu.

$ sudo vgscan --mknodes

Crear un directorio que servirá como punto de montaje para la partición cifrada.

$ mkdir /montaje

Montar la partición cifrada en el punto de montaje recién creado.

$ sudo mount /dev/ubuntu/root /montaje

A partir de este momento el sistema de archivos cifrado puede accederse normalmente bajo el punto de montaje establecido.  Por ejemplo para acceder gráficamente a sus archivos es necesario utilizar las herramientas del sistema.

$ sudo nautilus /montaje

Desbloquear un usuario

Una vez se pueda acceder al sistema de archivos raíz de la máquina afectada es posible realizar tareas de gestión de los usuarios como desbloquear cuentas o cambiar sus contraseñas.

Primero es necesario tomar temporalmente a la partición montada como partición raíz del sistema para que sean tenidos en cuenta sus usuarios durante las tareas de administración y no los del livecd, para hacer esto es necesario ejecutar el siguiente comando.

$ sudo chroot /montaje

Desbloquear las cuentas de usuario requeridas.

$ sudo passwd -u usuario

O simplemente modificar sus contraseñas.

$ sudo passwd usuario

Una vez terminadas las modificaciones que se iban a realizar sobre la partición cifrada se debe reiniciar el sistema normalmente.

Instalación de un escritorio en Linux Ubuntu Server 12.10

Introducción

La edición de servidores de Ubuntu viene por defecto sin un escritorio gráfico lo cual es preferible por motivos de seguridad y desempeño.  Sin embargo existen algunos casos en los que es deseable contar con una interfaz gráfica de usuario en el servidor, para estos casos es posible instalar estos paquetes siguiendo el procedimiento mostrado a continuación.

Instalar el escritorio

El escritorio por defecto para Ubuntu es Unity el cual puede instalarse ejecutando el siguiente comando.

$ sudo apt-get install ubuntu-desktop

También es posible instalar un escritorio diferente a Unity, por ejemplo KDE de la siguiente manera.

$ sudo apt-get install kubuntu-desktop

O XFCE como se muestra a continuación.

$ sudo apt-get install xubuntu-desktop

Instalación reducida

La instalación del escritorio incluye por defecto los paquetes de las aplicaciones complementarias que en caso del servidor muy probablemente no se deseen instalar.  Para omitir el instalar estas aplicaciones adicionales se deberá realizar la instalación del escritorio con el modificador mostrado a continuación dependiendo de si se utiliza apt-get para realizar la instalación.

$ sudo apt-get install ubuntu-desktop --no-install-recommends

O aptitude.

$ sudo aptitude install ubuntu-desktop --without-recommends

Como hecho curioso los dos modificadores son análogos en su funcionalidad sin embargo parecen incluir diferentes paquetes durante su ejecución.

Configuración de red en Ubuntu 12.04 o posterior

Introducción

La configuración de red de un servidor puede hacerse de una de las siguientes maneras: estática o dinámica, en la primera de ellas se especifica por completo su información mientras que en la segunda se prefiere que un servidor DHCP que debe estar presente en la red, determine por sus propios medios la configuración de red del servidor.

A partir de la versión 12.04 de Ubuntu se introdujeron algunos cambios en la configuración de red, especialmente el hecho de que los servidores DNS para la configuración estática ya no se agregan en /etc/resolv.conf sino directamente en el archivo de /etc/network/interfaces, por este motivo vale la pena recordar el procedimiento para configurar las interfaces de red manualmente.

Configuración de la interfaz de loopback

$ vi /etc/network/interfaces
    # The loopback network interface
    auto lo
    iface lo inet loopback

Configuración de una interfaz con DHCP

$ vi /etc/network/interfaces
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp

Configuración de una interfaz con información estática

$ vi /etc/network/interfaces
    # The primary network interface
    auto eth0
    iface eth0 inet static
       address 192.168.1.250
       netmask 255.255.255.0
       gateway 192.168.1.254
       dns-nameservers 8.8.8.8 8.8.4.4

Una vez reiniciado el servicio se generará automáticamente la información de DNS a partir del parámetro dns-nameservers especificado.

$ cat /etc/resolv.conf
    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 8.8.8.8
    nameserver 8.8.4.4

Enlaces

Reparar el índice dañado de un archivo AVI en Linux Ubuntu

El problema

El día de hoy tenía que consultar un video en formato AVI que parecía tener problemas.  El Movie Player lo abría sin mensajes de error sin embargo se demoraba varios minutos en presentarlo, VLC en cambio mostraba un mensaje de error acerca del índice del video dañado y era posible repararlo pero aparentemente de manera temporal porque sucedía igual cada vez que abría el archivo.

A continuación se muestra el procedimiento utilizado para corregír el índice defectuoso del archivo de video utilizando una herramienta de linea de comando.

La solución

Instalar MEncoder si no se cuenta con él aún.

$ sudo aptitude install mencoder

Invocar el siguiente comando en el que original_video.avi es el archivo original del video y fixed_video.avi es el archivo resultante después de la corrección del índice.

$ mencoder -idx original_video.avi -ovc copy -oac copy -o fixed_video.avi

Creando un nuevo proyecto en GitHub bajo GNU/Linux

Introducción

Una vez instalado Git y configurado para GitHub es posible empezar a crear proyectos que sean monitoreados por este software de control de versiones.

Para cada proyecto se crea un repositorio donde se almacenarán las versiones de sus archivos y las ramas que se creen con ellos.

A continuación se describirán los pasos necesarios para crear un nuevo repositorio.

Crear el repositorio en GitHub

Para crear un nuevo repositorio en GitHub se debe ingresar con la información de la cuenta del usuario que será su propietario, acceder al enlace Create a new repository e ingresar la siguiente información.

Crear un nuevo repositorio en GitHub

Crear un nuevo repositorio en GitHub

Crear el directorio del proyecto

Si todavía no existe un directorio para el proyecto en el sistema de archivos del equipo del desarrollador, este se debe crear en la ubicación que la se requiera.

$ mkdir /ruta/al/proyecto123
$ cd /ruta/al/proyecto123

Esta nueva ubicación se debe activar para ser monitoreada por Git de la siguiente manera.

$ git init

Agregar una descripción ampliada del proyecto

Este paso es opcional pero se recomienda hacerlo.  Es posible agregar un archivo README al proyecto cuyo contenido se mostrará junto con la descripción del proyecto en GitHub.

$ vi README

Como este archivo es nuevo debe agregarse al registro de Git.

$ git add README

De ser necesario es posible agregar en un solo paso a todos los archivos ubicados en un directorio específico.

$ git add .

Una vez agregado y registrado el archivo es necesario hacer commit de esas modificaciones.

$ git commit -m 'First commit'

Enviar las modificaciones a GitHub

Debe tenerse en cuenta que el commit realizado en el paso anterior se realiza en la base de versiones local.  Para publicar estas modificaciones en el proyecto en GitHub es necesario sincronizarlo con el repositorio remoto de la siguiente manera.

Primero es necesario asociar el repositorio local con el remoto.

$ git remote add origin git@github.com:USERNAME/PROYECTO.git

Reemplazar las palabras USERNAME y PROYECTO con el nombre de usuario GitHub de quien va a publicar y el nombre del proyecto respectivamente.

Finalmente se realiza la sincronización con el repositorio remoto.

$ git push -u origin master

Consultar la página del repositorio en GitHub

Al consultar la página del repositorio en GitHub se deberá ver el listado de archivos sincronizados y el texto de la descripción ampliada (archivo README) especificado.  Para consultar este sitio se deberá acceder al URL con la siguiente estructura.

https://github.com/USERNAME/PROYECTO

Enlaces

Instalando KVM con Libvirt y la interfaz de red en puente bajo Ubuntu 11.10

Introducción

Desde la versión 9.10 de Ubuntu no había actualizado el proceso de instalación de KVM y de la interfaz de red en puente que realizo en mi servidor de desarrollo.  En este caso estoy utilizando la versión 11.10 y a continuación describo el procedimiento seguido para instalar KVM utilizando el metapaquete del repositorio estándar, crear la interfaz de red e instalar una máquina virtual inicial.

Instalación de KVM con Libvirt

$ sudo aptitude install ubuntu-virt-server

Es necesario que los usuarios que vayan a interactuar con las máquinas virtuales pertenezcan al grupo de libvirtd.  En el caso de la instalación es necesario que el usuario actual termine su sesión y la inicie nuevamente para que su suscripción al grupo sea tenida en cuenta.

Creación del puente en la interfaz de red

Asignar los permisos de manipulación de red requeridos al usuario que se encontrará activo durante la creación del puente.

$ sudo setcap cap_net_admin=ei /usr/bin/qemu-system-x86_64

Agregar el nombre de usuario elegido frente a la propiedad cap_net_admin.

$ sudo vi /etc/security/capability.conf
    cap_net_admin        USUARIO

Actualizar la configuración de las interfaces de red.

$ sudo vi /etc/network/interfaces
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet manual
    auto br0
    iface br0 inet static
    address 192.168.1.250
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

Reiniciar el servicio de red para que los cambios anteriores sean tenidos en cuenta.

$ sudo /etc/init.d/networking restart

Creación de una máquina virtual desde línea de comando

En el servidor instalar la herramienta de virt-install para la creación de máquinas virtuales desde la línea de comando.

$ sudo aptitude install virtinst

Solicitar la creación de la máquina virtual a partir de su configuración básica.

En este caso se va a instalar un Scientific Linux 5.7 llamada SL_57_x64_Generic con 384MB de RAM, un disco duro de 7GB y utilizará la interfaz de red en puente creada anteriormente.

$ virt-install \
    --connect qemu:///system \
    -n SL_57_x64_Generic \
    -r 384 \
    --os-type linux \
    --os-variant generic26 \
    --hvm \
    --cdrom /b1/ISO/SL.57.090911.DVD.x86_64.disc1.iso \
    --network bridge:br0 \
    --disk path=/home/vms/SL_57_x64_Generic.img,size=7 \
    --vnc --noautoconsole \
    --accelerate

Desde el cliente donde se deseen administrar las máquinas virtuales ejecutar el siguiente comando para conectarse a la máquina virtual recién creada para realizar el proceso de instalación.

$ virt-viewer -c qemu+ssh://SERVIDOR/system SL_57_x64_Generic

Enlaces

Instalación y configuración de Git para el uso con GitHub bajo GNU/Linux Ubuntu 12.04

Introducción

GitHub es un servicio de hospedaje de proyectos basado en web incluye funciones de red social como feeds, seguidores y estadísticas como clasificaciones.  Este sistema se basa en el software de control de versiones llamado Git.

El servicio se ofrece de manera gratuita para los proyectos de código abierto y bajo un costo mensual para los proyectos privados.

Una vez se ha creado la cuenta del usuario en GitHub este debe instalar y configurar Git para que se pueda interactúar de manera con los repositorios de los proyectos que se crearán en él.

Para hacer esto se deben realizar las siguientes actividades que se describen a continuación.

Procedimiento

Instalar Git

$ sudo aptitude install git

Crear la pareja de llaves SSH

En este paso se debe decidir si se va a utilizar una combinación de llaves existente o si se creará una nueva como se describe a continuación.

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "correo@electronico.com"

Recuerde especificar un contraseña (passphrase) segura a su llave privada, de esta forma evitará que pueda ser utilizada de manera maliciosa si pierde el control sobre el archivo.

Registrar la llave pública a GitHub

Ingrese al sitio web de GitHub con la información de su cuenta de usuario y seleccione en el menú de Account Settings la opción SSH Keys y presione el botón Add SSH key.

Especifique un nombre (Title) para la llave SSH y copie/pegue el contenido del archivo ~/.ssh/id_rsa.pub (o el que haya especificado) en el área Key.

Verificar la configuración de la llave pública en GitHub

Desde una terminal en el equipo de desarrollo ejecutar el siguiente comando.

$ ssh -T git@github.com

Si la llave ha sido correctamente establecida se deberá recibir un mensaje como el siguiente.

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

Configurar el nombre de usuario y el correo electrónico

En este paso se establecen localmente el nombre de usuario (de GitHub) y el correo electrónico del desarrollador para relacionarlo con los commits que haga a los diferentes proyectos del repositorio.

$ git config --global user.name "Nombre Completo"
$ git config --global user.email "correo@electronico.com"

Configurar el token de GitHub

Este token (secreto) se utiliza como medida de seguridad para autenticar las herramientas que no utilicen SSH y que deseen acceder a GitHub en nombre del usuario.

Para determinar el valor del token del usuario, seleccione en el menú de Account Settings la opción Account Settings y copie el valor mostrado frente al texto Your API token is.

Finalmente ejecute las siguientes instrucciones en una terminal teniendo en cuenta que username deberá corresponder con el nombre de usuario elegido en GitHub y reemplazar el TOKEN con el obtenido anteriormente desde el sitio web de GitHub.

$ git config --global github.user username
$ git config --global github.token TOKEN

Importante, debe tener en cuenta que cada vez que modifique la contraseña del usuario de GitHub se generará un nuevo valor del token.

Enlaces