E: dpkg was interrupted... run 'sudo dpkg --configure -a'

I was running an upgrade with the apt-get command, and it was taking an exceptionally long time because half way through my ISP hit me in the face with their fair usage policy.

After sitting outside & watching the rain for awhile my electronics regained consciousness, so I went back to complete the upgrade and my terminal scolds me with

"E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem."

The last bit of legible info was all this:

Installing (ri/RDoc) documention for (stuff and such)
ERROR:  Could not find a valid gem 'watobo-0.9.8.724.gem' (>= 0) in any repository
rm: cannot remove `watobo-0.9.8.724.gem': No such file or directory

Setting up metasploit (4.3.0-bt1) ...
Upgrading Pre-Existing Installation...
/opt/metasploit/postgresql/scripts/ctl.sh : postgresql  (pid 1191) already running
prosvc is running
metasploit is running
[*]
[*] Attempting to update the Metasploit Framework...
[*]

So on it goes for miles, talking about gem caches, rubies, & stuff I wish I had. All up until:

A    lib/gemcache/ruby/1.9.1/gems/state_machine-1.1.2/gemfiles/active_record-2.1.2.gemfile.lock

...and there it has sat, all night. If I stop it, will I still get the dpkg error (on the off chance that I won't), or if so what do I need to to resume using apt-get commands and its Super Cow Powers?


Solution 1:

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

This error is actually telling you exactly what is wrong: dpkg was interrupted as a result the package was not configured correctly.

Run the command it tells you to sudo dpkg --configure -a and it should be able to correct itself.

If it doesn't try running sudo apt-get install -f (to fix broken packages) and then try running sudo dpkg --configure -a again.

Just make sure you have internet access available so that you can download any dependencies.

These instructions may not work if by upgrade you meant apt-get dist-upgrade if you were trying to do a distribution upgrade (e. g. 11.10 → 12.04) then you will need to edit your question to reflect that.

Solution 2:

I tried the solution of @TrailRider and didn't work for me. I solve it doing the following:

  1. Delete the updates with:

    cd /var/lib/dpkg/updates
    
    sudo rm *
    
  2. Tried to update and upgrade:

    sudo apt update
    
    sudo apt upgrade
    
  3. I couldn't, it says that:

    E: Could not get lock /var/lib/dpkg/lock
    

    This means that some program is updating the system or installing a new software.

  4. IMPORTANT: Check if some other process is locking dpkg files instead of deleting them immediately. Because if that is the case, you should wait for them to finish.

  5. Checking if some programs is locking dpkg files:

    ps aux | grep -i apt
    

    If you have only one output, something that finishes like:

    S+   19:16   0:00 grep --color=auto -i apt
    

    you are lucky. You could delete the dpkg lock files which you can double-check manually one by one with:

    sudo lsof /var/lib/dpkg/lock
    sudo lsof /var/lib/apt/lists/lock
    sudo lsof /var/cache/apt/archives/lock
    

    To delete them use:

    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    
  6. Try again:

    sudo dpkg --configure -a
    

    It should work.

  7. You should try to recover whatever you were installing at that moment with:

    sudo apt update
    sudo apt upgrade
    

    This should resume the process and keep everything stable.

That is how I fix it.

NOTE: I recommend you whatever you try to keep of track/log of what commands are you applying, this precaution will help other to help you if something goes wrong.