https://paquita.masto.host/polkillas

Nextcloud 19 en la Raspberry Pi. NoIP

El siguiente paso para tener una verdadera nube a la que podamos acceder desde cualquier parte del mundo con nuestro ordenador o móvil es configurar una dirección única para la Raspberry. La dirección que hemos estado utilizando hasta ahora (192.168.0.26 o similar) no sirve más que en nuestra red local. Pero lo interesante de tener una nube propia está en poder acceder a ella desde cualquier lugar. Hay un problema para ello: la práctica totalidad de las empresas proveedoras de servicios de internet en España funcionan mediante lo que se conoce como IP dinámica: la IP, la dirección en internet, va cambiando de forma que los clientes no podemos controlarlo. De tal manera que si acudimos a servicios como What’s My IP, hoy nos puede dar un resultado y mañana otro que no podemos adivinar. Para ello hace falta algo llamado servidor de nombre de dominio dinámico o DDNS, por sus siglas en inglés. Este tipo de servicios instala un pequeñ o programa en nuestro servidor que periódicamente comprueba si ha cambiado nuestra dirección y lo actualiza en un “dominio” propio, de tal manera que solo tenemos que usar este “dominio”. Lo escribo entre comillas porque esta explicación no es técnicamente del todo precisa, pero es más que suficiente para nuestras necesidades.

¿Qué necesitamos para tener una dirección propia reconocible? Hay muchos servicios DDNS disponibles. El que yo uso es no-ip.com, que es bastante fácil de utilizar.

En primer lugar tenemos que registrarnos en la web de No IP.

Como se ve en la imagen, podemos elegir una dirección que sea “lo-que-te-dé-la-gana.una-de-las-cuatro-opciones”. Mi nube en producción usa la dirección http://polkillas.ddns.net, pero puedes escoger la opción que prefieras.

Cuando nos registramos, nos envía un correo de confirmación a nuestra cuenta de correo. Cuando activamos mediante el enlace, podemos entrar en el servicio. El segundo paso consiste en descargarse en la Raspberry el programa que se conecta a No IP. Lo llaman DUC y se instala así, siguiendo las instrucciones oficiales:

mkdir /home/NOMBREDEUSUARIOQUEHEMOSCAMBIADO/noip (creamos un directorio para bajarlo)

cd /home/pi/noip (vamos al directorio)

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz (descargamos el DUC)

tar vzxf noip-duc-linux.tar.gz (lo descomprimimos)

cd noip-2.1.9-1 (entramos en el directorio que se ha creado)

sudo make (preparamos el programa para instalarlo)

compilandonoip

sudo make install (lo instalamos)

Este procedimiento se llama compilar el programa. En el último paso, nos pedirá la dirección de correo y la contraseña de nuestra cuenta en no-ip.com.

Luego nos pedirá el intervalo de tiempo en minutos tras el cual se actualizará la dirección, si fuera necesario. El mínimo es 5 y en realidad 30, lo que sale por defecto, suele ser suficiente, pero se puede poner menos. También nos preguntará si queremos ejecutar algo después, pero podemos contestar que no.

configuración de NoIP

Ya podemos ejecutarlo con la orden sudo noip2. Y como querremos que se ejecute solo al arrancar la Raspberry, lo hacemos de la siguiente manera. Vamos a editar los programas que se ejecutan cada cierto tiempo o en momentos determinados (como el arranque o el apagado) de la Raspberry con la orden

sudo crontab -e

La primera vez que editamos el archivo crontab nos dará a elegir entre diferentes editores de texto. El recomendado es “nano”, la opción 1.

Incluir NoIP en el crontab

En el archivo que aparece, añadimos en la última línea lo siguiente:

@reboot sudo -u root noip2

Cerramos con CTRL + X y le decimos que guarde el archivo.

Si ahora mismo volvemos a ejecutar el DUC, nos dará el siguiente error:

sudo noip2

One noip2 process is already active,
and the multiple instance flag (-M) is not set.

Lo que significa que ya está funcionando. Vamos a comprobar así que lo hemos hech o bien, reiniciando la Raspberry con la orden sudo reboot. Si intentamos ejecutar el DUC, nos dará el mismo mensaje, con lo que es correcto. Así pues, ya podemos ir a nuestro navegador y buscar la dirección que hemos escogido al principio (http://polkillas.ddns.net/nube, en mi caso), y nos debería aparecer lo siguiente:

Que significa que nuestra nube ha detectado algo raro: ya no accedemos desde la IP local, sino desde un dominio de internet. Por si acaso, no se fía y nos pregunta. Pulsamos el botón “Añadir … como dominio de confianza” o, en inglés “Add … as trusted domain” y, si estábamos registrados como administradores, directamente nos sale una pantalla en la que nos pregunta si queremos añadir el dominio. Respondemos que sí y nos saldrá la pantalla de administración de Nextcloud. El mensaje rojo no es exactamente un error, sino una advertencia que corregiremos en próximas entradas.

administracion-nextcloud-mozilla-firefox_061

SI no funciona este proceso, hace falta abrir los puertos del router. Es un proceso que depende mucho del modelo de router que tengamos en casa, así que, en este caso, toca recurrir a Google o a DuckDuckGo para buscar información concreta de cómo se hace.

Nextcloud 19 en la Raspberry Pi. Servidor web, PHP y MariaDB

Raspberry Pi OS es una versión de Debian 10 optimizada para el procesador de la Raspberry, que no es uno normal de ordenador (x86 o x86_64), sino más parecido a los de los móviles (arm). Al estar basada en Debian, nos vamos a encontrar versiones muy probadas de las aplicaciones, pero en versiones no muy modernas. Afortunadamente, parece que en últimas versiones se han preocupado de mejorar esto un poco

Por su parte, MariaDB es una bifurcación (fork) de MySQL que tiene todas las características de MySQL y alguna más, aparte de (según parece) ser más rápida.

Y, por último, Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que la Raspberry en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.

Vamos a ver cómo podemos conseguir instalar Apache2, PHP 7.3 y MariaDB 10 en nuestra flamante Raspbian.

Para entender lo que vamos a hacer, es interesante saber cómo funcional los repositorios en Linux. En Windows, cuando instalamos un programa, nos bajamos un archivo que tiene todo lo que necesita el programa. Es sencillo, pero si varios programas necesitan lo mismo, tendremos eso tres veces en lugar de solo una. En Linux el software se organiza en repositorios, servidores que contienen los programas organizados en paquetes, de tal manera que si tres aplicaciones necesitan PHP, por ejemplo, en lugar de que cada aplicación incluya PHP, las tres declaran que necesitan PHP y se instala una sola vez. Es una solución elegante, aunque puede dar problemas de dependencias (esas necesidades se llaman dependencias y se pueden convertir en un dolor de cabeza).

Instalación

Consiste  en ejecutar la orden sudo apt install apache2 mariadb-server php7.3 php-redis php7.3-cli php7.3-curl php7.3-gd php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-xml php7.3-xmlrpc php7.3-zip libapache2-mod-php7.3 phpmyadmin. Tardará un buen rato en descargar y configurar todo esto.

Actualización 15 de octubre: Si queremos instalar una versión más moderna de PHP, que no dé problemas con algunas apps como Passwords y con versiones futuras de Nextcloud, podemos añadir el repositorio de Sury, siguiendo estas instrucciones que traduzco:

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg Conseguimos la clave del repositorio de Sury

echo «deb https://packages.sury.org/php/ buster main» | sudo tee /etc/apt/sources.list.d/php.list Añadimos a los orígenes del software el repositorio

sudo apt update Actualizamos

 


 

Durante la instalación, nos preguntará qué servidor web deseamos configurar. Seleccionamos Apache marcándolo con la barra espaciadora, vamos a «Aceptar» con el tabulador y pulsamos Intro para aceptar.

Configuración de phpmyadmin

También nos pedirá configurar el usuario root, al que tendremos que poner una contraseña.

Podemos comprobar que la instalación ha funcionado así:

  • Apache: abrimos un navegador y en la barra de direcciones (no en Google, sino ahí arriba del todo, donde ahora mismo pone polkillas.net y un montón de cosas más) ponemos la dirección IP de nuestra Raspberry. Ya sabemos: 192.168.xx.xx. Debería aparecer la siguiente pantalla:
    Página por defecto de Apache2 en Debian
  • PHP: Podemos comprobar que lo hemos hecho bien escribiendo php -v en el terminal y nos debe aparecer el número exacto de versión). También podemos crear un archivo de información para verlo en el navegador. Esta versión es más chula y da más información, lo cual puede ser peligroso si nos quieren atacar, así que la recomendación es borrar este archivo después de comprobar que lo hemos hecho bien.creamos el archivo con sudo nano /etc/www/html/info.php y escribimos lo siguiente en su interior:
    <?php
    phpinfo();
    ?>

    Guardamos con CTRL-X, s y lo vemos en el navegador en la direción http://192.168.xx.xx/info.php, que debe dar algo parecido a esto (se ve cómo estaba en una versión anterior de este tutorial, con PHP 7.0:
    Resultado de phpinfo
  • MariaDB: entramos en la Raspberry vía SSH  y escribimos sudo mysql --user=root mysql,  lo que debe hacer que el cursor cambie a los siguiente:
    Prompt de MariaDB en Raspbian

 

Preparación de la base de datos

Una vez que hemos comprobado que todo funciona, podemos crear el usuario

Ahora debemos crear la base de datos y el usuario que vamos a utilizar con nuestra instalación de Nextcloud. Parar ello, lanzamos estos comandos SQL:

create user 'USUARIO'@'localhost' identified by 'CONTRASEÑA';
cambiando las mayúsculas por el usuario y contraseña que queramos.

create database NOMBREDELABASEDEDATOS;
cambiando las mayúsculas por el nombre que queramos.

Y le concedemos derechos de uso a este usuario que acabamos de crear con

grant all privileges on NOMBREDELABASEDEDATOS.* to 'USUARIO'@'localhost' with grant option;

Por último, recargamos los privilegios de MariaDB con flush privileges; y salimos con exit.

Retoques y mejoras

De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos sudo mysql_secure_installation (truco sacado de aquí) y respondemos las preguntas:

Se pide, lo primero la contraseña del usuario ‘root’. El error que aparece se debía a que no recordaba qué contraseña había puesto, y tuve que probar dos. Con la nueva versión no hay contraseña de root, así que te propone crear esa contraseña.

Después nos pide eliminar el acceso anónimo, que es una buena idea, y deshabilitar el acceso del usuario root desde otro ordenador que no sea la Raspberry. También sugiere eliminar una base de datos de prueba, que es innecesaria. Decimos que sí (y) a estas tres preguntas.

Por último, sugiere recargar las tablas de privilegios (lo que quiera que eso quiera decir), También aceptamos y listo.

Otros requisitos de Nextcloud

Para poder ver vistas previas de las imágenes que subamos a nuestra nube, necesitamos instalar un programa como ffmpeg, y para las Tareas, necesitamos el módulo intl de PHP.

sudo apt-get install ffmpeg php-intl

Nextcloud 19 en la Raspberry Pi. Preparando un disco duro externo

Después de las entradas anteriores, ya podríamos instalar Nextcloud en la Raspberry, pero tendríamos un problema. Si una limitación tiene la Raspberry es que no tiene disco duro y las tarjetas SD tienen una capacidad bastante escasa, si lo que pretendemos es usar este pequeño ordenador como nube. La solución está en conectar un disco duro y configurarlo para que nos haga el servicio que queremos.

En este caso vamos a seguir las instrucciones de manuti, creador del blog en español de referencia sobre las Raspberry, Raspberry para torpes.

Si todavía  no hemos conectado ningún disco duro a la Raspberry, es el momento de hacerlo, a ser posible con un concentrador que evite problemas de alimentación.

Un posible problema que podemos tener es que desconectemos el disco duro y, al volverlo a conectar, no se reconozca de la misma manera. Si estuviéramos en Windows, cuando insertamos un pincho USB se le da una letra (G;, H; etc.) y si lo sacamos y volvemos a meter cabe la posibilidad de que la letra cambie, y eso puede ser un problema para nuestra nube. Para ello, vamos a asegurarnos de que esto no pasa.

Cuando hemos conectado el disco duro a la Rasbperry, podemos comprobar si se ha reconocido bien, escribiendo ls -laF /dev/disk/by-uuid/

Reconozco que no sé a qué se refieren exactamente las dos primeras líneas pero, afortunadamente, no hace falta saberlo. Las importantes son el resto. Las que tienen al final la expresión ../../mmcblkXX se refieren a la tarjeta SD, mientras que la otra es la que nos interesa realmente.

En Linux, la base de Raspbian, los discos duros no reciben una letra como en Windows, sino una expresión que tiene tres letras y puede tener un número. En mi caso, el disco duro es sda1. La “s” significa disco duro moderno, los antiguos llevarían una “h”; la “d” del medio es de disco, la letra es algo parecida a la de Windows, pero siempre en minúscula (podría haber sda, sdb, sdc, etc.); y el número se referirá a las particiones que pueda tener el disco duro.

Manuti recomienda formatear el disco duro en formato ext4. Tiene la ventaja de trabajar mejor y más rápido, y el inconveniente de que, si lo hacemos, Windows no reconocerá el disco duro. Puesto que el principal problema de la Raspberry Pi 2 es la velocidad de transferencia de archivos por la red, problema creado porque el diseño que tiene (todas las versiones, de la 1 a la 3, no sé si la 4 también pero también la Zero) presenta un cuello de botella, me parece que no es muy necesario hacerlo, sobre todo si no manejamos normalmente Linux. Si estás interesado en hacerlo, puedes seguir las (muy claras) instrucciones de manuti.

También podemos comprobar la presencia del disco duro con la orden sudo blkid, que nos dará un resultado diferente pero con la información que necesitamos.

pipolkillas-pi-_029

Vemos que el UUID del disco duro es el mismo en los dos casos. Bien, pues vamos a crear una carpeta donde “se monte” el disco duro siempre. O sea, vamos a decirle a la Raspberry que siempre le dé el mismo nombre, como si en Windows le diéramos la misma letra siempre. Para ello creamos un directorio. Puede ser el que queramos, pero es recomendable usar /media/lo-que-sea. Además, para evitarnos problemas de permisos y que siempre podamos abrir cualquier archivo del disco duro, lo dejamos libre, sin protección

Por ejemplo, puesto que uso un disco duro prestado de mi novia que está etiquetado como “Vir”, hago lo siguiente:

sudo mkdir /media/Vir
sudo chmod 777 /media/Vir

Ahora, el siguiente paso es delicado. Alguna vez me he cargado la Raspberry, dejándola sin posibilidad de arrancar bien. Afortunadamente, manuti no solo nos recomienda hacer una copia de seguridad sino que nos explica cómo hacerla. Hacemos una copia de seguridad del archivo que guarda la configuración de los discos:, que se llama /etc/fstab:

ls /etc (comprobamos que el archivo existe)
sudo cp /etc/fstab /etc/fstab.old (lo copiamos con otro nombre en el mismo sitio)
ls /etc (comprobamos que lo hemos hecho bien)

 

Ahora vamos a editar el archivo “fstab” con un programa llamado “nano”: sudo nano /etc/fstab.

Nano es un editor de textos muy sencillo, es el equivalente al Bloc de notas. Ojo que, aunque tengamos ratón porque estamos accediendo por SSH, hay que tener en cuenta que no podemos manejar nano con el ratón; solo podemos hacerlo con el teclado.

Ahora tenemos dos opciones. La primera es algo más sencilla. En el fichero fstab, debemos añadir una línea como la siguiente

/dev/hdaX /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

Pero esto tiene un problema: si desconectamos este disco duro y conectamos otro, Rasbpian no tendría forma de saber que es otro diferente. Casi seguro, las carpetas y archivos serían diferentes y esto nos puede dar muchos problemas con Nextcoud. Por eso, es más seguro, como recomienda manuti, identificar el disco duro por su “DNI”, el UUID. La línea del archivo fstab sería esta:

UUID=el-largo-código-de-números-y-letras /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

Y si hemos optado por hacerlo con el formato de Linux, sería esta otra:

UUID=el-largo-código-de-números-y-letras /media/Vir ext4 defaults 0 0

La explicación es esta:

/dev/hdaX (también puede ser /dev/sdaX)UUID=lo-que-sea El nombre del disco duro
/media/Vir La carpeta que hemos creado
ntfs-3g El sistema de archivos del disco duro (si pusiéramos solo ntfs, sería de solo escritura y no nos serviría para Nextcloud, y si no nos hace falta compatibilidad con Windows, será ext4)
defaults,locale=es_ES.UTF8 la configuración: normal (defaults) y en español de España (es_ES). Esta parte no hace falta en ext4.
0 opción para copias de seguridad que la Raspberry no tiene por defecto, así que lo dejamos en 0
0 opción para que fsck (algo parecido a scandisk pero en Linux) escanee esta unidad. Alargaría mucho el tiempo de arranque, así que le decimos que no con el 0

Reiniciamos la Raspberry con sudo reboot y comprobamos si lo hemos hecho bien yendo al directorio donde debería estar el disco duro: cd /media/Vir ,y comprobando el contenido del disco duro con ls.

Nextcloud 19 en la Raspberry Pi. Configurando la Raspberry. Acceso SSH

Una vez tenemos Raspberry Pi OS funcionando en la Raspberry, el siguiente paso es actualizar el sistema.Para ello, tenemos que tener conectados al miniordenador una pantalla y un teclado, que a partir de este paso, gracias a la magia de SSH, no nos volverán a hacer falta.

El primer arranque se demora varios minutos. En versiones anteriores no era así, pero creo que se debe a que ahora al arrancar la primera vez se actualiza y prepara varias cosas, pero las veces siguientes no tardará más de unos instantes.

Por si acaso, para actualizar el sistema, los comandos que tenemos que escribir son estos:

sudo apt-get update
Actualiza la información de actualizaciones

sudo apt-get dist-upgrade
Actualiza los paquetes, los programas.

Como Raspberry Pi OS está configurado por defecto en inglés, puedes tener problemas para escribir el guion. Puedes usar el signo menos del teclado numérico y, si no lo tienes, prueba con el apóstrofe, la tecla que hay a la derecha del 0. Aunque esté así,  a continuación podremos cambiarlo.

Cuando hemos hecho esto, podemos cambiar la configuración de la Raspberry. Enviamos la orden sudo raspi-config y nos aparece este menú.

Hay varias opciones que nos van a interesar. Vamos con ellas en el orden en que aparecen en el menú, por el que nos movemos con las flechas arriba ya abajo. Para saltar a los botones de Aceptar o Cancelar, usamos el tabulador (la tecla que está a la izquierda de la Q).

1 Expand Filesystem

No debería hacer falta hacerlo al ser una instalación nueva, pero no pasa nada por hacerlo. Lo seleccionamos y nos avisa de que estará hecho después de reiniciar.

2 Change User Password

Podemos cambiar la contraseña por defecto del usuario «pi» porque es un agujero de seguridad tener una contraseña conocida. Sin embargo, es preferible crear otro usuario diferente y ponerle la contraseña que queramos. Lo veremos más adelante.

3 Boot Options

Esta opción es interesante si vamos a usar la Raspberry como ordenador de escritorio. Si no, no hace falta tocarla.

4 Internationalisation Options

Para poner la Raspberry en español este es el sitio adecuado. Las opciones que debemos seleccionar son estas:

I1 Change Locale

Buscamos la opción es_ES.UTF8 y la seleccionamos. Aceptamos y en la siguiente pantalla, en la que aparecen muchas menos opciones, la volvemos a seleccionar. Esperamos unos segundos a que se generen las locales.

I2 Change Timezone

Para no tener problemas, sobre todo, con el calendario de Nextcloud, tenemos que asegurarnos de que el servidor está en nuestra zona horaria. Escogemos nuestro continente y después la capital del país en el que estemos. En mi caso, Europa y Madrid.

I3 Change Keyboard Layout

El primer paso aquí no tan importante como el segundo. Si no encontramos nuestro modelo exacto de teclado o no lo sabemos, basta con dejar el «Generic 105 Intl». Lo importante es lo segundo. Seguramente saldrá una serie de opciones del idioma inglés, así que bajamos a «Other» y buscamos el idioma español. Una vez lo hemos localizado, la primera opción suele bastar, a no ser que tengamos algún teclado específico.

I4 Change Wifi Country

Yo no tuve problemas con la wifi antes de configurar esto, pero no sobra busca ES Spain y seleccionarlo, si vamos a conectar la Raspberry vía Wifi.

7 Advanced Options

De todas las opciones que tenemos aquí, solo comento las que nos pueden ayudar a que vaya mejor. Son estas:

A3 Memory Split

Si no tenemos escritorio instalado, la GPU (memoria gráfica) no necesita mucho, podemos reducir la cantidad que aparece a 16, que es el mínimo.

A4 SSH

Importantísimo. Sin más.

Según Wikipedia, SSH es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Es decir, SSH sirve para “entrar” en un ordenador desde otro. Si está activado, podemos tener una línea de comandos en un ordenador diferente y trabajar en la Raspberry. En versiones anteriores, venía activado por defecto, pero desde hace un tiempo no es así. Este es el paso fundamental para poder usar la Raspberry sin necesidad de tenerla conectada a monitor y teclado., por lo que tendremos que seleccionar esta opción y activarla. Una vez que lo hemos hecho, podemos conectarnos a la Raspberry desde otro ordenador.

En Windows se puede usar PuTTY para ello y en Linux no hace falta instalar nada. Veamos:

No hace falta instalar PuTTY, al abrir el archivo descargado se abre directamente esta ventana. En el campo “Host Name (or IP address)” tenemos que escribir lo que aparece en la imagen, cambiando las  XX con unos números que estarán entre 0 y 255. Para saber exactamente qué número poner podríamos ir pr obando de uno en uno, pero hay una forma mucho más sencilla: cuando  hayamos acabado de configurar la raspberry,,podemos  escribir la orden ifconfig. Sale un montón de información pero lo que tenemos que buscar es la expresion inet address seguida de un número compuesto de cuatro cifras separadas por un punto y que sean las dos primeras esos 192.168. Si estamos conectados al router con un cable, estará en la sección eth0; si estamos usando wifi, estará seguramente en la sección wlan0.

Si lo hemos hecho bien, nos aparecerá una alerta. Es normal, solo nos avisa de que nos estamos conectando a un ordenador nuevo y nunca hemos dicho a PuTTY que se fíe. Pulsar en sí hace que PuTTY, en adelante, confíe en nuestra Raspberry.

A continuación nos sale una pantalla nueva que nos pedirá el usuario de Raspberry PI OS (pi, si no lo cambiamos) y la contraseña (raspberry por defecto, ya cambiaremos esto).  Al escribir la contraseña, como suele pasar en Linux, parece que no pasa nada, pero no es preocupante:

Al pulsar Intro, nos aparece el mismo mensaje que aparece en el monitor de la Raspberry al arrancar, lo que nos confima que esa pantalla “es” la Raspberry.

En Ubuntu y otros Linux, abrimos un terminal (CTRL+ALT+T o abrimos el tablero y escribimos “terminal”). Para usar SSH, la forma es sencilla:

ssh pi@192.168.XX.XX

Igual que en PuTTY, cambiamos los dos últimos números por el resultado de ifconfig:

¡Voilà! A partir de este momento no nos hace falta tener un monitor conectado a la Raspberry mientras haya conexión a internet.

A0 Update

Sirve para actualizar el mismo programa raspi-config. Lo más probable es que no haya actualizaciones.


Con esto tenemos configurada nuestra Raspberry y podemos empezar a instalar los programas que vamos a necesitar para que funcione bien nuestro Nextcloud.

La penúltima cosa que podemos hacer es fijar la IP de la Raspberry para no tener problemas de conexión. En mi experiencia no me ha pasado porque no he desconectado nunca el cable de red que une la Raspberry con el router. Pero si este fuera el caso y hubiera algún problema con la conexión, podría ser porque se ha asignado una IP diferente a la Raspberry. En este caso, recomiendo acudir a Raspberry para torpes, donde manuti tiene 3 entradas que nos pueden ser útiles:

Por último, una cosa que me parece muy recomendable es cambiar el usuario por defecto, (pi), por otro diferente y la contraseña de root. Esto hace que sea más difícil que un posible atacante pueda entrar en la Raspberry, pues no solo tiene que adivinar la contraseña sino también el usuario. Para ello seguiremos algo de un tutorial de Juan Jose Ramirez Lama en su blog juaramir.com y una página vieja pero aún muy útil, Principiante Linux.

Para cambiar la contraseña del superadministrador, escribimos la siguiente orden:

sudo passwd

Nos pide que escribamos la nueva contraseña y que la repitamos, por si acaso nos hemos equivocado al escribirla. Después iniciamos sesión como administrador con el comando sudo su y metemos la contraseña que acabamos de cambiar si nos la pide.

Para cambiar el usuario “pi” debemos crear un usuario nuevo con la siguiente orden:

adduser USUARIONUEVO, sustituyendo las mayúsculas por el nombre que queramos darle al usuario. Como estamos como administrador, no necesitamos sudo delante.

Nos pide que escribamos dos veces la contraseña del nuevo usuario y nos hace una serie de preguntas que no hace falta responder, podemos pulsar Intro en cada una.

A continuación podemos modificar el usuario para darle derechos de administrador. Con la orden groups pi veremos los grupos a los que pertenece ese usuario, y podemos usar groups USUARIONUEVO para comprobarlo en el nuevo. Para darle permisos, hay que dar la siguiente orden:

usermod -G adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio,sudo USUARIONUEVO

De la ristra de palabras entre comas, lo más importante para nuestros objetivos es “sudo”. El resto da otros derechos que para otros usos de la Raspberry serán necesarios. Podemos comprobar que lo hemos hecho bien volviendo a ejecutar groups USUARIONUEVO, y veremos que ya tiene los mismos derechos que “pi”.

Cerramos la sesión de «root» escribiendo exit y la sesión de «pi» volviendo a escribir lo mismo, y volvemos a entrar, ahora con el nuevo usuario. Ahora ya podemos eliminar el usuario pi con la orden sudo userdel -r pi.

