Note: I am aware that this question appears to be a duplicate of "E: Package '' has no installation candidate", but the only posted answer in that question did not help me at all. I've attempted to include more information than was in that question, including the results of every suggestion in the comments and answer.

Background: I have a Raspberry Pi 1 Model B, running Raspbian Wheezy, which I'd previously installed ROS (the Robot Operating System) on, but haven't done much else with. This week, I've been trying to install a couple extra ROS packages from source. In trying to fix various compiler and dependency issues (I'll admit, I was flailing around running random commands from the internet- problems started after I attempted to upgrade libboost, and then attempted to revert it to the previous version), I've apparently managed to completely hose the apt-get system.

My problem is that apt-get is no longer able to successfully install anything. Everything I've tried ends up with a "E: Package 'package-name' has no installation candidate" error (yes, I have run sudo apt-get update repeatedly, with several variations on sources.list). Everything is also up-to-date, according to apt-get upgrade and apt-get dist-upgrade. aptitude doesn't fare any better at installing things.

I'd like to fix the existing install, but I'm willing to restart from a fresh image if the system isn't salvageable without extensive work- I've backed up everything important.

Here are the contents of all the .list files in the /etc/apt/ directory:

pi@raspberrypi ~ $ find /etc/apt/ -path *.list | xargs tail -n +1
==> /etc/apt/sources.list.d/collabora.list <==
deb http://raspberrypi.collabora.com wheezy rpi

==> /etc/apt/sources.list.d/ros-latest.list <==
deb http://packages.ros.org/ros/ubuntu wheezy main

==> /etc/apt/sources.list.d/raspi.list <==
deb http://archive.raspberrypi.org/debian/ wheezy main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ wheezy main

==> /etc/apt/sources.list <==
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb-src http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi

#deb http://raspbian.mirrors.lucidnetworks.net/raspbian/ wheezy main contrib non-free rpi

#deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
# Source repository to add
#deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
#deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi
# Source repository to add
#deb-src http://archive.raspbian.org/raspbian jessie main contrib non-free rpi

Here's the output of apt-get update, apt-get upgrade, and apt-get upgrade:

pi@raspberrypi ~ $ sudo apt-get update
Hit http://packages.ros.org wheezy Release.gpg
Hit http://raspberrypi.collabora.com wheezy Release.gpg
Hit http://archive.raspberrypi.org wheezy Release.gpg
Hit http://packages.ros.org wheezy Release
Hit http://raspberrypi.collabora.com wheezy Release
Hit http://archive.raspberrypi.org wheezy Release
Hit http://mirrordirector.raspbian.org wheezy Release.gpg
Hit http://mirrordirector.raspbian.org testing Release.gpg
Hit http://packages.ros.org wheezy/main armhf Packages
Hit http://mirrordirector.raspbian.org wheezy Release
Hit http://raspberrypi.collabora.com wheezy/rpi armhf Packages
Hit http://mirrordirector.raspbian.org testing Release
Hit http://archive.raspberrypi.org wheezy/main armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/main armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/contrib armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/non-free armhf Packages
Ign http://packages.ros.org wheezy/main Translation-en_GB
Ign http://packages.ros.org wheezy/main Translation-en
Hit http://mirrordirector.raspbian.org wheezy/rpi armhf Packages
Ign http://raspberrypi.collabora.com wheezy/rpi Translation-en_GB
Ign http://archive.raspberrypi.org wheezy/main Translation-en_GB
Ign http://raspberrypi.collabora.com wheezy/rpi Translation-en
Ign http://archive.raspberrypi.org wheezy/main Translation-en
Hit http://mirrordirector.raspbian.org testing/main Sources
Hit http://mirrordirector.raspbian.org testing/contrib Sources
Hit http://mirrordirector.raspbian.org testing/non-free Sources
Hit http://mirrordirector.raspbian.org testing/rpi Sources
Ign http://mirrordirector.raspbian.org wheezy/contrib Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/contrib Translation-en
Ign http://mirrordirector.raspbian.org wheezy/main Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/main Translation-en
Ign http://mirrordirector.raspbian.org wheezy/non-free Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/non-free Translation-en
Ign http://mirrordirector.raspbian.org wheezy/rpi Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/rpi Translation-en
Reading package lists... Done

pi@raspberrypi ~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

pi@raspberrypi ~ $ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Here's what happens when I try to install a nice, simple program, bc:

