Durante el verano de 2022, y con la mirada puesta en el Curso 2022/23, se ha procedido a la actualización de la distribución Ubuntu de los laboratorios y Aulas de la EPS.
Pasamos de la versión Ubuntu 20.04.3 LTS a Ubuntu 20.04.4 LTS.
El nuevo VDI contiene el siguiente listado de SW de la imagen de Ubuntu 20.04.4 LTS de las Aulas/Laboratorios de la EPS:
7z (7-Zip) 16.02 Adminer (4.8.1) angular CLI (12.0.5) apache-tomcat-9.0.53 apache2 (2.4.41) apache2-common (2.4.41) apio-0.7.6 para python 3.8 apt (2.0.9) Axis2-1.8.0 bash-5.0.17 bd-dss_user-dss bison-3.5.1 bower-1.8.12 C/C++ Tools (v1.10.8) (VSCode) Chromium Browser (85.0.4183.83) clang (10.0.0-4) CMake Tools v1.11.26 (VSCode) cmake-3.16.3 composer (2.2.4) containerd (1.5.9) ddd (3.3.12-5.2) ddd-doc (3.3.12-5.2) distcc (3.3.3) dlib-19.12 docker (1.5-2) docker-compose (1.25.0-1) docker-image-node10-node10-alpìne docker-image-nodered/node-red:latest docker-images-mysql-domingogallardo-playframework docker-swift (latest) docker.io (20.10.12-0) DotENV (1.0.1) Plugin para VSCode Driver Asus AC56 USB-Wifi rtl8812au (4.3.8.12175) Driver Asus AC56 USB-Wifi rtl8812au (v5.6.4.2) Eclipse C/C++ IDE for Linux Developers 2022-06-R Eclipse Java IDE for Linux Developers 2022-06-R Eclipse JEE IDE for Linux Developers 2022-06-R editores de texto Emacs26 (26.3+1) evince (3.36.10-0) exfat-fuse (1.3.0-1) exfat-utils (1.3.0-1) expo-cli (4.12.8) ffmpeg (4.2.7-0) Filezilla (3.46.3-1) Firefox (102.0) flex (2.6.4-6.2) fpga-alhambra-icezum g++ (9.4.0-1) g++-9-arm-linux-gnueabihf g++-9-multilib g++-9-multilib-arm-linux-gnueabihf g++-9-riscv64-linux-gnu gawk (5.0.1) gcc (9.4.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-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 gfortran (9.4.0-1) ghostscript (9.50) Gimp (2.10.18-1) git (2.25.1-1) Gnome (3.36) Google Chrome 103.0.5060.114-1 (64 bits) graphviz (2.42.2-3) grunt-cli-1.4.3 GTK2 (2.24.32) GTK3 (3.24.20) gtkwave (3.3.103) gulp-4.0.2 gulp-cli-2.3.0 intelliJ-IDEA-Ultimate (2022.1.3) jdk1.8.0 Update 333 (64 bits) jdk1.8.0 Update 333 APIdocs jhipster-0.0.2 jhipster-uml (2.0.3) jmeter-junit (2.13-4) joe (4.6-1) junit-3.8.2-9 junit4 (4.12-8) kate-19.12.3 Kernel 5.10.0-1058-oem-x86_64 konsole-19.12.3 libapache2-mod-php8.1 (8.1.8-1) libfl-dev (2.6.4-6.2) libfreetype-dev (2.10.1-2) libfreetype6 (2.10.1-2) libice-dev (1.0.10) libice6 (1.0.10-0) libjna-java (4.5.2-1) libjna-jni (4.5.2-1) libjna-platform-java (4.5.2-1) libmariadb-java (2.5.3-1) libmysqlclient-dev (8.0.29-0) libmysqlclient21 (8.0.29-0) 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 libopencv-core4.2 (4.2.0) libopenmpi-dev (4.0.3) libopenmpi3 (4.0.3-0) libpam0g-dev (1.3.1-5) libsfml-dev-2.5.1 libsm-dev (1.2.3-1) libsm6 (1.2.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) libxt-dev (1.1.5-1) libxt6 (1.1.5-1) Mars4_5 mongodb (3.6.9) mongodb-clients (3.6.9) mongodb-server (3.6.9) mongodb-server-core (3.6.9) mpich (3.3.2-2) (distrib focal) mpich-3.4.3 (compilado aparte para DSAP y CAP) mysql-client (8.0.29-0) mysql-server (8.0.29-0) mysql-server-core-8.0 (8.0.29-0) mysql-workbench-community (8.0.23-1) nemiver (0.9.6-1.2) Netbeans-14.0 node-v16.16.0 (nodejs-v16.16.0) nodejs nodemon (2.0.19) npm-7.18.1 ntfs-3g (2017.3.23AR.3-3) NVIDIA 340 (340.108) OpenCV (4.2.0) opencv-data (4.2.0) OpenJDK (11.0.15+10.0) openmpi-bin (4.0.3-0) openmpi-common (4.0.3-0) OpenSSH_8.2p1-4 openssl (1.1.1f-1) pa-2022-23_VM Paquetes parche CVE-2021-4034 polkit-1 (pwnkit.c) PCL-1.10.0 PHP Intelephense (1.8.2) Plugin para VSCode php-7.4-bcmath (7.4.30-3) php-7.4-bz2 (7.4.30-3) php-7.4-cli (7.4.30-3) php-7.4-common (7.4.30-3) php-7.4-curl (7.4.30-3) php-7.4-dev (7.4.30-3) php-7.4-gd (7.4.30-3) php-7.4-json (7.4.3-4) php-7.4-mbstring (7.4.30-3) php-7.4-mysql (7.4.30-3) php-7.4-opcache (7.4.30-3) php-7.4-readline (7.4.30-3) php-7.4-sqlite (7.4.30-3) php-7.4-xml (7.4.30-3) php-7.4-zip (7.4.30-3) php-7.4.3-4 (7.4.30-3) php8.1 (8.1.8-1) php8.1-bcmath (8.1.8-1) php8.1-curl (8.1.8-1) php8.1-gd (8.1.8-1) php8.1-mbstring (8.1.8-1) php8.1-mysql (8.1.8-1) php8.1-xml (8.1.8-1) pip3 (22.0.3) de python3.8 pip3 h5py (2.10.0) pip3 ipython (7.24.1) 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 (1.3.5) pip3 scikit-image (0.18.1) pip3 scikit-learn (0.22.2.post1) pip3 scipy (1.3.3) pip3 sklearn (0.0) pip3 tensorflow (2.4.1) pip3 tensorflow-estimator (2.4.0) pip3 theano (1.0.4) pip3 virtualenv (20.0.17-1) Postman (7.36.5) pvm (3.4.6-2) pvm-dev (3.4.6-2) python3 (3.8.10) python3-dev (3.8.10-0) python3-mysql.connector (8.0.15-2) python3-opencv (4.2.0) python3-pymysql (0.9.3-2) python3-rosbag (1.14.3) python3-rosboost-cfg (1.14.7) python3-rosclean (1.14.7) python3-roscpp-msg (1.14.3) python3-roscreate (1.14.7) python3-rosdep (0.22.1-1) python3-rosdep-modules (0.22.1-1) python3-rosdistro (0.9.0-100) python3-rosdistro-modules (0.9.0-100) python3-rosgraph (1.14.3) python3-rosgraph-msgs (1.11.2-10) python3-rosinstall (0.7.8-4) python3-rosinstall-generator (0.1.22-1) python3-roslaunch (1.14.3) python3-roslib (1.14.7) python3-roslz4 (1.14.3) python3-rosmake (1.14.7) python3-rosmaster (1.14.3) python3-rosmsg (1.14.3) python3-rosnode (1.14.3) python3-rosparam (1.14.3) python3-rospkg (1.4.0-100) python3-rospkg-modules (1.4.0-100) python3-rospy (1.14.3) python3-rosservice (1.14.3) python3-rostest (1.14.3) python3-rostopic (1.14.3) python3-rosunit (1.14.7) python3-roswtf (1.14.3) python3-rviz (1.13.7) python3-tf2-ros (0.6.6-1) python3.8 (3.8.10-0) 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) Qt Creator (4.11.0) qt5-default (5.12.8) qtbase5-dev (5.12.8) Racket-8.5 resolvconf (1.82) ROS Noetic (ros-noetic-desktop-full) (1.5.0-1) ros-noetic-effort-controllers (0.20.0-1) ros-noetic-pcl-conversions (1.7.4-1) ros-noetic-pcl-msgs (0.3.0-1) ros-noetic-pcl-ros (1.7.4-1) ros-noetic-perception-pcl (1.7.4-1) ros-noetic-pybind11-catkin (2.5.0-1) ros-noetic-pyquaternion (0.9.6-1) ros-noetic-python-qt-binding (0.4.4-1) ros-noetic-rospy-tutorials (0.10.2-1) ros-noetic-rosserial-python (0.9.2-1) ros-noetic-rviz (1.14.14-1) ros-noetic-rviz-python-tutorial (0.11.0-1) ros-pcl-msgs (0.2.0-10) rviz (1.13.7) samba (4.13.17) samba-common (4.13.17) samba-dev (4.13.17) samba-libs (4.13.17) scp smbclient (4.13.17) SMC 2.5 snapd (2.55.5+20.04) SoapUI-5.6.0 Spanish Language Pack for Visual Studio Code Spring Tool Suite (4.11.0) squashfs-tools (4.4-1) Sublime Text 3.2.2 (Build 3211) Sublime Text 4 (Build 4126) swi-prolog (7.6.4) Thonny(3.3.13)+pygame+thinter-math+Tensorflow thunderbird (91.11.0) Turtlebot 2 (tb2_ws) (ROS Noetic) Turtlebot 3 (ROS Noetic) Ubuntu 20.04.4 LTS x86_64 (64 bits) Ubuntu-Virtual-STR21 ufw (0.36) Unity (7.5.1) valgrind (3.15.0-1) veyon-service (4.6.0) vim (8.1.2269-1) VirtualBox (6.1.32_Ubuntu r149290)+Oracle Ext Pack Visual Studio Code - VSCode (1.69.1) vue/cli (4.5.13) winXP-SP3-Requisite_VM ws_rviz_new (1.14.9) X11 entorno gráfico (7.7+8) xorg (7.7+19) xorg-dev (7.7+19) xserver-xorg-dev (1.20.13-1) yarn-1.22.10 Yeoman (yo) 4.2.0
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 del VDI las hemos hecho con la versión 6.1.32 de VirtualBox, con las Guest Additions de esta versión instaladas en dicho VDI.
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.32-149290_Ubuntu_focal_amd64.deb
En un anfitrión Windows habrá que descargar el paquete correspondiente e instalarlo.
2. Descargar el VDI desde esta URL de OneDrive de Microsoft:
Veremos que nos aparece una página así:
¡¡Hay que pulsar el botón Descargar!!
NOTA: Ha habido que cambiar el alojamiento del fichero VDI de Google Drive a OneDrive pues Google establece una cuota límite de descarga de 15GB por usuario que impedía la descarga del fichero de la máquina virtual por superar dicho tamaño.
3. Crear la máquina virtual:
Botón Nueva
Nombre: VDIUbuntuEPS2022
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: VDIUbuntuEPS2022.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 -> 3 o 4 (dependiendo del nº de CPUs que tengamos)
- 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
- Pantalla -> Habilitar Aceleración 3D
- 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.32 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 VDIUbuntuEPS2022
5. Lanzamos la máquina virtual (botón Iniciar estando el foco sobre la misma).
Veremos que aparece muy brevemente un gestor de arranque GRUB con GNU/Linux con Kernel 5.14.0-1042-oem con muy poco 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 alumno y veremos algo parecido a esto en Modo Ventana:
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: alumno
La contraseña de root, también es, igualmente: alumno
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.
Recomendación
Se recomienda, sobre todo si el fichero VDI contuviera más adelante datos, código, programas, proyectos o documentación importante para el usuario (alumno o profesor), que se haga periódicamente una COPIA de SEGURIDAD del mismo.
Tanto en un anfitrión Windows como en un anfitrión GNU/Linux, es muy sencillo guardar una copia de seguridad de nuestro VDI para evitar que, si se nos corrompe o queda inutilizado, perdamos todo lo nuestro relevante que tuviéramos en él.
Caso de tener un incidente en el VDI actual, partiendo de la última copia de seguridad del mismo, podríamos restaurar nuestra máquina virtual al estado que tenía en ese momento y, aunque pudiera haber una pérdida parcial de archivos nuestros desde el momento de dicha copia hasta el momento actual, ésta no sería total.
Opcional
(Sólo 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.32 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 GNU/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/alumno/VBox_GAs_6.1.32 ./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 GNU/Linux estará en /usr/share/virtualbox
Guardamos, iniciamos el virtual y, cuando lleguemos a este punto, veremos el attach del CD de las Guest Additions realizado en la parte inferior izquierda:
Entonces, abrimos una terminal de texto como indicamos y lanzamos las Additions como en la imagen anterior.
Una vez instaladas, cerramos la terminal (salimos de root con el comando exit y otra vez salimos del usuario alumno 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.