92

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?

Radu Rădeanu
  • 174,089
  • 51
  • 332
  • 407

3 Answers3

106
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.

David Foerster
  • 36,890
  • 56
  • 97
  • 151
TrailRider
  • 7,157
27

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 (I couldn't):

    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.

titusfx
  • 431
0

Boot to the GRUB menu, choose Advanced options for Ubuntu, and select the second option (the option that has (recovery mode) at the end). Then run sudo dpkg --configure -a to correct the problem. The following detailed instructions describe how to do this step-by-step.


Boot into recovery mode

Immediately after the motherboard / computer manufacturer logo splash screen appears when the computer is booting, with BIOS, quickly press and hold the Shift key, which will bring up a GNU GRUB menu screen. With UEFI press (perhaps several times) the Esc key to get to the GNU GRUB menu screen. Sometimes the manufacturer's splash screen is a part of the Windows bootloader, so when you power up the machine it goes straight to the GNU GRUB menu screen, and then pressing Shift is unnecessary.

The timing when to press the left Shift key can be tricky, so sometimes if you miss it you need to try it again. If that doesn't work try the answers to I can't get the GRUB menu to show up during boot. Then runsudo dpkg --configure -a' to correct the problem

You will see a GNU GRUB menu screen that looks like this. Select Advanced options for Ubuntu and press Enter.

enter image description here

A new purple screen will appear showing a list of kernels, which includes options of booting the kernels normally or in recovery mode.

enter image description here

Press the down arrow key until you select the 2nd entry from the top (the one with the recovery mode in the description) and then press Enter twice.

Now you should see this recovery menu:

recovery menu

Using the arrow keys scroll down to network (the third entry from the bottom in the Recovery Menu) and then press Enter.

Using the arrow keys scroll down to root (the second entry from the bottom in the Recovery Menu) and then press Enter.

You should now see a root prompt and you can run commands from it.

Run 'sudo dpkg --configure -a' to correct the problem

Run the following commands.

sudo mount -o remount,rw /
fsck -f /
sudo dpkg --configure -a
sudo apt-get install -f
karel
  • 122,292
  • 133
  • 301
  • 332