How to Recover Removed Packages After `apt-get remove` in Ubuntu: Python Dependency Restoration Guide


1 views

We've all been there - that moment when you realize sudo apt-get remove python just nuked more than intended. Unlike apt-get purge, the remove command doesn't delete configuration files, which gives us recovery options.

Ubuntu maintains package operation logs at /var/log/apt/history.log. To see exactly what was removed:

grep "remove python" /var/log/apt/history.log -A 20

This shows the complete transaction including all dependencies that were auto-removed.

Instead of manually tracking dependencies, use APT's own records:

sudo apt-get install python --simulate | grep "Inst " | awk '{print $2}' > python-deps.txt
sudo xargs -a python-deps.txt apt-get install

This generates a complete dependency list and reinstalls everything.

For more complex scenarios where multiple packages were removed:

sudo aptitude install '~i!~M'

This reinstalls all previously installed packages that are now missing.

If you've lost critical configs, use dpkg to re-extract them:

sudo apt-get download python
sudo dpkg --unpack python*.deb
sudo apt-get install --reinstall python

Next time, protect critical packages from accidental removal:

sudo apt-mark hold python python3

Check that all Python paths and modules are restored:

python3 -c "import sys; print(sys.path)"
dpkg -l | grep python | wc -l

We've all been there - that moment when you realize you just removed a critical package like Python along with all its dependencies. The command sudo apt-get remove python can wreak havoc on your Ubuntu system if you didn't intend to purge Python and its associated packages.

When you run apt-get remove, it:

  • Removes the specified package
  • Removes packages that depend on it (unless you used --no-remove)
  • Keeps configuration files (unlike purge)

Here are your best options to undo the damage:

1. Check Apt History

First, examine what exactly was removed:

cat /var/log/apt/history.log | grep "Remove:"

2. Reinstall from Package Cache

Ubuntu keeps downloaded packages in /var/cache/apt/archives/. You can reinstall from here:

sudo apt-get install --reinstall $(ls /var/cache/apt/archives/*.deb | sed 's/.*\/$.*$_.*/\1/')

3. Use Apt History to Reinstall

For a more targeted approach:

sudo apt-get install $(grep -A 1 "Remove:" /var/log/apt/history.log | \
grep -v "Remove:" | sed 's/ //g' | tr ',' '\n' | grep python)

Using aptitude for Dependency Resolution

Aptitude maintains better dependency records:

sudo aptitude install '~i!~Mpython'

This reinstalls all Python-related packages that were manually installed.

Scripted Recovery

For complex cases, this script can help:

#!/bin/bash
# Find all removed Python packages
REMOVED=$(zgrep -h "remove " $(ls -tr /var/log/apt/history.log*))
echo "$REMOVED" | grep python | while read -r line; do
    PKGS=$(echo "$line" | cut -d ' ' -f 2- | tr ',' ' ')
    sudo apt-get install --no-install-recommends $PKGS
done
  • Always use apt-get remove --dry-run first
  • Consider using apt-mark to mark critical packages as manual
  • Set up regular backups with apt-clone

If you've lost too many packages, consider:

sudo apt-get install ubuntu-desktop  # For desktop systems
sudo apt-get install --reinstall ubuntu-minimal  # For servers