Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

lunes, 22 de diciembre de 2014

Instalar DSpace 4.2 en Ubuntu 14.04.1 LTS

DSpace es un software de código abierto que provee herramientas para la administración de colecciones digitales, y comúnmente es usada como solución de repositorio institucional. Soporta una gran variedad de datos, incluyendolibrostesisfotografíasfilmesvideo, datos de investigación y otras formas de contenido. Los datos son organizados como ítems que pertenecen a una colección; cada colección pertenece a una comunidad.
Fue liberado en el 2002, como producto de una alianza de HP y el MIT. Es liberado bajo una licencia BSD que permite a los usuarios personalizar o extender el software según se necesite.
Muchas instituciones de investigación a nivel mundial utilizan DSpace para satisfacer una variedad de necesidades de archivo o archivaje digital:
  • Repositorios Institucionales
  • Repositorios de objetos de aprendizaje
  • Tesis Electrónicas (eTheses)
  • Administración de Registros Electrónicos
  • Preservación Digital
  • Publicación

(Fuente Wikipedia)

Preparamos el Sistema

Para instalar los paquetes necesarios nos podemos ayudar de la herramienta tasksel:



En nuestro caso, escogeremos:

  • LAMP server
  • PostgreSQL database
  • Tomcat Java server

Las otras opciones marcadas van a depender de otras necesidades como la de poder acceder via SSH al servidor. Evidentemente, estas opciones no las necesitaremos puramente para instalar un servidor DSpace. Una vez seleccionados los paquetes y damos Aceptar, se descargará los paquetes necesarios y los instalará. Llegado un momento nos hará una pregunta de configuración sobre escoger la contraseña de MySQL 

Una vez instalados estos paquetes, necesitaremos otros que instalaremos a mano. Estos dos paquetes servirán para descargar y compilar DSPace. Para instalar los paquetes y demás antes de nada hago sudo -s para no tener que estar poniendo sudo todo el rato:

apt-get install ant maven git openjdk-7-jdk
Nos encontrará muchísimas dependencias y simplemente tenemos que decir que si e instalarlas. Es importante asegurarse de que instalaremos y usaremos maven3 (Apache Maven 3.0.5 o similar). Para ello podemos teclear mvn -v para asegurarnos que versión hemos instalado. En caso de tener la versión 2 instalada, desinstalarla.

Preparamos el gestor de Base de Datos


El siguiente paso que vamos a hacer es preparar la base de datos PostgreSQL para la instalación de DSPace creando un usuario. Os aconsejo que el password del usuario dspace sea dspace para evitar problemas de instalación más adelante:

su postgres
createuser -U postgres -d -A -P dspace
exit

Una vez hecho esto, lo que vamos a hacer es permitir al usuario creado acceder a la base de datos. Para ello editamos el archivo:

vim /etc/postgresql/9.3/main/pg_hba.conf
Añadiremos la linea:
local all dspace md5
y comentaremos el resto de lineas acabadas por la palabra peer . Una vez hecho esto podemos reiniciar el servicio PostgreSQL:

service postgresql restart
Para finalizar con el gestor de base de datos, crearemos una base de datos:

createdb -U dspace -E UNICODE dspace

Preparamos Tomcat para las webapps de DSpace

Editamos el server.xml de tomcat:

vim /etc/tomcat7/server.xml

e insertamos este fragmento justo antes de la etiqueta
:

"/xmlui" docBase="/dspace/webapps/xmlui" allowLinking="true"/>
"/sword" docBase="/dspace/webapps/sword" allowLinking="true"/>
"/oai"   docBase="/dspace/webapps/oai"   allowLinking="true"/>
"/jspui" docBase="/dspace/webapps/jspui" allowLinking="true"/>
"/lni"   docBase="/dspace/webapps/lni"   allowLinking="true"/>
"/solr"  docBase="/dspace/webapps/solr"  allowLinking="true"/>

