This comprehensive Bash script provides a complete solution for managing GNS3 installations on Fedora systems. GNS3 is a powerful network simulation tool that allows users to create complex network topologies using both virtual and physical devices. 🖥️🌐
- 🎯 Interactive Menu System: Choose between install, uninstall, clean install, or exit
- 🔄 Complete Installation: Installs GNS3 and all necessary dependencies automatically
- 🗑️ Smart Uninstallation: Safely removes GNS3 with optional dependency cleanup
- 🔧 Clean Install Option: Uninstall + reinstall in one command
- 🔒 Enhanced Security: Enforces proper sudo usage (no root direct access, no regular user)
- 🖥️ Desktop Integration: Creates application shortcut with icon
- 🐳 Docker Support: Full Docker installation and configuration
- 👤 User-Aware: Displays personalized welcome messages and handles user permissions correctly
- 🔄 Reboot Management: Interactive reboot prompts after installation/uninstallation
- Supported Operating Systems:
Versions | Gnome | KDE Plasma | Status |
---|---|---|---|
Fedora 42 | ✅ | ❓ | Tested |
Fedora 41 | ✅ | ❓ | Tested |
Fedora 40 | ✅ | ❓ | Compatible |
- Internet access to download necessary packages
- User account with sudo privileges (script will verify this automatically)
- DO NOT run as root directly - the script enforces sudo usage for security
# Clone the repository
git clone https://github.com/fr-AlphaP/GNS3-Installer-Fedora-4X.git
cd GNS3-Installer-Fedora-4X
chmod +x GNS3_installer.sh
sudo ./GNS3_installer.sh
sudo
by a regular user. It will refuse to run if:
- Executed without sudo (as regular user)
- Executed directly as root user
The interactive menu will present you with:
- [I] Install GNS3: Fresh installation of GNS3 and dependencies
- [C] Clean Install: Uninstall existing GNS3 then reinstall (recommended for updates)
- [U] Uninstall GNS3: Remove GNS3 with optional dependency cleanup
- [E] Exit: Exit the script
- Development tools:
git
,gcc
,cmake
,flex
,bison
- Python ecosystem:
python3
,python3-devel
,python3-pip
,python3-PyQt5
,python3-zmq
- System libraries:
elfutils-libelf-devel
,libuuid-devel
,libpcap-devel
- Network tools:
wireshark
,qemu-kvm
,xterm
,telnet
,busybox
,ubridge
- GNS3 GUI: Graphical interface (cloned from official repository)
- GNS3 Server: Backend server component
- Dynamips: Cisco router emulator (compiled from source)
- Complete Docker CE installation
- Docker Compose and BuildX plugins
- Automatic service enablement
- User permission configuration
- Application shortcut in system menu
- GNS3 icon download and setup
- Desktop database updates
The uninstall option provides granular control:
- ✅ Always Removed: GNS3 packages, source files, desktop shortcuts, user group memberships
- ❓ Optional Removal (with user confirmation):
- Core dependencies (wireshark, qemu-kvm, etc.) - NOT RECOMMENDED
- Docker and related packages - NOT RECOMMENDED
- Sudo Enforcement: Script validates proper sudo usage
- User Context Preservation: All user files created with correct ownership
- Permission Management: Automatically adds user to required groups (docker, wireshark)
- Safe Execution: Prevents execution as root or regular user
After successful installation:
- Reboot recommended for group permissions to take effect
- Launch GNS3:
- From desktop menu (Applications → Development → GNS3)
- From terminal:
gns3
- First-time setup: Follow GNS3's initial configuration wizard
Solution: Add this to your ~/.bashrc
:
echo 'export QT_SCALE_FACTOR=1.5' >> ~/.bashrc
source ~/.bashrc
Solution: Ensure you're running with sudo
and reboot after installation to apply group changes.
Solution: Log out and log back in, or reboot to refresh group memberships.
- v2.0: Complete rewrite with interactive menu, uninstall functionality, enhanced security
- v1.1: Basic installation script
This script is not official and is not affiliated with GNS3. You are solely responsible for scripts executed on your machine and their integrity.
Made by fr-AlphaP - Student at IUT of Béziers
⭐ Don't forget to star this repository if it helped you!
This project is open source. Feel free to use, modify, and distribute according to your needs.