Páginas

miércoles, 28 de enero de 2015

Registro de actividad en Ubuntu zeitgeist

Hola

Tras un problema de espacio en disco de uno de los compañeros de trabajo, hemos detectado un montón de ficheros asociados a cierto demonio de registro de actividad. Si bien éstos ficheros pueden ser útiles para que N aplicaciones faciliten nuestra actividad, me parece bastante peligroso en cuanto a privacidad.

Si alguien tiene curiosidad puede consultar los ficheros recently-used.xbel* en la carpeta $HOME/.local/share y alucinar con lo que tiene: lista de documentos, páginas web visitadas, chats, etc.

Éste registro tan exhaustivo lo lleva a cabo el demonio 'zeitgeist-daemon'.

Por lo leído, el registro es esencial para el funcionamiento de ciertas Shell como Unity o Gnome 3, así que ojo al desinstalarlo porque hay muchas herramientas que depender de éste registro.

Tras revisar las dependencias me ha dado 'yuyu' por lo que he optado por no eliminar el demonio e instalar 'activity-log-manager' para gestionar su actividad:

  - Lo instalamos con:

    sudo apt-get install activity-log-manager

  - Lo arrancamos desde una consola tecleando

    activity-log-manager

  - En la parte inferior derecha de la pantalla del aplicativo tenemos el control que nos permite deshabilitar el registro de actividad.

Si alguien se decide a desinstalar 'zeitgeist-daemon', los pasos serían:

  - Averiguamos los paquetes asociados al demonio:
   
    dpkg -l |grep zeit   

  - Desinstalamos los paquetes:

    sudo apt-get remove zeitgeist
    sudo apt-get remove zeitgeist-core
    sudo apt-get remove zeitgeist-datahub
    sudo apt-get remove rhythmbox-plugin-zeitgeist
    sudo apt-get remove python-zeitgeist
    sudo apt-get remove libzeitgeist-1.0-1

Si se quiere eliminar 'activity-log-manager', los pasos serían:

    dpkg -l |grep activity-log-manager

    sudo apt-get remove activity-log-manager
    sudo apt-get remove activity-log-manager-common
    sudo apt-get remove activity-log-manager-control-center

P.D. Por supuesto existe la opción de borrar periódicamente los ficheros recently-used.xbel* y dejar todo como está.

Referencias

http://linuxaria.com/howto/how-to-remove-zeitgeist-in-ubuntu-and-why

Un saludo

sábado, 10 de enero de 2015

Crear un Hotspot Wifi en portatil Ubuntu 14.04 para teléfonos Android

Hola

Al intentar compartir mediante wifi la conexión a Internet del portatil para acceder a internet vía wifi con el teléfono me he encontrado con que en Ubuntu 14.04 LTS parece que la versión 1:2.1-0ubuntu1.1 del paquete hostapd tiene algún error y no funciona.

Para solucionar el problema, lo más simple es descargar una versión anterior de dicho paquete que sí funciona:

1) Desinstalar el paquete hostapd

   sudo apt-get remove hostapd

2) Descargar la versión operativa de dicho paquete

   wget http://us.archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_amd64.deb
   wget http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu/pool/main/a/ap-hotspot/ap-hotspot_0.3-1~webupd8~4_all.deb

3) Instalamos el paquete dnsmasq (lo va a necesitar ap-hotspot)

   sudo apt-get install dnsmasq

4) Instalamos el paquete descargado

   sudo dpkg -i hostapd_1.0-3ubuntu2.1_amd64.deb
   sudo dpkg -i ap-hotspot_0.3-1~webupd8~4_all.deb

5) Marcar el paquete hostapd como no actualizable (vigilando la salida de una actialización que elimine el problema)

   sudo apt-mark hold hostapd

6) Si durante la instalación y arranque del paquete salta un error del tipo:

   Configurando hostapd (1:1.0-3ubuntu2.1) ...
   * Starting advanced IEEE 802.11 management hostapd                      [fail]

   Deberemos encender el interfaz wifi del portatil y repetir la instalación (pasos 4 y 5)

   Configurando hostapd (1:1.0-3ubuntu2.1) ...
   * Starting advanced IEEE 802.11 management hostapd                      [ OK ]

7) Configuramos el hotspot wifi

   sudo ap-hotspot configure

8) El proceso de configuración detectará el interfaz de red conectado a Internet y nos pedirá que lo ajustemos o configuremos, detectará el interfaz wifi por el que compartiremos la conexión, nos pedirá un nombre para el hotspot y nos pedirá una password para el hotspot. Si no conocemos el nombre de los interfaces de red podemos usar ifconfig para revisarlos. Algo del estilo:

   egdepedro@titan:~/Escritorio$ sudo ap-hotspot configure
   Detecting configuration...
   Detected eth0 as the network interface connected to the Internet. Press ENTER if this is correct or enter the desired interface below (e.g.- eth0, ppp0 etc.):
  
   Detected wlan0 as your WiFi interface. Press ENTER if this is correct or enter the desired interface (e.g.- wlan1):

   Enter the desired Access Point name or press ENTER to use the default one (myhotspot):
   TITAN-WIFI
   Enter the desired WPA Passphrase below or press ENTER to use the default one (qwerty0987):
   password

9) Arrancamos el hotspot para compartir la conexión de red vía wifi con el teléfono

   sudo ap-hotspot start

10) Cuando terminemos podemos dejar de compartir la conexión vía wifi con:

   sudo ap-hotspot stop

Como comentario final un asunto pendiente. Mientras está levantado el hotspot desde el portatil no accedo a internet, a pesar de tener el interfaz eth0 levantado. Es algo pendiente de investigar. Sólo recupero la conectividad tras parar el hotspot (paso 10)

Un saludo

viernes, 3 de octubre de 2014

Ubuntu 14.04 + NoMachine NX 3.5 + XFCE

Hola

Para hacer correr NoMachine NX 3.5 entre dos máquinas ubuntu 14.04 LTS con el escritorio XFCE tenemos que:

1) Instalar en ambas máquinas NX
 
   nxclient_3.5.0-7_amd64.deb
   nxnode_3.5.0-9_amd64.deb
   nxserver_3.5.0-11_amd64.deb
 
2) Instalar en ambas máquinas xfce4

   sudo apt-get install xfce4
 
3) Configurar en el cliente la conexión:

       Login: id-usuario
       Password: contraseña
 
   En el área de configuración rellenaremos :
 
       Server: IP de nuestro server
       Port: 22
       Desktop: Unix/Custom
 
   En el botón settings ajustamos:
 
       Run the following command: /usr/sbin/lightdm-session "startxfce4"
       Options: New virtual desktop
 
4) Dado que conectamos por el puerto 22, deberemos verificar que tenemos instalado ssh en ambas máquinas:

   Server: sudo apt-get install openssh-server
   Client: sudo apt-get install openssh-client

Nota. XFCE es un escritorio muy ligero y rápido usado en muchas distribuciones y especialmente aconsejable para ahorrar memoria y recursos en el ordenador.

Un saludo

martes, 23 de septiembre de 2014

Acceder a https://notificaciones.060.es desde Linux

Hola


En la página de https://notificaciones.060.es se carga un applet para firmar diversas acciones: aceptar una notificación, cambiar datos personales, etc. La cuestión es que dicho applet no accede al almacen de certificados del navegador, sino al almacen de certificados de la máquina virtual de Java.

En las versiones más antiguas de Java, podíamos añadir certificados desde la consola 'javaws -viewer' pero en las últimas versiones ésta opción ha desaparecido, no obstante el almacen de certificados sigue existiendo.

Dicho almacen lo encontramos en:

   /home/usuarioxxx/.java/deployment/security/trusted.clientcerts

Para meter tu certificado personal en dicho almacen deberás ejecutar el siguiente comando adecuadamente ajustado:

keytool -importkeystore -srckeystore /xxxx/xxxx/xxxx/certificado.p12 -srcstoretype pkcs12 -destkeystore /home/usuarioxxx/.java/deployment/security/trusted.clientcerts

certificado.p12 es el almacen de certificados con tu clave pública y tu clave privada que habríamos exportado previamente desde nuestro navegador.

Nota. La password del almacen destino trusted.clientcerts es normalmente changeit


Un saludo

martes, 1 de julio de 2014

Instalación y prueba de SonarQube con PostgreSQL 9.1

Hola

Hemos probado SonarQube 4.3.2 sobre PostgreSQL 9.1, como herramienta de análisis de calidad del código.

Ésta entrada recoge los pasos a dar para instalar el portal sonar, el analizador sonar-runner y realizar el análisis sobre un proyecto maven multimodular con Spring, Hibernate, JSF y Facelets.

1) Instalamos el servidor PostgreSQL 9.1 con el comando:

   sudo apt-get install postgresql

2) Instalamos la consola de administración del servidor con el comando:

   sudo apt-get install pgadmin3

3) Creamos una base de datos llamada sonar.

4) Creamos un usuario sonar con password sonar y con permisos de superusuario sobre la base de datos anterior.

5) Descargamos sonar de la página http://www.sonarqube.org/downloads/ en éste ejemplo hemos bajado la versión 4.3.2.

6) Descomprimimos el zip por ejemplo en nuestro $HOME.

7) Seguimos los pasos del tutorial de instalación de la página http://docs.codehaus.org/display/SONAR/Installing

   - Editamos el fichero $HOME/sonarqube-4.3.2/conf/sonar.properties

   - Comentamos la cadena de conexión definida para la BBDD H2, que viene activada por defecto

       #sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

   - Descomentamos y ajustamos la cadena de conexión correspondiente a la BBDD PostgreSQL

       sonar.jdbc.username=sonar
       sonar.jdbc.password=sonar
       sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar

   - Ajustamos los parámetros de configuración del servidor web

       sonar.web.host=localhost
       sonar.web.context=/sonar
       sonar.web.port=9000

   - Ajustamos los parámetros de conexión a internet para el update-center, que permitirá que sonar se baje los plugins necesarios para analizar proyectos en varios lenguajes.

       sonar.updatecenter.activate=true
       http.proxyHost=xxx.xxx.xxx.xxx
       http.proxyPort=zzz
       http.proxyUser=usuario
       http.proxyPassword=password

   - Levantamos sonar mediante el comando $HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start

   - Vigilamos el contenido del fichero $HOME/sonarqube-4.3.2/logs/sonar.log por si hubiese errores. Si todo va bien deberíamos ver que se han generado 51 tablas en nuestro esquema de BBDD.

8) Accedemos a la URL del servidor Sonar en nuestro navegador:

   http://127.0.0.1:9000/sonar/

9) Ahora queremos analizar un proyecto java, para ello nos autenticamos en el portal con admin/admin

10) Entramos en Settings/Update Center para verificar si tenemos o no instalado el plugin para el lenguaje de programación que vamos a analizar. En nuestro caso proyectos Java (1.6/1.7) con Maven 2.2.1. En la pestaña 'Installed Plugins' veremos que ya tenemos Java. En la pestaña 'Available Plugins' podremos elegir muchos más, concretamente para nuestros proyectos no interesan:

   - Artifact Size
   - Checkstyle
   - PDF Report
   - CSS
   - JavaScript
   - Web
   - XML

Tras instalar todos éstos plugins deberemos reiniciar Sonar con los comandos:

   $HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh stop
   $HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start

Nota. Hay montones de plugins adicionales que permiten conectar Sonar con LDAP para autenticar a los usuarios del portal, con JIRA para gestión de errores en las aplicaciones analizadas, con JMeter para publicar los resultados de pruebas de rendimiento en Sonar, etc.

11) Instalamos el analizador de código 'SonarQube Runner', para ello:

   - Lo descargamos de: http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip

   - Lo descomprimimos en $HOME/sonar-runner-2.4

   - Ajustamos el fichero de configuración: $HOME/sonar-runner-2.4/conf/sonar-runner.properties

      sonar.host.url=http://localhost:9000/sonar
      sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
      sonar.jdbc.username=sonar
      sonar.jdbc.password=sonar

   - Definimos la variable de entorno SONAR_RUNNER_HOME en nuestro fichero .profile y ajustamos la variable PATH del entorno:

      SONAR_RUNNER_HOME=/home/egdepedro/sonar-runner-2.4
      export SONAR_RUNNER_HOME
      PATH="$SONAR_RUNNER_HOME/bin:$PATH"

   - Reiniciamos la sesión para activar las variables de entorno.

   - Probamos que todo haya quedado bien instalado con el comando:

      egdepedro@oberon:~$ sonar-runner -h
      INFO:
      INFO: usage: sonar-runner [options]
      INFO:

