Con la llegada del curso 2021/22 y el cambio de distribución de GNU/Linux en los laboratorios de la EPS, se hacía necesaria una versión del VDI completamente nueva, de imagen diferente y con los programas de las peticiones de SW de este curso completamente actualizados a octubre/noviembre de 2021.
El nuevo VDI contiene el siguiente listado de SW de la base de Ubuntu 20.04.3 LTS:
angular CLI (12.0.5) apache2 (2.4.41) apache2-common (2.4.41) apio-0.7.6 para python 3.8 apt (2.0.6) bash-5.0.17 bison++ (1.21.11) bower-1.8.12 Chromium Browser (85.0.4183.83) composer-1.10.1 containerd (1.5.2) ddd (3.3.12-5) ddd-doc (3.3.12-5) docker (1.5-2) docker-compose (1.25.0) docker-image-node10-node10-alpìne docker-image-nodered/node-red:latest docker-images-mysql-domingogallardo-playframework docker-swift (latest) docker.io (20.10.2) Driver Asus AC56 USB-Wifi rtl8812au (4.3.8.12175) Driver Asus AC56 USB-Wifi rtl8812au (v5.6.4.2) editores de texto Emacs26 (26.3) evince (3.36.7-0) exfat-fuse (1.3.0-1) exfat-utils (1.3.0-1) expo-cli (4.12.8) ffmpeg (4.2.4-1) Firefox (91.0.2) fpga-alhambra-icezum g++-9-arm-linux-gnueabihf g++-9-multilib g++-9-multilib-arm-linux-gnueabihf g++-9-riscv64-linux-gnu g++-9.3.0 gawk (5.0.1) gcc-9-arm-linux-gnueabihf gcc-9-arm-linux-gnueabihf-base gcc-9-cross-base gcc-9-multilib gcc-9-multilib-arm-linux-gnueabihf gcc-9-riscv64-linux-gnu gcc-9-riscv64-linux-gnu-base gcc-9.3.0 gcc-msp430 (4.6.3) gdb-9.2-0 gdm3 (3.36.3-0) geany-1.36-1 gedit-3.36.2-0 generator-jhipster-7.1.0 ghostscript (9.50) Gimp (2.10.18-1) git (2.25.1-1) Gnome (3.36) Google Chrome 94.0.4606.71-1 (64 bits) graphviz-2.42.2 grunt-cli-1.4.3 GTK2 (2.24.32) GTK3 (3.24.20) gulp-4.0.2 gulp-cli-2.3.0 intelliJ-IDEA-Ultimate (2021.1.3) jhipster-0.0.2 jhipster-uml (2.0.3) jmeter-junit (2.13-4) joe-4.6 junit-3.8.2-9 junit4 (4.12-8) kate-19.12.3 Kernel 5.10.0-1049-oem-x86_64 konsole-19.12.3 libjna-java (4.5.2) libjna-jni (4.5.2) libjna-platform-java (4.5.2) libmariadb-java (2.5.3-1) libmysqlclient-dev (8.0.26) libmysqlclient21 (8.0.26) libmysqlcppconn-dev (1.1.12-4) libmysqlcppconn7v5 (1.1.12-4) libntfs-3g883 (2017.3.23AR.3-3) libogre-1.9-dev (1.9.0) libogre-1.9.0v5 libopenmpi-dev (4.0.3) libopenmpi3 (4.0.3) libpam0g-dev (1.3.1) libssl-dev (1.1.1f) libssl1.1 (1.1.1f) libx11-6 (1.6.9-2) libx11-xcb-dev (1.6.9-2) mongodb (3.6.9) mongodb-clients (3.6.9) mongodb-server (3.6.9) mongodb-server-core (3.6.9) mysql-client-8.0.26 mysql-server-8.0.26 mysql-server-core-8.0 (8.0.26) mysql-workbench-community (8.0.23-1) nemiver-0.9.6 node-v16.10.0 (nodejs-v16.10.0) nodejs nodemon-2.0.7 npm-7.18.1 ntfs-3g (2017.3.23AR.3-3) NVIDIA 460 OpenJDK 11.0.11 openmpi-bin (4.0.3) openmpi-common (4.0.3) openssl (1.1.1f) php-7.4-bcmath (7.4.3-4) php-7.4-bz2 (7.4.3-4) php-7.4-cli (7.4.3-4) php-7.4-common (7.4.3-4) php-7.4-curl (7.4.3-4) php-7.4-dev (7.4.3-4) php-7.4-gd (7.4.3-4) php-7.4-json (7.4.3-4) php-7.4-mbstring (7.4.3-4) php-7.4-mysql (7.4.3-4) php-7.4-opcache (7.4.3-4) php-7.4-readline (7.4.3-4) php-7.4-sqlite (7.4.3-4) php-7.4-xml (7.4.3-4) php-7.4-zip (7.4.3-4) php-7.4.3-4 pip3 (21.1.2) de python3.8 pip3 h5py (3.1.0) pip3 jupyter (1.0.0) pip3 jupyterlab (3.0.16) pip3 Keras (2.2.4) pip3 matplotlib (3.1.2) pip3 numpy (1.19.5) pip3 opencv-contrib-python (4.5.1.48) pip3 pandas (0.25.3) pip3 scikit-image (0.18.1) pip3 scikit-learn (0.22.2.post1) pip3 scipy (1.3.3) pip3 sklearn(0.0) pip3 tensorflow-estimator (2.5.0) pip3 tensorflow-gpu (2.5.0) pip3 theano (1.0.4) pip3 virtualenv (20.0.17-1) Postman (7.36.5) python3 (3.8.2) python3-dev (3.8.2) python3-mysql.connector (8.0.15-2) python3-pymysql (0.9.3-2) python3-rviz (1.13.7) python3.8 (3.8.10) python3.8-dev (3.8.10) qemu-4.2-3 qemu-block-extra-4.2-3 qemu-efi-aarch64 (20191122) qemu-efi-arm (20191122) qemu-guest-agent-4.2-3 qemu-kvm (4.2-3) qemu-slof (20191209) qemu-system (4.2-3) qemu-system-arm (4.2-3) qemu-system-common (4.2-3) qemu-system-data (4.2-3) qemu-system-gui (4.2-3) qemu-system-mips (4.2-3) qemu-system-misc (4.2-3) qemu-system-ppc (4.2-3) qemu-system-s390x (4.2-3) qemu-system-sparc (4.2-3) qemu-system-x86 (4.2-3) qemu-system-x86-microvm (4.2-3) qemu-user (4.2-3) qemu-user-static (4.2-3) qemu-utils (4.2-3) qt5-default (5.12.8) qt5-qmake (5.12.8) qtbase5-dev (5.12.8) resolvconf (1.82) ROS Noetic (ros-noetic-desktop-full) (1.5.0-1) ros-noetic-effort-controllers ros-noetic-rviz (1.14.9) rviz (1.13.7) snapd-2.51.1+20.04 squashfs-tools (4.4-1) Sublime Text 3.2.2 (Build 3211) Sublime Text 4 (Build 4107) swi-prolog (7.6.4) thunderbird (78.0.3) Turtlebot 2 (tb2_ws) (ROS Noetic) Turtlebot 3 (ROS Noetic) Ubuntu 20.04 LTS x86_64 (64 bits) Unity (7.5.0) valgrind-3.15.0 veyon-service vim (8.1.2269) VirtualBox (6.1.26_Ubuntu r145957)+Oracle Ext Pack Visual Studio Code - VSCode (1.60.2) vue/cli (4.5.13) X11 entorno gráfico (7.7+8) xorg (7.7+19) xorg-dev (7.7+19) xserver-xorg-dev (1.20.11) yarn-1.22.10 Yeoman (yo) 4.2.0
Además, como programas adicionales, contiene los siguientes:
Apache Tomcat (9.0.53) Axis2 (1.8.0) Eclipse C++ (2021-09-R) Eclipse Java (2021-09-R) Eclipse JEE (2021-09-R) JDK 1.8.0 Update 291 JDK 1.8.0 Update 291 APIdocs Netbeans (12.0) SoapUI (5.6.0) SolR (8.5.2) STS (4.11.0) Thonny (3.3.11)
Poner en marcha el VDI es muy sencillo y requiere de los siguientes pasos:
1. Instalar/actualizar la plataforma VirtualBox descargando de https://www.virtualbox.org/
Las pruebas las hemos hecho con varias versiones: 6.1.12, 6.1.28 y 6.1.30.
Finalmente, hemos dejado la 6.1.30 y hemos instalado en el VDI las VirtualBox Guest Additions de dicha versión.
En un anfitrión Linux Ubuntu 20.04, por ejemplo, se puede instalar la plataforma, una vez descargado el paquete .deb, así:
dpkg -i virtualbox-6.1_6.1.30-148432_Ubuntu_focal_amd64.deb
2. Descargar el VDI desde esta URL de Google Drive:
https://drive.google.com/uc?id=1fzJeCRRo1ZvnFVYlZk0iM57XCtZzjBWi&export=download
Es aconsejable estar validado en el navegador con el usuario de GCloud (gcloud.ua.es) para que no haya problemas para la descarga. En caso de no disponer de cuenta GCloud (@gcloud.ua.es), puedes crearte una de la UA con espacio ilimitado siguiendo las instrucciones indicadas en:
https://si.ua.es/es/manuales/uacloud/uacloudse/servicios-externos.html.
3. Crear la máquina virtual:
-
- Botón Nueva
- Nombre: UbuntuVirtualEPS2021
- Sistema Operativo: Ubuntu (64 bits)
- Memoria: 4096 MB (mínimo 2048 MB).
- El disco duro que utilizaremos ya estará creado y almacenado en nuestro equipo pues previamente lo habremos descargado y tendrá como nombre: Ubuntu-VDI-EPS-20_04_3-2021.vdi
4. Configuramos la máquina virtual (Menú Configuración):
-
- Sistema -> Placa base -> Memoria 4096 MB
- Sistema -> Orden de arranque -> Disco Duro (primera opción y marcar sólo ésta)
- Sistema -> Chipset -> PIIX3
- Sistema -> Dispositivo apuntador -> Tableta USB
- Sistema -> Características extendidas -> Marcar Habilitar I/O APIC
- Sistema -> Características extendidas -> Marcar Reloj hardware en tiempo UTC
-
- Sistema -> Procesador -> 4
- Sistema Límite de Ejecución -> 100%
-
- Sistema -> Aceleración -> Interfaz de paravirtualización -> Predeterminado
- Sistema -> Aceleración -> Hardware de virtualización -> Marcar Habilitar Paginación Anidada.
-
- Pantalla -> Memoria de vídeo 128 MB
- Pantalla -> Controlador gráfico -> VMSVGA
-
- Almacenamiento -> Controlador IDE -> (tendremos un CD vacío)
Cuando haya que instalar las GuestAdditions (porque la versión del estudiante no sea la misma que la que lleva de Additions el VDI), habrá que añadir un CD adicional y seleccionar el archivo VBoxGuestAdditions.iso
-
- Almacenamiento -> Controlador SATA -> (aparecerá el VDI descargado ya con el Attach hecho)
Como comentábamos, si la versión de la plataforma es la 6.1.30 y es igual a la del alumno, no habrá que añadir temporalmente la ISO de las Additions ni instalarlas posteriormente cuando arranquemos la máquina virtual.
-
- Audio -> Dejamos todo por defecto como esté
- Red -> Dejamos por defecto
- Puertos serie -> Dejamos por defecto
- USB -> Habilitar controlador USB 3.0 y crear un filtro vacío si queremos que el virtual pueda acceder a memorias externas USB.
- Carpetas compartidas -> Dejamos por defecto
- Interfaz de usuario -> Dejamos por defecto
Ya queda configurada la nueva máquina virtual UbuntuVirtualEPS2021
5. Lanzamos la máquina virtual (botón Iniciar estando el foco sobre la misma).
Veremos que aparece muy brevemente un gestor de arranque LILO trivial con GNU/Linux sin ningún tiempo de espera y que empieza a cargar Ubuntu 20.04 LTS con una animación.
Dependiendo del tipo de disco duro, si es SSD o si es mecánico, tardará entre 40 segundos y un par de minutos en arrancar.
Una vez arranque, cargará directamente el Escritorio con Autologin al usuario alu y veremos algo parecido a esto en Modo Ventana:
Con Host + F (siendo Host la tecla Ctrl Derecha), podemos pasar a Pantalla Completa y se verá, en un monitor panorámico de 22″ y con capacidad para mostrar en una resolución de 1920×1080, de esta forma:
El usuario podrá, al abrir una terminal de texto dentro del entorno gráfico, pasar a ser root, así:
sudo su
No pedirá contraseña, pero si la pidiera, la contraseña es también: alu
La contraseña de root, también es, igualmente: alu
La seguridad en cuanto a control de accesos y usuarios del sistema es mínima porque el VDI se enfoca a un uso personal en casa o en el portátil del alumno para hacer sus prácticas. Está todo configurado para ello.
Si el alumno hace mal algo, borra o inutiliza el sistema parcial o totalmente, bien para arrancar, bien para ejecutar cualquier programa o, por apagarla mal, corrompe el VDI, deberá descargárselo de nuevo.
Opcional
Si la versión de la plataforma VirtualBox del estudiante no fuera la misma que incluimos en las Guest Additions del VDI).
Por defecto, hemos incluido las Additions de la versión 6.1.30 de VirtualBox.
Para instalar otra versión de VirtualBox Guest Additions distinta de la ya instalada, tenemos dos opciones:
-
- Máquina virtual ya encendida y funcionando:
Menú Dispositivos -> Insertar imagen de CD de las “Guest Additions”…
Esto, insertará en la unidad de CD del equipo, estemos en Windows o en Ubuntu como anfitrión, el CD de las Additions.
En anfitriones Windows, nos dará mediante un menú de instalación amigable, la posibilidad de instalar las Additions de nuestra versión de VirtualBox instalada. En el caso de que hubiera otra versión ya antes, ofrecerá desinstalarla previamente.
En anfitriones Linux, nos dará también la oportunidad de Ejecutar desde un menú amigable aunque, particularmente, prefiero como root, lanzar el script VBoxLinuxAdditions.run así:
cd /media/alu/VBox_GAs_6.1.30 ./VBoxLinuxAdditions.run
(y ejecutar la instalación de las Guest Additions)
-
- Máquina virtual apagada:
Situamos el foco sobre ella, Menú Configuración -> Almacenamiento -> Controlador IDE -> Añadir CD y seleccionar el archivo VBoxGuestAdditions.iso
Dependiendo de si el anfitrión es Windows 10 o Ubuntu, el archivo estará en distintas ubicaciones. En Windows 10 estará en el directorio de instalación de VirtualBox y en anfitriones Linux estará en /usr/share/virtualbox
Guardamos, iniciamos el virtual y, cuando lleguemos a este punto, veremos el attach del CD de las Additions realizado en la parte inferior izquierda:
Entonces, abrimos una terminal de texto como indicamos y lanzamos las Additions.
Una vez instaladas, cerramos la terminal (salimos de root con el comando exit y otra vez salimos de alu con el comando exit).
Entonces, nos colocamos con el ratón sobre el CD de la parte inferior izquierda, y le damos a Expulsar (para que no se nos quede eternamente metido el CD de las Guest Additions en la máquina virtual).
Tomemos el método que tomemos, ya tendremos instaladas en nuestro VDI las Guest Additions de la versión de nuestra plataforma anfitriona VirtualBox.