Fedora 43 Deep Clean: Gutting System Junk via Terminal
Fedora 43 with pure GNOME is a solid system, but like most modern desktop distros, it drags a hefty baggage "out of the box". If you, like me, prefer managing your system via bash and don't keep a collection of ancient printers and Apple devices connected to your laptop, a good chunk of default packages will just hang there as dead weight, eating up disk space and background resources.
Today I'll show you how to gut this ballast using the system package manager, leaving your setup truly lightweight.
What's going under the knife?
Before we blindly nuke everything, let's break down what exactly we don't need:
- 1. GNOME Software and PackageKit. If you work in the terminal with dnf, you don't need a GUI app store. Moreover, its background daemon (PackageKit) is notorious for regularly locking the dnf database, forcing you to wait for invisible background checks to finish.
- 2. Virtualization tools. Packages like open-vm-tools-desktop, virtualbox-guest-additions, or qemu-guest-agent are only needed if your Fedora is running inside a VM. This also includes GNOME Boxes (gnome-boxes) — the default GUI frontend for QEMU/KVM. On bare metal, all of this is just extra noise.
- 3. Accessibility and weird services. Screen reader (orca), Braille display support (brltty), speech synthesis (speech-dispatcher). We're also tossing out legacy protocols for modems and ADSL connections.
- 4. Printer drivers and Apple crutches. Gigabytes of HP drivers (hplip), scanners (sane-backends), and iOS/Mac integration (gvfs-afc, mactel-boot). Don't own a printer or an iPhone? Dump them.
- 5. Windows compatibility layers. Things like portproton drag along a massive pile of 32-bit libraries. If you don't run Windows games, delete them without a second thought.
Terminal Commands
Instead of deleting packages one by one, let's bundle everything into a couple of massive commands.
Removing the GUI app store and its dependencies:
sudo dnf remove gnome-software PackageKit-command-not-found PackageKit-gstreamer-plugin PackageKit-gtk3-module
Nuking useless system services, VMs (including GNOME Boxes), and legacy protocols:
sudo dnf remove gnome-boxes open-vm-tools-desktop virtualbox-guest-additions orca speech-dispatcher brltty hyperv-daemons qemu-guest-agent spice-vdagent spice-webdavd NetworkManager-adsl NetworkManager-ppp
Getting rid of peripheral drivers and specific utilities:
sudo dnf remove hplip gutenprint simple-scan sane-backends-drivers-scanners libsane-hpaio gvfs-afc gvfs-afp mactel-boot mediawriter teamd bluez-cups system-config-printer-udev gnome-initial-setup gnome-connections gnome-classic-session gnome-color-manager argyllcms argyllcms-data portproton
Note: In my setup, I kept rygel (media server), transmission, and libreoffice since I actually use them. But if you don't need them, feel free to add them to this list.
The Final Touch: Cleaning Up the Tails
The most important part of such a mass removal is getting rid of orphaned dependencies. The programs we just removed dragged in a bunch of libraries with them. Now nobody needs them.
Run the final cleanup:
sudo dnf autoremove
Don't panic if DNF offers to wipe a massive list taking up dozens of megabytes (like gnome-shell-extension-* or old spice-glib libraries). This is standard procedure for restoring order.
IMPORTANT RULE: Never blindly press "y" (yes) when reading any manuals. Always review the list of packages the manager is about to delete.
For example, when running autoremove, the system might offer to delete the openssl command-line utility since graphical packages no longer depend on it. The system itself won't break (the core openssl-libs stay intact), but if you use openssl in your bash scripts, you'll have to reinstall it. Read your terminal logs carefully!
Bottom line: A clean update process, minus a few hundred megabytes of useless junk on your drive, and absolutely no PackageKit blocking your terminal.
Back to Breaking the OS Section
/en/