12) Ahora vamos a analizar uno de nuestros proyectos, para ello:

   - Añadimos en la raíz del mismo, al mismo nivel que el fichero pom.xml, el fichero 'sonar-project.properties' con el siguiente contenido:

      # Required metadata
      sonar.projectKey=prueba
      sonar.projectName=prueba
      sonar.projectVersion=1.0
      # Some properties that will be inherited by the modules
      sonar.sources=src
      # List of the module identifiers
      sonar.modules=prueba-web,prueba-batch,prueba-ws,prueba-comun

   - Levantamos el servidor sonar con el comando

      $HOME/sonarqube-4.3.2/bin/linux-x86-64/sonar.sh start

   - Nos movemos al directorio raíz del proyecto, donde hemos colocado el fichero 'sonar-project.properties' y lanzamos el comando:

      sonar-runner

   - Con ésto veremos que se va ejecutando en análisis sobre cada uno de los módulos de nuestro proyecto

13) Ahora volvemos a conectar al servidor sonar: http://127.0.0.1:9000/sonar/ y en el menú Projects podremos ver un nuevo proyecto 'prueba' con el resultado del análisis.

Referencias

http://docs.codehaus.org/display/SONAR/Installing
http://docs.codehaus.org/display/SONAR/Provisioning+Projects
http://docs.codehaus.org/display/SONAR/Analyzing+Source+Code
http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+SonarQube+Runner
http://docs.codehaus.org/display/SONAR/Analyzing+with+SonarQube+Runner

Eliminar todos los directorios .svn de un proyecto

Hola

Para eliminar de un cierto proyecto java todas las carpetas .svn de cada una de las subcarpetas que componen el proyecto lo más útil es lanzar un comando unix:

1) Nos movemos a la raíz del proyecto
2) Lanzamos el comando:

    find -type d -name '.svn' -exec rm -rfv {} \;

Para eliminar del mismo proyecto los ficheros de cierto tipo. por ejemplo .project el comando es:

    find . -type f -name "*.project" -delete



Ejecutar aplicaciones X de otra máquina en local

Hola

Cuando queremos ejecutar algún aplicativo que precise de un sistema de ventanas en un servidor donde no esté instalado/levantado el servidor x-windows por ejemplo para ahorrar recursos, podemos utilizar el servidor x-windows de nuestra máquina Ubuntu para hacerlo.

Supondremos que la IP de nuestra máquina es XXX.XXX.XXX.XXX y que la IP de la máquina remota es ZZZ.ZZZ.ZZZ.ZZZ

A partir de aquí los pasos son sencillos:

1) Permitimos que la máquina remota acceda a nuestro servidor X lanzando en nuestra máquina el comando:

    xhost ZZZ.ZZZ.ZZZ.ZZZ

2) Verificamos el valor de la variable DISPLAY de nuestra máquina con el comando:

    echo $DISPLAY --> 0.0

3) Nos conectamos a la máquina remota con el comando:

   ssh usuario@ZZZ.ZZZ.ZZZ.ZZZ

4) Redirigimos la salida gráfica de la máquina remota a nuestro servidor x-windows ejecutando en la máquina remota el comando:

   export DISPLAY=XXX.XXX.XXX.XXX:0.0

5) Levantamos en la máquina remota el aplicativo gráfico que queremos visualizar en local, por ejemplo xclock, con lo que veremos que en nuestro equipo aparece el reloj.

Nota. Para eliminar el permiso de uso de nuestro servidor x-windows otorgado a la máquina ZZZ.ZZZ.ZZZ.ZZZ deberíamos ejecutar:

    xhost -ZZZ.ZZZ.ZZZ.ZZZ




Un saludo