Mi Blog

Image

Scratch 3 en Fedora

Scratch 3 tiene un editor en línea que es casi dispositivo agnóstico, ya que solo depende del navegador para ejecutarse. Además de la versión en línea, existen implementaciones offline para Windows, Mac OS, ChromeOS y Android; esto deja a los niños que utilizan alguna distro Linux como sistema operativo principal en cierta desventaja.

Previamente Derek estuvo utilizando Scratux. A pesar que hace ya casi tres años no se actualiza, funciona perfecto. El problema con Scratux es que empaqueta una versión de scratch vulnerable a ataques XSS y esto nos volvería potencialmente vulnerables a un archivo de scratch 3 cargado con código malicioso.

Para suerte nuestra, alguien hizo una versión empaquetada con electron partiendo del instalador de Windows, el código está disponible en este gist, ejecutando específicamente el archivo create_rpm.sh. Es básicamente un script bash, pero podemos realizar los pasos sin necesidad del script y llegaremos al mismo resultado: un paquete rpm listo para instalar.

#!/bin/sh

######## install electron
cd ~
#npm install electron@4.1.4 --save-dev
npm install electron --save-dev


######## extract scratch-desktop
rm -rf /tmp/scratch-desktop
mkdir /tmp/scratch-desktop
wget --max-redirect 5 -c -O /tmp/scratch-desktop.exe 'https://downloads.scratch.mit.edu/desktop/Scratch%20Setup.exe'
7za x -aoa -y /tmp/scratch-desktop.exe -o/tmp/scratch-desktop


######## create electron app
cp -rf ~/node_modules/electron/dist/* /tmp/scratch-desktop/
ln -fsr /tmp/scratch-desktop/electron /tmp/scratch-desktop/scratch-desktop


######## fix permissions
chmod 755 /tmp/scratch-desktop/locales
chmod 755 /tmp/scratch-desktop/swiftshader
chmod 755 /tmp/scratch-desktop/resources
chmod 755 /tmp/scratch-desktop/resources/static
chmod 755 /tmp/scratch-desktop/resources/static/assets


######## get application icon
wget -c -O /tmp/scratch-desktop/resources/Icon.png 'https://scratch.mit.edu/images/download/icon.png'


######## create rpm package
sudo dnf install rpm-build
cd ~
npm install electron-installer-redhat
wget -c -O /tmp/config-rpm.json 'https://gist.githubusercontent.com/lyshie/0c49393076b8b375ca1bd98c28f95fb0/raw/223cc112d99c3bdc1829fc25b19c260856134a82/config-rpm.json'
~/node_modules/.bin/electron-installer-redhat --config /tmp/config-rpm.json
Lenguaje del código: Bash (bash)

Este contenedor lo que hace es empaquetar un sitio web con todos sus componentes y mostrarlo como si fuera una aplicación nativa del sistema en que se ejecuta.

Una vez creado el paquete, lo instalamos. Si usamos el script, el paquete se creará dentro del directorio /tmp, de manera que con dnf se instala.

dnf install /tmp/scratch-desktop-3.29.1-1.x86_64.rpmLenguaje del código: Bash (bash)

Una vez completada la instalación, estaremos listos para utilizar Scratch en Fedora.

Scratch 3 en Fedora

Si deseamos ahorrar todo este proceso de generar el paquete, he subido una versión ya precompilada lista para instalar y usar.

  • Publicado por: Moisés Serrano Samudio
  • Fecha: 9 de noviembre de 2022
Compartir: