Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

Use code: Skills Get Started
FAQ’s Sections
Linux

How to Remove a Package in Ubuntu: Complete Guide for 2024

Managing software on your Ubuntu server is one of the most fundamental skills for any system administrator. Whether you're running a production web application, a development environment, or a self-hosted service, keeping your package list clean and lean directly impacts system performance, security, and stability.

Ubuntu's package management ecosystem is mature and flexible, offering multiple tools β€” apt, dpkg, and snap β€” each suited to different scenarios. Over time, packages accumulate: outdated software, conflicting libraries, abandoned dependencies, and bloated configurations. Knowing exactly how to remove them β€” and which method to use β€” is critical.

This guide covers every reliable method to remove packages in Ubuntu, from basic uninstallation to deep purging and dependency cleanup, with clear syntax, real-world examples, and expert recommendations.

Why Removing Unused Packages Matters

Before diving into commands, it's worth understanding why regular package cleanup is important:

  • Disk space recovery β€” Unused packages and their configuration files consume valuable storage, especially on constrained VPS Hosting environments.
  • Security hardening β€” Every installed package is a potential attack surface. Removing unnecessary software reduces your exposure.
  • Conflict prevention β€” Stale packages can interfere with updates and new installations.
  • Performance optimization β€” Fewer background services and libraries mean less memory and CPU overhead.
  • System clarity β€” A clean package list is easier to audit, document, and maintain.

Prerequisites

Before removing any package, make sure you have:

  • A user account with sudo privileges
  • SSH access to your server (or a local terminal session)
  • A basic understanding of which packages are safe to remove

> Warning: Removing critical system packages can break your OS. Always verify a package's purpose before uninstalling it. When in doubt, use apt show <package_name> to inspect its description and dependencies.

Methods for Removing Packages in Ubuntu

Method 1: apt remove β€” Standard Package Removal

The apt remove command is the most commonly used method for uninstalling packages. It removes the package binary and its associated files but intentionally preserves configuration files. This is useful when you plan to reinstall the package later and want to retain your custom settings.

Syntax:

sudo apt remove <package_name>

Example β€” removing the nano text editor:

sudo apt remove nano

What happens:

  • The package binary is deleted
  • Configuration files in /etc/ and home directories are kept
  • The package is marked as "not installed" in the dpkg database

When to use it: When you want to temporarily remove software but may reinstall it with the same configuration in the future.

Method 2: apt purge β€” Complete Removal Including Configuration Files

If you want a clean slate β€” removing the package and all its configuration files β€” use apt purge. This is the recommended approach when you're permanently removing software or troubleshooting configuration issues.

Syntax:

sudo apt purge <package_name>

Example:

sudo apt purge nano

What happens:

  • The package binary is deleted
  • All configuration files associated with the package are removed
  • The package state is fully cleared from the dpkg database

Combining remove and purge in one command:

sudo apt purge --auto-remove nano

This single command purges the package and simultaneously removes its unused dependencies β€” a highly efficient approach for production servers.

When to use it: When permanently uninstalling software, switching to an alternative, or resolving configuration conflicts. This is the preferred method for server administrators managing Dedicated Servers where disk hygiene is critical.

Method 3: apt autoremove β€” Cleaning Up Orphaned Dependencies

When Ubuntu installs a package, it often pulls in additional dependency packages to support it. When you remove the main package, those dependencies frequently become "orphaned" β€” no longer required by anything on the system β€” but they remain installed, wasting disk space.

The apt autoremove command identifies and safely removes these orphaned packages.

Syntax:

sudo apt autoremove

Example output:

The following packages will be REMOVED:
  libfoo2 libbar1 python3-somelib
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.

Combining with purge for a thorough cleanup:

sudo apt autoremove --purge

This variant removes orphaned packages and their configuration files in a single pass.

When to use it: Run apt autoremove regularly β€” ideally after every major package removal β€” to keep your system free of dependency clutter. This is especially important on Shared Web Hosting environments where disk quotas are enforced.

Method 4: dpkg --remove β€” Low-Level Package Removal

dpkg is the underlying low-level package manager that apt is built on top of. Unlike apt, it does not automatically resolve or remove dependencies. This makes it a precise but potentially risky tool if used carelessly.

Syntax:

sudo dpkg --remove <package_name>

Example:

sudo dpkg --remove nano

For complete removal including configuration files:

sudo dpkg --purge <package_name>

Example:

sudo dpkg --purge nano

Important caveats:

  • dpkg will not remove dependent packages automatically
  • If other packages depend on the one you're removing, dpkg may refuse or leave the system in a broken state
  • After using dpkg, run sudo apt install -f to fix any broken dependencies

When to use it: Use dpkg when dealing with manually installed .deb packages that were not installed via apt, or when apt itself is unable to remove a package due to database inconsistencies.

Method 5: snap remove β€” Removing Snap Packages

Ubuntu has supported Snap packages since Ubuntu 16.04, and they are now the default format for many applications. Snap packages are self-contained and managed separately from the traditional apt/dpkg system.

Syntax:

sudo snap remove <snap_package_name>

Example β€” removing VLC media player:

sudo snap remove vlc

What happens:

  • The Snap package and its associated application data are removed
  • By default, Snap keeps a snapshot of the package data for 31 days, allowing recovery if needed

To remove without saving a snapshot:

sudo snap remove --purge vlc

Listing installed Snap packages:

snap list

When to use it: Whenever you need to remove applications installed via the Snap store or the snap install command. Note that Snap packages are completely separate from apt-managed packages β€” you cannot use apt remove to uninstall a Snap package.

Quick Reference: Choosing the Right Removal Command

ScenarioRecommended Command
Remove package, keep config filessudo apt remove <package>
Remove package and all config filessudo apt purge <package>
Remove package, configs, and dependenciessudo apt purge --auto-remove <package>
Clean up orphaned dependenciessudo apt autoremove
Remove a manually installed .deb packagesudo dpkg --remove <package>
Remove a Snap applicationsudo snap remove <package>
Remove a Snap without saving a snapshotsudo snap remove --purge <package>

Verifying Package Removal

After removing a package, always verify the operation was successful.

Check if a package is still installed:

dpkg -l | grep <package_name>

Check package status directly:

dpkg -s <package_name>

If the package was fully removed, you'll see Status: deinstall ok config-files (for apt remove) or dpkg-query: package '<name>' is not installed (for apt purge).

Verify a Snap package was removed:

snap list | grep <package_name>

Best Practices for Package Management on Ubuntu Servers

Maintaining a clean, efficient package environment is an ongoing responsibility. Here are expert-level recommendations:

  1. Always purge, don't just remove β€” On production servers, use apt purge instead of apt remove to avoid configuration file accumulation over time.
  1. Run autoremove regularly β€” Schedule periodic cleanup with apt autoremove --purge to prevent dependency bloat.
  1. Update before removing β€” Run sudo apt update before any package operation to ensure your package database is current.
  1. Document what you remove β€” Keep a change log of package modifications, especially on shared or team-managed servers.
  1. Test in staging first β€” Before removing packages on a live production server, test the operation in a staging environment. If you need isolated environments for testing, consider spinning up a separate VPS Hosting instance.
  1. Secure your server after cleanup β€” After removing unused packages, review your open ports and running services. Pair this with a valid SSL Certificate to ensure your remaining services are properly secured.
  1. Use apt-mark β€” Mark packages you intentionally want to keep as "manually installed" with sudo apt-mark manual <package> to prevent autoremove from accidentally removing them.

Troubleshooting Common Issues

Package removal fails with dependency errors

sudo apt install -f

This command attempts to fix broken dependencies and allows the removal to proceed.

apt reports "package not found"

The package name may differ from what you expect. Search for it first:

apt search <keyword>
dpkg -l | grep <keyword>

Package appears installed but won't remove

Try forcing removal with dpkg:

sudo dpkg --force-remove-reinstreq --remove <package_name>

Use this with caution β€” it bypasses dependency checks.

Snap package removal hangs

If snap remove hangs, check for running snap services:

sudo systemctl stop snap.<package>.daemon
sudo snap remove <package>

Conclusion

Mastering package removal in Ubuntu is a foundational skill for any system administrator or developer managing Linux-based infrastructure. Whether you use apt remove for a quick uninstall, apt purge for a thorough cleanup, apt autoremove to eliminate orphaned dependencies, dpkg for low-level control, or snap remove for containerized applications β€” each tool has a clear purpose and the right context for use.

Regular package hygiene keeps your server lean, secure, and performing at its best. Combined with a reliable hosting infrastructure β€” whether you're on a VPS with cPanel for easy management or a bare-metal Dedicated Server for maximum control β€” disciplined package management ensures your environment remains stable, auditable, and production-ready.