DSpace

Descargamos DSpace
git clone https://github.com/DSpace/DSpace.git

y escogemos (por ejemplo) la rama dspace-source:

cd DSpace
git checkout -b dspace-source dspace-4.2

Switched to a new branch 'dspace-source'


Instalamos DSpace

Ahora tecleamos dentro de la carpeta DSpace:

mvn package

Este proceso tardará un rato (dependiendo de la velocidad de vuestra conexión). Al final del proceso nos saldrá algo similar a esto:

[INFO] -------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -------------------------------------------------------------
[INFO] Total time: 13:19.784s
[INFO] Finished at: Mon Dec 22 12:32:30 CET 2014
[INFO] Final Memory: 73M/237M
[INFO] -------------------------------------------------------------

Y para finalizar, construimos DSpace:

cd dspace/target/dspace-4.2-build
ant fresh_install

Y si todo ha ido bien, veremos algo similar a esto al final del log:

BUILD SUCCESSFUL
Total time: 52 seconds

Arreglamos permisos Tomcat

Para que tomcat no tenga problemas de permisos, tenemos que cambiarlos para los archivos que justamente hemos creado en la compilación:

chown tomcat7.tomcat7 /dspace -R

Probamos nuestra instalación

En el log de la compilación nos decían las URL para probar nuestro DSpace:


Si probamos veremos algo como esto:


Ahora tendríamos que empezar a diseñar como lo queremos. Posiblemente querremos crear un usuario administrador y luego entrar:

dspace create-administrator

miércoles, 17 de diciembre de 2014

MSSQL Error: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.

En un artículo anterior os explicaba como conectarnos mediante PHP a un gestor de base de datos SQL Server:

http://eithel-inside.blogspot.com.es/2014/12/acceder-base-de-datos-ms-sql-server.html

En el artículo os comentaba que me inclinaba por el uso de FreeTDS como libreria para hacer la conexión. Pudiera ser que debido a trabajar en entornos heterogéneos, el mapa de caracteres nos de algún problema a la hora de hacer las consultas dependiendo de como tengamos definida nuestras tablas. El error podría ser algo como esto:
MSSQL error: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier.

Para evitarlo basta con que configuremos nuestras librerias FreeTDS de la siguiente manera:

vim /etc/freetds/freetds.conf

tds version = 8.0
client charset = UTF-8

Con esto ya os funcionará.

martes, 16 de diciembre de 2014

Acceder a base de datos MS SQL Server desde PHP, Apache y Ubuntu

Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son OraclePostgreSQL oMySQL.
(Fuente Wikipedia)

En ocasiones nos vemos con la necesidad de trabajar en entornos heterogéneos y convivir con otros sistemas operativos diferentes al del resto de la granja de servidores. Puede ser el caso de tener que tener un servidor Microsoft instalado con un gestor de base de datos SQL Server. En estos casos, nuestras aplicaciones tendrán que preparar sus conectores para realizar esta tarea (de una manera muy similar a como nos conectamos a un MySQL o Postgres). Me basaré en la biblioteca FreeTDS ya que es, a mi opinión y a la fecha de redactar este artículo, la mejor alternativa libre para hacerlo.

FreeTDS es una biblioteca de programación de software libre, una re-implementación del protocolo Tabular Data Stream. Se puede utilizar en lugar de las bibliotecas db-lib o ct-lib en Sybase. También incluye una biblioteca de ODBC. Permite a muchas aplicaciones de código abierto como Perl y PHP (o cualquier programa C o C++) conectarse a Sybase ASE o Microsoft SQL Server.
FreeTDS es una biblioteca de código fuente, no un programa en sí mismo. En general, los usuarios compilan la biblioteca de los fuentes, y permite que los programas pueda utilizar la API FreeTDS a través de enlaces. Es licenciado bajo los términos de la GNU Lesser General Public License.
(Fuente Wikipedia)

