Si has llegado hasta aquí, probablemente te ha pasado como a mi y necesitas instalar Cisco Packet Tracer en Fedora, pero te has topado con que solamente hay versión para Windows, Mac y Debian (Ubuntu y similares). No te preocupes ¡Estamos en GNU/Linux! Así que hay solución, y en este artículo voy a explicarte paso a paso cómo lo hice funcionar en mi ordenador de sobremesa con Fedora.
Introducción al problema
Recientemente, me inscribí en el curso de «Introducción al Internet de las Cosas y Transformación Digital» de Cisco Networking Academy, un programa formativo fantástico que explora sensores, protocolos como MQTT, integración con microcontroladores y aplicaciones reales como monitoreo ambiental o automatización inteligente, temas que me interesan bastante para algunos proyectos personales.
Para las simulaciones de redes de la parte práctica del curso, Cisco recomienda su software propio Packet Tracer, que permite modelar conexiones IoT con routers y switches virtuales. Es gratis para alumnos de su plataforma, así que hasta ahí bien, peeeero solamente está disponible para Windows, Mac y Debian. En mi ordenador de sobremesa, que tiene sus añitos, uso Fedora con entorno de escritorio «Mate», que es muy ligero y se parece mucho al primer Gnome, cosa que me gusta y me resulta cómodo, quizás por pura nostalgia.
Cómo abordar la situación desde este punto de partida
La cosa es que, con un ordenador de pocos recursos, instalar una maquina virtual para correr el programa no se me pasó por la cabeza como una opción viable, así que me adentré en la aventura de hacer que funcione en mi sistema «tal cual». Tampoco vamos a usar «Wine» para usar la versión de Windows, podría funcionar… pero ¿Qué necesidad tienes de «emular» Windows cuando el programa puede funcionar nativamente en GNU/Linux? Si quieres descubrir cómo hacerlo sin nada de esto, sigue leyendo.
Eso si, simplemente ten en cuenta que para iniciar el programa necesitas una cuenta de alumno de la plataforma de Cisco, y que para este tutorial vamos a trabajar con la versión 8.2.2, concretamente el fichero «Packet_Tracer822_amd64_signed.deb» (lo más parecido a «versión Linux» que vas a encontrar, pero no te preocupes porque tiene todo lo necesario). Imagino que ya lo tienes, pero si no, el archivo se encuentra en https://www.netacad.com/resources/lab-downloads?courseLang=es-XL . En otras palabras, partiendo de la versión para Debian/Ubuntu vamos a hacer que funcione en Fedora, a pesar de ser un entorno «.rpm» en lugar de «.deb». Voy a intentar seguir un lenguaje sencillo a lo largo del contenido para que sea fácil de seguir.
No vamos a usar «Alien» para ejecutar el .deb en Fedora porque probé esa opción en mi sistema y me dio problemas. También es una posiblidad que puedes investigar, pero en este artículo hablo de la solución que finalmente me funcionó, directamente y sin rodeos innecesarios para ahorrarte el tiempo que me llevó a mi dar con esto. (También para tenerlo yo a mano en el futuro).
Para máquinas virtuales (que no es el caso de este artículo) yo me iría por libvirt, que tira directamente del kernel para virtualizar y es más eficiente que VirtualBox o VMware, pero no vamos entrar en eso en este contenido.
Por otro lado, vamos a asumir que el archivo está en la carpeta «Descargas» en /home/tuusuario/Descargas y que no te importa «jugar» dentro de la carpeta para hacer que funcione. No te preocupes que dejaremos todo limpio. Recuerda que las mayúsculas son importantes en Linux, y que la línea de comandos las distingue. Sobra decir que si digo «Linux» me refiero a «GNU/Linux» pero es para abreviar.
Asumo también que tienes acceso de administrador para instalar programas, si no… va a estar complicado que este tutorial te funcione. Ahí si deberías ir directamente a una máquina virtual que puedas controlar.
Manos a la obra
Bien, vamos a empezar. Como con cualquier tutorial lo primero es actualizar paquetes e instalar dependencias. Lo primero que hacemos es ejecutar:
sudo dnf update -y
Paso 1: Instalación de dependencias
Para instalar las dependencias hacemos esto:
sudo dnf install -y binutils qt5-qtbase qt5-qtmultimedia qt5-qtwebengine qt5-qtnetworkauth qt5-qtwebsockets qt5-qtwebchannel qt5-qtscript qt5-qtlocation qt5-qtsvg qt5-qtspeech libpng15 libX11 libXrandr libXrender libXtst nss
En ambos comandos te he añadido «-y» para agilizar a la hora de que copies y pegues en la terminal, o por si quieres meterlo en un script para ir más rápido, esto lo que hace es que no te pide la típica confirmación para instalar.
Si a la hora de instalar las dependencias falla algo, puedes usar un comando como «dnf search qt5-» para encontrar los paquetes, por si algo ha cambiado de nombre o trabajas con repositorios diferentes.
Paso 2: Ir a la carpeta correcta
Lo siguiente será ir a la carpeta donde tenemos el archivo descargado, en este tutorial se llama «Descargas» y está dentro de la home del usuario activo. Por lo tanto, para acceder desde terminal haremos:
cd ~/Descargas
Paso 3: Crear el entorno de trabajo y extraer el contenido del paquete .deb
En este paso vamos a ejecutar una serie de comandos para crear una carpeta temporal donde vamos a extraer lo que nos interesa del archivo .deb para aprovecharlo en Fedora. Ejecutaremos los siguientes comandos:
mkdir temp_pt
(esto genera una carpeta temporal que luego eliminaremos.)
cd temp_pt
nos metemos en la carpeta
ar x ../Packet_Tracer822_amd64_signed.deb
Aquí está el truco, usamos la herramienta ar (archiver) para extraer el archivo .deb, que es un contenedor binario simple. Descomprimiendo sus componentes principales: debian-binary (versión), control.tar.xz (metadatos como dependencias y scripts) y data.tar.xz (archivos del programa). Esto «desenvuelve» el paquete sin instalarlo. Nota que llamamos al archivo que está en el directorio (carpeta) superior, es decir, en «Descargas» (y de ahí los dos puntos en la ruta). Aquí tienes que poner el nombre exacto del archivo descargado de la web de Cisco, que en tu caso puede ser una versión diferente.
mkdir -p control data
Creamos dos directorios vacíos (control y data) si no existen (-p evita errores si ya están). Sirven para organizar la extracción separada de metadatos y datos.
tar -xf control.tar.xz -C control
Usamos tar para extraer (x) el archivo control.tar.xz (sin comprimir con -f), colocándolo en el directorio control (-C). Esto libera los scripts de instalación y la información de dependencias.
tar -xf data.tar.xz -C data
Similar al anterior, pero extrae data.tar.xz al directorio data, liberando los archivos binarios y recursos del programa (como /opt/pt, que veremos en un momento)
OJO: No confundas «ar» con «tar». ar es un archivador estático para bibliotecas y paquetes binarios (como .deb) y tar, en cambio, es un archivador versátil para crear/extraer archivos con soporte para compresión (gzip, xz), jerarquías de directorios y multi-volúmenes. Usamos «ar» para abrir el paquete de fuera, el .deb, y «tar» para los archivos comprimidos que vienen dentro.
Paso 4: Copiar los archivos en el sistema («instalar»)
Ahora vamos a copiar en nuestro sistema ciertos directorios (carpetas) que hemos descomprimido en el paso anterior. Puedes verlo como una forma «manual» de instalarlo. Al fin y al cabo un ejecutable hace esto mismo, descomprime y copia archivos en el sistema. Para este paso asumimos que te encuentras dentro de la carpeta temporal que creamos en el paso anterior. Los comandos son muy básicos, simplemente para movernos por el directorio y copiar carpetas de forma recursiva (con todo lo de dentro), así que no voy a entrar en mucha explicación en este apartado.
cd data/opt
sudo cp -r pt /opt/
cd ../..
cd data/usr
sudo cp -r share/applications /usr/share/
cd ../..
sudo cp -r share/icons /usr/share/
Paso 5: Crear enlaces y post-instalación
Los siguientes comandos nos van a permitir dejar todo funcionando y crear un enlace directo e el menú de aplicaciones de Mate para entrar fácilmente al programa.
cd ../..
cd control
sudo bash postinst
sudo ln -sf /opt/pt/bin/PacketTracer /usr/local/bin/packettracer
Con esto te debería aparecer en «otros» dentro del menú y ya lo puedes abrir a ver si funciona. Es posible personalizar como aparece en el menú con algo como lo que te voy a poner a continuación, pero yo no lo hice, porque no me hizo falta, con tenerlo en «otros» me vale. Si tú lo quieres personalizar, debes hacer algo así:
sudo tee /usr/share/applications/cisco-pt.desktop > /dev/null << EOF
[Desktop Entry]
Name=Cisco Packet Tracer
Comment=Simulador de Redes para IoT
Exec=/usr/local/bin/packettracer --no-sandbox
Icon=ptapp
Terminal=false
Type=Application
Categories=Education;Network;Electronics;
MimeType=application/x-pkt;
EOF
Para que surta efecto, a lo mejor debes refrescar el menú con:
sudo update-desktop-database /usr/share/applications/
mate-panel --replace &
Paso 6: Elimina la carpeta temporal
Hay que ser limpios y organizados. Si ya comprobaste en el paso anterior que el programa abre (funciona), es hora de borrar la carpeta temporal que creamos y dejar todo limpio. Lo puedes hacer desde entorno gráfico, pero como llevamos desde Terminal todo el artículo, vamos a seguir «modo Matrix» y hacerlo asi:
cd ~/Descargas
rm -rf temp_pt
Paso 7: Empieza a usar el programa
Ahora ya tienes el programa funcionando perfectamente (si todo te ha salido como a mi). Solamente tienes que iniciar sesión con tus credenciales y empezar a usarlo.
Algunas consideraciones
Cisco Packet Tracer es un programa impresionante que simula de forma muy detallada una red de manera que puedes interactuar con ella y probar cosas como si estuvieras tocando los dispositivos de verdad. El potencial pedagógico y práctico es inmenso y me alegro de haber hecho que funcionara en Fedora sin «capas raras» (como Wine o máquinas virtuales) que consuman recursos. Sin duda va a ser una herramienta interesante que aplicar en la formación que estoy cursando. Para lo que es, está perfecto.
Echo en falta que solamente trae dispositivos de la marca Cisco. Tiene sentido, porque el programa está hecho por ellos, y simula de forma muy detallada sus routers, switches y demás. Sin embargo, para un entorno «real» en que queremos un modelo interactivo que refleje una red «de verdad», con aparatos de distintos fabricantes, probablemente no termine de ser apropiado, y habría que mirar alternativas. Estoy investigando algunos programas de software libre para este propósito. Si quieres que haga un artículo sobre el tema, házmelo saber en los comentarios
Si no quieres perderte próximos contenidos como este, puedes suscribirte GRATIS en el formulario que encontrarás en la parte baja de la página. Así recibirás un resumen semanal de lo que vaya publicando. Espero que este artículo te haya servido para dejar funcionando este fantástico programa Cisco Packet Tracer en Fedora ¡Hasta pronto!