El masculino plural genérico mal entendido

La respuesta a este tuit del cipotudo Soto Ivars revela el problema lingüístico real que ha existido siempre con el masculino genérico. El autor del tuit se refiere a niños y niñas, mientras que el machista que responde lo ha entendido sin tener en cuenta a las niñas. Por eso se lo teme, porque si pensara en las niñas seguro que no le parecería mal que dibujen muñecas y vestiditos (ay, también, ese diminitivo despectivo…).

No me acaban de convencer ninguna de las soluciones a este problema. La más cercana a lo que los filólogos llamaban antes «el genio de la lengua» creo que sería el morfema -e , pero ni me gusta mucho ni creo que cuaje. Y creo que es una solución española porque ya tenemos tres géneros: masculino, femenino y neutro: este/a/o, así que tener un cuarto género [+ animado – masculino -femenino] no sería el fin del mundo. Pero, evidentemente, la discusión sobre este tema no es nunca lingüística, y pocas veces sociolingüística.

Nextcloud 19 en la Raspberry Pi. 1 Pasos previos

Se me ha corrompido la tarjeta SD de la Raspberry y llevaba un tiempo sin hacer copia de seguridad, así que me va a ser más sencillo empezar desde 0 que intentar recuperarla. Para poner al mal tiempo buena cara, aprovecharé para actualizar mi tutorial de instalación.

Cables y conexiones

La Raspberry necesita unas cuantas cosas para poder arrancar:

  • Cable miniUSB de carga de al menos 2V. Ojo, que no todos los cargadores de móviles valen, aunque sean miniUSB, por el voltaje. Una vez se me estropeó este cable y provocaba apagones aleatorios de al Raspberry, merece la pena utilizar uno bueno, que dure.
  • Cable de red Ethernet o adaptador wifi USB para tener red.

Puesto que vamos a usar la Raspberry como servidor Nextcloud, necesitamos mucho espacio de disco duro. Aunque ya hay tarjetas SD de por lo menos 128 Gb, es preferible tener un disco duro externo y conectarlo. Si tienes un disco externo que no necesite carga, sería ideal, pero como no suele ser el caso también viene bien un concentrador (hub) USB que dé carga y, a ser posible, con USB 3.0 para que vaya más rápido. Yo uso uno de Amazon Basics.

También es recomendable tener un teclado y ratón USB, no valen los antiguos PS2, y un cable HDMI para conectarla a un monitor. Los usaremos solo la primera vez que arranquemos la Raspberry, pero sin ellos no podremos continuar.

Preparación de Raspberry Pi OS

Si queremos empezar desde cero nuestro servidor, la opción más sencilla es descargar el sistema operativo de la web de la fundación Raspberry. Después de haber probado varias opciones, no veo muchas ventajas a NOOBS, que es teóricamente el sistema más sencillo, así que recomiendo instalar Raspberry Pi OS (antes llamado Raspbian) directamente. Si te asusta que no haya un escritorio, puedes instalar la versión completa pero es preferible la versión lite porque gasta menos memoria, que queda libre para el resto de cosas que queramos instalar: servidor web, base de datos, servidor de búsqueda, reconocimiento óptico de caracteres, etc.

La forma más fácil para descargar cualquiera de las dos versiones es ir a la web que he enlazado antes, seleccionar Raspberry Pi OS (o ir directamente aquí) y pulsar en «Download ZIP». Puede ser incluso más rápido bajarlo por vía torrent pero para ello necesitamos un cliente como uTorrent en Windows o Transmission en Linux.

Una vez descargado, hay que descomprimir el archivo .zip: hacemos doble clic sobre él y, se abra lo que se abra, buscamos la opción «Descomprimir»; lo más sencillo, en el escritorio.

Una vez tenemos un archivo con extensión .img, hay que grabar esa imagen en una tarjeta SD de, al menos, 4 Gb. Se puede usar SDFormatter en Windows y Mac; y balenaEtcher en Windows, Mac y Linux.

Es fácil: abrimos SDFormatter, metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos «Option». Ahí cambiamos FORMAT SIZE ADJUSTMENT a ON por si acaso la tarjeta tuviera varias particiones. Varias letras (F:, G:), para entendernos. De esta forma las eliminamos y la tarjeta queda como nueva.

SD Formatter

La letra (G: en este caso) puee variar

La letra (G: en este caso) puede variar