Primero instalamos los paquetes necesarios:

sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase

Luego reiniciamos apache:
service apache2 restart

Y ya tendremos todo dispuesto para poder conectarnos al gestor de base de datos mediante PHP:



$link = mssql_connect('mi_servidor.midominio.org', 'mi_usuario', 'mi_contraseña');

if (!$link) die('Unable to connect!');

if (!mssql_select_db('Mi_DB', $link)) die('Unable to select database!');






viernes, 5 de diciembre de 2014

Instalar Tiled Map (Map Editor) en Ubuntu 14.10


 Tiled es un editor de mapas tipo 'azulejo' en el cual facilmente se pueden construir cualquier dibujo. Habitualmente se utiliza para diseños sencillos de juegos de ordenador o incluso para crear mapas para juegos de rol. El software es multiplataforma y se instala facilmente añadiendo su repositorio oficial a los nuestros de Ubuntu:




# add-apt-repository ppa:mapeditor.org/tiled

Tiled is a general purpose tile map editor, written in C++ using the Qt application framework.

Website: http://www.mapeditor.org
 Más información: https://launchpad.net/~mapeditor.org/+archive/ubuntu/tiled
Pulse [Intro] para continuar o ctrl-c para cancelar

gpg: anillo «/tmp/tmp46ahgr0i/secring.gpg» creado
gpg: anillo «/tmp/tmp46ahgr0i/pubring.gpg» creado
gpg: solicitando clave 9F7F5BAF de hkp servidor keyserver.ubuntu.com
gpg: /tmp/tmp46ahgr0i/trustdb.gpg: se ha creado base de datos de confianza
gpg: clave 9F7F5BAF: clave pública "Launchpad PPA for mapeditor.org" importada
gpg: Cantidad total procesada: 1
gpg:               importadas: 1  (RSA: 1)
OK


También manualmente se puede hacer:
deb http://ppa.launchpad.net/mapeditor.org/tiled/ubuntu utopic main 
deb-src http://ppa.launchpad.net/mapeditor.org/tiled/ubuntu utopic main 

viernes, 7 de noviembre de 2014

Ubuntu 14.10 y MySQL Workbench 6.2 No muestra resultados de la consulta (query)

MySQL Workbench es una herramienta visual de diseño de bases de datos que integra desarrollo de software, Administración de bases de datos, diseño de bases de datos, creación y mantenimiento para el sistema de base de datos MySQL. Es el sucesor de DBDesigner 4 de fabFORCE.net, y reemplaza el anterior conjunto de software, MySQL GUI Tools Bundle.



(Fuente Wikipedia)


Para los que desarrollamos software y usamos MySQL estamos familiarizados con MySQL Workbench. El problema que yo he tenido es que al actualizar a Ubuntu 14.10 me dejó de funcionar bien el MySQL Workbench, ya que cuando hacia una consulta (query) el resultado no se me mostraba. Es un bug reconocido (ver bug). Miré de actualizar el paquete descargandomelo de Oracle directamente pero nada. Esperé un tiempo prudencial a ver si sacaban parche los de Canonical.. pero no puedo estar mucho tiempo sin herramientas de desarrollo así que busque la manera de tener MySQL Workbench funcionando en Ubuntu 14.10:


Te descargas las fuentes de mysql-workbench de la página oficial y:

tar xvf mysql-workbench-community-6.2.3-src.tar.gz
cd mysql-workbench-community-6.2.3-src
wget -O patch-glib.diff http://bugs.mysql.com/file.php?id=21874&bug_id=74147
patch -p0 < patch-glib.diff
sudo apt-get build-dep mysql-workbench
sudo apt-get install libgdal-dev
cd build
cmake .. -DBUILD_CONFIG=mysql_release
make
sudo make install

(Fuente StackOverflow)

Con esto me funcionó a la primera. Sin errores. 

jueves, 6 de noviembre de 2014