pi@raspberrypi ~ $ sudo apt-get install bc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package bc is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'bc' has no installation candidate

Finally, here are a bunch of apt-cache results that might be relevant. I do have all of the dependencies installed, although I'm not sure if it's normal that install-info's (minimum required?) version number is "(null)".

pi@raspberrypi ~ $ dpkg --print-architecture

pi@raspberrypi ~ $ apt-cache dump | grep -m 1 -A 9 'Package: bc$'
Package: bc
 Version: 1.06.95-2
     File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
  Depends: libc6 2.4
  Depends: libreadline6 6.0
  Depends: dpkg 1.15.4
  Depends: install-info (null)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: 5d0bd9bd305e8d8ca79ea90107c2ec5a

pi@raspberrypi ~ $ apt-cache policy bc
  Installed: (none)
  Candidate: (none)
  Version table:
     1.06.95-2 0
        -10 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages

pi@raspberrypi ~ $ apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://packages.ros.org/ros/ubuntu/ wheezy/main armhf Packages
     release o=ROS,a=wheezy,n=wheezy,l=ROS wheezy,c=main
     origin packages.ros.org
 500 http://archive.raspberrypi.org/debian/ wheezy/main armhf Packages
     release o=Raspberry Pi Foundation,a=oldstable,n=wheezy,l=Raspberry Pi Foundation,c=main
     origin archive.raspberrypi.org
 500 http://raspberrypi.collabora.com/ wheezy/rpi armhf Packages
     release o=Collabora,n=wheezy,l=Collabora Raspberry Pi graphics enablement,c=rpi
     origin raspberrypi.collabora.com
 -10 http://mirrordirector.raspbian.org/raspbian/ wheezy/rpi armhf Packages
     release v=7.0,o=Raspbian,a=oldstable,n=wheezy,l=Raspbian,c=rpi
     origin mirrordirector.raspbian.org
 -10 http://mirrordirector.raspbian.org/raspbian/ wheezy/non-free armhf Packages
     release v=7.0,o=Raspbian,a=oldstable,n=wheezy,l=Raspbian,c=non-free
     origin mirrordirector.raspbian.org
 -10 http://mirrordirector.raspbian.org/raspbian/ wheezy/contrib armhf Packages
     release v=7.0,o=Raspbian,a=oldstable,n=wheezy,l=Raspbian,c=contrib
     origin mirrordirector.raspbian.org
 -10 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages
     release v=7.0,o=Raspbian,a=oldstable,n=wheezy,l=Raspbian,c=main
     origin mirrordirector.raspbian.org
Pinned packages:

pi@raspberrypi ~ $ apt-cache showpkg bc
Package: bc
1.06.95-2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: 5d0bd9bd305e8d8ca79ea90107c2ec5a

Reverse Depends:
1.06.95-2 - libc6 (2 2.4) libreadline6 (2 6.0) dpkg (18 1.15.4) install-info (0 (null))
1.06.95-2 -
Reverse Provides:

pi@raspberrypi ~ $ apt-cache madison bc
        bc |  1.06.95-2 | http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages
        bc |  1.06.95-9 | http://mirrordirector.raspbian.org/raspbian/ testing/main Sources

I'm not running out of disk space:

pi@raspberrypi ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  6.1G   50G  11% /
devtmpfs        214M     0  214M   0% /dev
tmpfs            44M  252K   44M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            87M     0   87M   0% /run/shm
/dev/mmcblk0p1   56M   20M   36M  36% /boot

EDIT: In response to Gilles' comment, here's my /etc/apt/preferences:

pi@raspberrypi ~ $ ls /etc/apt/preferences.d
pi@raspberrypi ~ $ cat /etc/apt/preferences
Package: *
Pin: release n=wheezy
Pin-Priority: 900
Package: *
Pin: release n=jessie
Pin-Priority: 300
Package: *
Pin: release o=Raspbian
Pin-Priority: -10
  • The only available version of bc has priority -10, i.e. isn't installable except by explicit request to install that version. There's something wrong with your apt preferences. Post the content of /etc/apt/preferences and files in /etc/apt/preferences.d. – Gilles Oct 2 '16 at 19:39
  • @Gilles: I've added that to the bottom of my post. Looking back on what I did, apparently that was set up when I installed gcc 4.8 following a random tutorial I found. As I recall, that file didn't previously exist- is it safe to delete, or should I edit it? – R. Wagner Oct 3 '16 at 21:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.