2.1 Sistemas operativos
Como todo ordenador, la Raspberry Pi necesita de un sistema operativo para funcionar. Es bastante probable que si estás leyendo estos materiales desde un ordenador de sobremesa o portátil estés utilizando un buen sistema operativo como podría ser Vitalinux o cualquier otro derivado Linux como Ubuntu, Debian o Fedora. También pudiera ser estuvieses utilizando otro tipo de sistemas operativos propietarios como Windows o MacOs. Si estás utilizando una tableta o smartphone es bastante probable que esté utilizando Android o iOS. Todos ellos son sistemas operativos, pero ¿qué es un sistema operativo? sin complicarnos mucho podríamos decir que un sistema operativo es el software que se ubica entre el hardware y las aplicaciones que tiene por encima. Si quieres ampliar la información sobre qué son los sistemas operativos te dejo este enlace a materiales que preparé hace años para mi alumnado de FP básica.
Para trabajar con la Raspberry Pi nosotros/as vamos a trabajar con Raspberry Pi OS (antes llamado raspbian, seguro que en estos apuntes alguna vez me refiero al mismo de la manera antigua) que es un sistema operativo Linux que deriva a Debian optimizado para la Raspberry Pi por lo que si estás acostumbrado/a a trabajar con Vitalinux, Ubuntu o Debian no vas a notar ningún cambio.
Imagen obtenida de https://pistachitos.com/guias/comenzando-con-raspbian/
Además de este sistema operativo en la Raspberry Pi puedes instalar otros como:
- Raspberry Pi OS (Raspbian)
- Windows 10 IoT Cores
- LibreELEC
- RetroPie
- OSMC
- Ubuntu Desktop
- Ubuntu Core
- Ubuntu Server
- RISC OS
- Kali Linux
- Arch Linux ARM
- FreeNAS
- CentOS
- Fedora
- SUSE Linux Enterprise Server
- LineageOS
- ...
Por si tienes curiosidad sobre como instalar Windows 10 IoT (Internet de las cosas) te dejo un par de enlaces con información. El 1º en castellano sobre W10 y el 2º en inglés sobre W11: https://www.ionos.es/digitalguide/servidores/know-how/sistemas-operativos-para-raspberry-pi/ y https://www.tomshardware.com/how-to/install-windows-11-raspberry-pi
Si en alguna ocasión has instalado algún sistema operativo en algún ordenador es bastante probable que hayas hecho uso de algún CD o DVD o de algún USB que hayas establecido como 1er elemento de arranque y, a partir de ahí, hayas seguido las instrucciones. En Raspberry Pi esta instalación la haremos haciendo uso de imágenes. Sigue leyendo para saber qué son y cómo las usaremos.
2.1.1 Imágenes
Si pensamos en una imagen quizás nos venga a la cabeza la representación gráfica de algo pero en este caso cuando utilizamos el término imagen lo que queremos indicar es la copia exacta de un disco. Esto nos permite utilizar una imagen existente de un sistema operativo y llevarla a nuestra Raspberry Pi de modo que será funcional. En este curso, en la mayoría de herramientas que utilicemos haremos uso de un sistema operativo y sobre él instalaremos diferentes servicios pero en alguna de las posibilidades que veamos también usaremos directamente una imagen que nos traerá ya todo configurado y listo para utilizar. Es el caso que veremos en el capítulo 3.4 BOBcera. Videoconsola retro.
Si queremos grabar una imagen en nuestra tarjeta SD únicamente debemos seguir los pasos que nos indican en este vídeo:
En resumen:
- De la web https://www.raspberrypi.com/software/ descarga el programa que corresponde a tu sistema operativo
- Instala la aplicación "Raspberry Pi Imager" que acabas de descargar
- Introduce la tarjeta micro SD en un lector de tu ordenador
- Ejecuta la aplicación
- Elije qué versión de sistema operativo quieres instalar. Por ejemplo la versión de escritorio (Desktop) si no estás acostumbrado/a a trabajar con comandos
- Deberías preconfigurar algunas cuestiones como:
- nombre
- SSH, para conectarte posteriormente de modo remoto a la Raspberry Pi sin necesidad de conectarle teclado, ratón y monitor
- red WIFI
- locale (idioma)
- Selecciona dónde está la tarjeta SD
- Graba la imagen en la microSD
- Cuando termine expúlsala del sistema operativo dónde hayas estado trabajado
- Llévate la microSD a la Raspberry Pi y enciéndela. Debería arrancar el sistema operativo que has elegido.
2.1.2 Control de versiones. Git. Github.
En este apartado realmente os quiero hablar de Github pero para hablaros de GitHub os he de hablar de Git y, a su vez, para hablaros de Git os tengo que hablar sobre el control de versiones así que vamos a ver, en el orden lógico, unas pinceladas de estos elementos.
Control de versiones: El control de versiones nos permite ver los diferentes cambios que un documento ha sufrido con el tiempo viendo quién ha hecho qué cambio, cuándo lo ha hecho y por qué lo ha hecho. Para ampliar la información leer aquí.
Git: Es un software de control de versiones muy potente y muy sencillo de utilizar
Imagen obtenida de: https://commons.wikimedia.org/wiki/File:Git-logo.svg?uselang=es
Github: Es una plataforma web que actúa como repositorio de proyectos que utilizan en control de versiones git. De esta plataforma vamos a descargar varios de los proyectos que pondremos en marcha en los capítulos 3 y 4 y me parece adecuado que conozcas algo mas de la misma que limitarme a decirte mas adelante que ejecutes tal o cual comando que tiene como factor común una URL de github. Como curiosidad te diré que en github puedes encontrar parte del código que se desarrolla en CATEDU. Su respositorio es https://github.com/catedu
Imagen obtenida de https://github.com/logos
2.1.3 Docker. Docker-compose
Al igual que ocurría en el apartado anterior con github en el capítulo 3 y 4 haremos uso de docker y docker-compose y también me parece adecuado contarte qué son y cuales son ventajas en vez de que te limites a copias y pegar comandos.
Quizás hayas oído o utilizado en alguna ocasión máquinas virtuales con Virtual Box, vmware u otras herramientas que permiten su uso y gestión. De ser así habrás visto que sobre tu sistema operativo has creado un hardware virtual y en ese hardware virtual has instalado otro sistema operativo y los distintos programas que te ha interesado. A ese conjunto es a lo que se llama máquina virtual. Si en esa máquina, por ejemplo, borras todo no afecta a tu sistema operativo anfitrión, lo cual te permite una serie de ventajas como probar determinados sistemas y/o programas sin poner en riesgo tu equipo anfitrión. De igual modo, si tienes un determinado programa que tienes que utilizar y solo funciona en un sistema operativo que no es el que utilizas puedes crear una máquina virtual con ese programa y ejecutarlo. Las ventajas parecen claras. Ahora vamos con la gran desventaja: son muy pesadas, requieren de muchos recursos. Por ello surgen los contenedores y su máximo exponente es Docker.
Imagen obtenida de https://www.docker.com/company/newsroom/media-resources/
Docker y Docker-compose van a permitirnos levantar y tirar contenedores (dónde habrá distintos servicios) de un modo muy sencillo. Esto nos va a permitir que en nuestra Raspberry Pi podamos instalar diferentes utilidades sin que los requerimientos de unas afecten a los de otras. Son herramientas sencillas de utilizar y, en muchas ocasiones, copiaremos textos directamente de github que nos permitirán poner todo en marcha. De todos modos, para evitar el uso continuado del terminal que tanto nos gusta a los/as informáticos/as y tan poco al resto de usuarios/as en el capítulo 3 la primera herramienta que veremos será Portainer la cual nos permitirá gestionar los contenedores de un modo gráfico.
Imagen obtenida de https://github.com/docker/compose
Vamos a ver los comandos que deberemos ejecutar en la terminar de Raspberry Pi OS para instalar ambos servicios. Necesitarás conexión a internet en tu Raspberry Pi.
Si no quieres instalar docker y docker-compose del modo que te cuento a continuación echa un vistazo al capítulo 3.3 Linux Media Delivery System (LMDS). Centro de descargas pues en el mismo, aunque harás uso del terminal, podrás instalar docker y docker-compose con un asistente.
Empecemos por instalar docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ${USER}
sudo su - ${USER}
docker version
Tras ejecutar los comandos anteriores verás algo similar a:
Elaboración propia
Ahora terminemos instalando docker-compose:
sudo apt-get install libffi-dev libssl-dev
sudo apt install python3-dev
sudo apt-get install -y python3 python3-pip
sudo pip3 install docker-compose
docker-compose version
Tras ejecutar el último comando verás algo similar a la siguiente imagen:
Elaboración propia