Crontab para ejecutarse el primer domingo de algunos meses

En el sistema operativo Unixcron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos (χρόνος) que significa "tiempo".
(Fuente Wikipedia)


Ahora me planteé como hacer que un script se ejecute el primer domingo de cada mes. Lo primero que se me vino a la cabeza es hacer esto:

0 19 1-7 * 0

Pero no funcionó como esperaba. Parece ser que la lógica que usa es la siguiente:
A las 19:00 se ejecuta los siete primeros días (del 1 al 7) y cada Domingo. 

Yo esperaba que se ejecutara solamente cuando se cumplieran ambas condiciones, no en las dos condiciones.  Así pues que lo que me queda es hacer un condicional en el mismo cron (eso o hacerlo en el script):

00 02 * 1,4,7,10 7 [ $(date -R | cut -f2 -d" ") -lt 8 ] &&  MiScript.sh

Esta linea lo que hará es que ejecutará a las 02:00 de los domingos de los meses enero, mayo, julio y octubre que el día del mes sea menor a 8, es decir, la primera semana del mes.


martes, 28 de octubre de 2014

Arreglar color del texto de iconos Nemo Cinnamon (grey icon text)


En ocasiones, debido a alguna actualización vemos que los iconos del escritorio tienen el texto en un color gris que nos dificulta mucho su lectura. Es un problema que les cuesta de arreglar ya que los que desarrollan Nemo dicen que es un problema de gtk, y los de gtk que es un problema de Nemo. Sea como sea, nosotros tenemos que arreglarlo:


Creamos un archivo al que llamaremos gtk.css dentro de la carpeta ~/.config/gtk-3.0. Escribimos este código:

.nemo-desktop.nemo-canvas-item {
color: #FFFFFF;
text-shadow: 1px 1px @desktop_item_text_shadow;
}

Luego reiniciamos nemo:

  • Alt+F2, escribimos nemo -q y pulsamos Intro
  • Alt+F2, escribimos nemo -n y pulsamos Intro

viernes, 24 de octubre de 2014

Cinnamon en Ubuntu 14.10

En artículos anteriores os hablaba de como instalar Cinnamon en Ubuntu. Para ello, debíamos añadir unos repositorios y desde allí instalar nuestro entorno Cinnamon:

http://eithel-inside.blogspot.com.es/2014/04/actualizar-buntucinnamon-de-1310-1404.html
http://eithel-inside.blogspot.com.es/2014/08/cambiar-ppa-cinnamon-de-nightly-stable.html

La buena notícia es que ahora en Ubuntu 14.10 ya viene Cinnamon en los repositorios oficiales. No tenemos porqué añadir ningún PPA y por tanto, la sensación de estabilidad y soporte es mayor:

https://launchpad.net/ubuntu/utopic/+source/cinnamon


viernes, 29 de agosto de 2014

Cambiar ppa Cinnamon de nightly a stable en ubuntu 14.04


Hasta hace poco teníamos que usar una version nightly (de desarrolladores). Tenemos la posibilidad de cambiarlo a una versión estable.


Primero quitamos el ppa que añadimos:
add-apt-repository --remove ppa:gwendal-lebihan-dev/cinnamon-nightly

Luego añadimos los nuevos repositorios:

sudo add-apt-repository ppa:lestcape/cinnamon
sudo apt-get update
sudo apt-get install cinnamon

Con esto ya podremos usar una versión estable de Cinnamon en nuestro Ubuntu 14.04

miércoles, 2 de julio de 2014