Luego con el Win32DiskImager, algo parecido: metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos la tarjeta en la casilla Device (se puede comprobar la letra en el Explorador de Windows si no estamos seguros) y el archivo .img pulsando el icono de la carpeta.

Win32 Disk Imager

Por cierto, que si no tienes un portátil con adaptador SD, se puede comprar un adaptador USB por menos de un euro en Deal Extreme.

En balenaEtcher, el proceso es todavía más sencillo.  En el primer paso, seleccionamos el archivo que nos hemos descargado (en este caso, no hace falta descomprimirlo, balenaEtcher funciona con el zip) y en el segundo probablemente no tengamos que hacer nada si solo tenemos una unidad extraíble insertada. En caso contrario, selecciona la unidad que sea pulsando en «Change». Ojo con esto, que como seleccionamos el disco que no sea, lo vamos a borrar entero. Por último, pulsamos «Flash». Pedirá confirmación y/o la contraseña de administrador y se pondrá a la tarea.

Una vez ha concluido con éxito la copia del archivo .img a la tarjeta SD, llega el momento de insertarla en la Raspberry apagada y solo después de asegurarnos de que ha quedado bien insertada la arrancamos enchufando el cargador miniUSB y conectando con un cable HDMI la Raspberry a un monitor.

El sistema ya está instalado y, si hemos optado por la versión Lite, veremos esto.

arranque de Raspbian Lite

La imagen es de una versión anterior, pero sirve para hacerse una idea.

Puede asustar o, si tienes una edad, recordarte a los viejos ordenadores Amstrad, Spectrum o Commodore. La ventaja de no tener un escritorio es que se gasta mucha menos memoria. Pero si te decidiste por la versión con escritorio, lo único que tendrás que hacer en posteriores entradas es abrir la aplicación «Terminal» y escribir ahí los comandos.

Comillas españolas o latinas en Ubuntu (desde 18.04 hasta 19.10)

Truco rápido: para escribir las comillas españolas o latinas en Gnome, concretamente en Ubuntu desde la versión 18.04 LTS, solo hay que pulsar AltGr + Z para « y AltGr + X para ».

Click Control

Bla

Suscribirse a un calendario en el Cloud de Educamadrid

He creado un calendario en el Cloud de mi instituto para señalar las fechas más importantes y que quien quiera puedar consultarlo en el móvil. Sin embargo, hay un pequeño problema en Android que hay que solucionar antes de que podamos tener estas fechas (Puertas Abiertas, Evaluaciones, etc.) en el calendario del móvil.

El paso previo es instalar ICSx⁵. Es una pequeña app que nos permite suscribirnos a calendarios, que es lo que queremos hacer. Lo podemos encontrar en Google Play, donde cuesta 1,49 €, un precio pequeño para lo útil que es. Además, para los más manitas, se puede encontrar en F-Droid de forma abierta y gratuita. Puedes pulsar los botones a continuación para instalarlo.

ICSx⁵

Instalar ICSx⁵ desde Google Play

ICSx5 en F-Droid

Instalar ICSx5 desde F-Droid

Una vez hemos instalado esta app, podemos visitar el calendario del instituto. Puedes pulsar el enlace anterior o copiar y pegar la dirección en el navegador (Firefox, Chrome, etc.). Es esta: http://cloud.educa.madrid.org/index.php/apps/calendar/p/E8VP1UU913STRCFR/Instituto.

Al entrar, veremos esto:

Pulsamos en el botón «Suscribirse»  y se abrirá ICSx⁵, con la opción Suscribirse a calendario.

Pulsamos la flecha para avanzar y nos deja cambiar el nombre del calendario y el color con el que aparecerán los eventos en nuestro calendario. Cuando lo configuramos a nuestro gusto, pulsamos el tick de arriba a la derecha.

Es muy probable que nos aparezca un mensaje de error como el de la imagen a continuación.  Si la sincronización automática está desactivada, no tendremos los eventos del calendario. Para ello, debemos pulsar el botón de menú, los tres puntos de arriba.

    

En la ventana que aparece, basta con sincronizar una vez al día, aunque se puede poner el intervalo que se prefiera.

Cuando pulsemos Guardar, habremos terminado y podremos comprobar que ya tenemos en el calendario del móvil los eventos (por ahora, están solo las Jornadas de Puertas Abiertas, estamos todavía de pruebas).

Algunos archivos del curso

Podéis descargarlos en http://cloud.educa.madrid.org/index.php/s/uyVClNsQhGT18W9.

Cargar más