Reparar Grub fácilmente con Boot Repair

  • Fácil de usar (reparaciones con un clic!)
  • Gratuito y libre (código abierto GPL)
  • Útil (crea un resumen «BootInfo» para obter ayuda fácilmente)
  • Seguro (backups automáticos)
  • Famoso (300.000 usarios al año)
  • Puede reparar el acceso a Windows (Xp, Vista, Windows7, Windows8)
  • Puede reparar el acceso a Debian, Ubuntu, Mint, Fedora, OpenSuse, ArchLinux...
  • Puede reparar el acceso a cualquier sistema operativo (Windows, MacOS, Linux..) si su PC contiene Debian, Ubuntu, Mint, Fedora, OpenSuse, ArchLinux, o derivado
  • Puede reparar un PC OEM con MBR bloqueado, si el MBR original fue salvado por Clean-Ubiquity
  • Puede reparar el boot si usted tiene un mensaje de error « Boot Recovery »
  • Opciones para reinstalar fácilmente los cargadores GRUB2/GRUB1 (sistema operativo predeterminado, purga, opciones del kernel ...)
  • Y mucho más ! (UEFI, SecureBoot, RAID, LVM, WUBI, reparación del sistema de ficheros).
 (Fuente sourceforge)



Lo más cómodo es arrancar un Live CD con Boot Repair instalado:

http://sourceforge.net/projects/boot-repair-cd/files/


O bien arrancar un Live CD de Ubuntu y hacer lo siguiente:


sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair


Luego basta con ejecutar el programa y en la gran mayoria de los casos, dándole al botón de reparación recomendada nos arreglará el grub.  


martes, 1 de julio de 2014

error: cannot parse "~/.juju/environments.yaml": YAML error: line 200: found character that cannot start any token


En un artículo anterior explicaba como instalar Juju:


Uno de los problemas que nos podemos encontrar es que cuando tabulamos el archivo de configuración environments.yaml luego nos de un error. El problema es que este archivo no admite el carácter tabulador.




lunes, 30 de junio de 2014

Instalando Juju para orquestrar nuestra nube (MAAS, Amazon Web Services, EC2, etc..).

Juju (antes Ensemble) es una herramienta de gestión de orquestación de servicios desarrollada por Canonical Ltd.. Es un proyecto de código abierto presentado en Launchpad1 y liberado bajo la licencia pública general de Affero (AGPL).2
Juju se concentra en la noción del servicio, abstrayendo la noción de la máquina o el servidor, y define las relaciones entre aquellos servicios que son actualizados automáticamente cuando dos servicios relacionados observan una modificación notable.3 Esto permite subir o bajar escaladamente los servicios fácilmente a través de la llamada de un simple comando. Por ejemplo, un servicio web denominado Charm tiene una relación4 establecida con un equilibrador de carga puede subirse horizontalmente con una simple orden de "añadir unidad"5 sin tener que preocuparse de volver a configurar el equilibrador de carga para declarar las nuevas instancias: las relaciones basadas en eventos del Charm se encargará de eso.
Los Charms de Juju pueden ser escritos en cualquier lenguaje ejecutable.6
Así pues, vamos a empezar a instalar esta maravilla:

Lo primero es crearnos unas claves para conexiones SSH de juju con los nodos. Podéis encontrar más información en http://eithel-inside.blogspot.com.es/2010/01/autenticacion-ssh-mediante-certificado.html :

usuario@juju$ ssh-keygen
Una vez instaladas las claves miremos de instalar los paquetes (siguiendo las instrucciones de https://juju.ubuntu.com/install/ ya que pese a que en los repositorios de la distro 14.04 LTS ya esta incorporado, es aconsejable añadir los repositorios del proyecto que estan más actualizados):
sudo add-apt-repository ppa:juju/stable
sudo apt-get update && sudo apt-get install juju-core


Con esto ya tenemos instalado juju. Ahora quedará configurar un entorno de trabajo. Lo haremos mediante el archivo ~/.juju/environments.yaml . Lo que haremos es generar el archivo y luego modificarlo con nuestras opciones particulares:

usuario@juju:~$ juju generate-config
A boilerplate environment configuration file has been written to /home/csi/.juju/environments.yaml.
Edit the file to configure your juju environment and run bootstrap.



En este ejemplo voy a configurar Juju para orquestrar una nube hecha con MAAS para dar continuidad a artículos anteriores (http://eithel-inside.blogspot.com.es/2014/06/instalando-un-cluster-maas-en-ubuntu.html), no obstante podría hacerse con hpcloud, amazon, joyent, azure, etc:

Modificamos la linea que pone default: amazon por default: maas . (no es obligatorio pero ya que lo encaramos a orquestrar MAAS, vamos a facilitarnos las cosas).

Luego modificamos las lineas :
maas-server: 'http://192.168.1.1/MAAS/'
maas-oauth: ''

Aquí pondremos la IP de nuestro nodo maestro MAAS y la clave que podemos obtener siguiendo estos pasos:
Vamos a las preferencias de la página MAAS http://${my-maas-server}:80/MAAS/ y le damos a Preferences desde el menú desplegable que aparecerá cuando clicamos a nuestro nombre de usuario (arriba a la derecha de la página). Copiamos la clave del apartado MAAS keys .

Si hacemos esto, ya podemos irlo probando:

juju status
ERROR Unable to connect to environment "maas".
Please check your credentials or use 'juju bootstrap' to create a new environment.

Error details:
environment is not bootstrapped


Bien, no tenemos errores de configuración y lo que nos dice es que tenemos que hacer el arranque (bootstrapping) de nuestro entorno:

Primero sincronizamos herramientas:
juju sync-tools

*Antiguamente era juju --sync-tools, pero ahora ya no.

Luego ya podemos hacer el bootstrap:

juju bootstrap

A mi usualmente me da un error siempre:
ERROR waited for 10m0s without being able to connect: /var/lib/juju/nonce.txt does not exist

El caso es que en el nodo en donde mira de hacer bootstrap no existe ese archivo. Hay que crearlo con y poner esto:
user-admin:bootstrap

Si todo nos funciona bien veremos algo como:
(...)
Bootstrapping Juju machine agent
Starting Juju machine agent (jujud-machine-0)


En este instante ya podríamos decir que tenemos juju instalado y listo para orquestrar nuestros servicios. Hay que recordar que juju mira de definir las aplicaciones como servicios de manera que nos abstrae de instalar programas y sus relaciones, así como de 'donde' se instalan estos servicios (programas).
Así como antes hiciéramos, podemos ver el estado:

juju status
environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.4
    dns-name: bw4wb.maas

    instance-id: /MAAS/api/1.0/nodes/node-01f3f58a-fdf2-11e3-98d2-00160a07b596/
    series: trusty
services: {}


Ahora nos quedaría desplegar servicios. Como ejemplo vamos a desplegar el juju-gui, que es un panel que podremos acceder via web y manejar las cosas más habituales de juju de manera gráfica:

juju deploy juju-gui
juju expose juju-gui


¡Ya esta! Es así de mágico. Tenemos desplegado el servicio juju-gui. Como observación decir que si queremos desplegar el servicio en un nodo en cuestión, lo podemos especificar en el momento del deploy:

juju deploy juju-gui --to 0

Si ahora vemos el estado de juju:

juju status
environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.4
    dns-name: bw4wb.maas

    instance-id: /MAAS/api/1.0/nodes/node-01f3f58a-fdf2-11e3-98d2-00160a07b596/
    series: trusty
services:
  juju-gui:
    charm: cs:trusty/juju-gui-3
    exposed: false
    units:
      juju-gui/0:
        agent-state: started
        agent-version: 1.18.4
        machine: "0"
        open-ports:
        - 80/tcp
        - 443/tcp
        public-address: bw4wb.maas


Con lo que vemos que juju-gui es accesible mediante http://bw4wb.maas:80 o 443


Este vídeo es un ejemplo de instalación de OpenStack mediante Juju-GUI:
 


Enlace de interés:

That u don't know what you've got 'til it's gone