You’ve tried to install something, but Ubuntu can’t bring it onboard. APT mentions something about “No Installation Candidate.” What does this mean, what’s the source of the problem, and is it fixable? Here are some ways you can fix it.
What does “Package has no installation candidate” mean?
If you try to install a package that APT does not know how to install, it will inform you it’s unable to locate it. This can happen if you mistype the name of a package or try to install an application that is not in the default repository.
There’s also another case of missing packages: APT can’t find it in its usual location but knows it exists since another package references it. Sometimes, you haven’t enabled the required repository (like universe or multiverse), so APT lacks access to that software. In other cases, the package might only be available through a third-party PPA or may not support your system’s architecture.

For example, in newer Ubuntu versions, some packages commonly used in older projects or tutorials – such as python-pip (for Python 2), ruby, or php5, are deprecated or removed from the default repositories. This, in turn, can create problems when setting up legacy environments or following outdated instructions that assume these old packages are still available.
Fix “No Installation Candidate” in Ubuntu
Ubuntu package names are highly specific, and even a minor error, like missing a dash or using the wrong version number, can cause issues. Before diving into complex troubleshooting, carefully recheck the package name you entered. It may seem obvious, but a single mistyped letter can make an APT search for a nonexistent package.
If you’re unsure of the exact name, use the apt search
command to search for similar package names. For example, if you’re looking for the Flameshot screenshot tool but don’t know the precise package name, run this:
apt search flameshot

If the output package list is too big, you can also narrow down the results with this:
apt search "^PACKAGE_NAME*"
This command lists all packages starting with PACKAGE_NAME. If you replace PACKAGE_NAME with Firefox, you’ll see all packages beginning with Firefox. You might find an alternative to what you need. If nothing appears, the package may not be in your repositories or could have a different name.
Update and Upgrade Your System
Start by checking whether the last update/upgrade you performed removed the package. You don’t have to hunt it down in cryptic logs, and only need to update and upgrade your system to get the latest versions of your installed software. To update the APT’s database, use this:
sudo apt update && sudo apt upgrade

This issue happens because APT does not automatically check whether your local repository is currently in sync with the upstream remote. Whenever your machine gets behind with updates, any identified remote links will break and produce a No Installation Candidate error.
Once your system is up-to-date, you can immediately install any package that is available in your default repository.
Add a Third Party Repository
If that didn’t work, you’ll probably find the particular package in a currently unlisted repository. You only have to find and add it to your distribution’s software sources.
The Internet is your friend in finding the missing repository. For example, you can copy your desired tool Personal Package Archive (PPA) links from its websites to include its repositories in your local Apt instance.
Once located, you can add the repository to Ubuntu with the command:
sudo add-apt-repository REPOSITORY_PPA
Refresh your local Apt instance to include all the packages from the new repository. To do this, run the following command:
sudo apt update && sudo apt upgrade
Check your software sources (repositories)
If updating and adding PPA didn’t solve the problem, the next step is to check if the right repositories are enabled. Ubuntu gets its software from various sources, like main, universe, multiverse, and restricted. Some packages, especially less common ones, are only available if you enable these sources.
To check and enable them, open Software & Updates from your application’s menu. Go to the Ubuntu Software tab and make sure all options (main, universe, restricted, multiverse) are checked.

Click Close, then reload your package list with:
sudo apt update
You can also enable repositories using the terminal. For example:
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo add-apt-repository restricted
sudo apt update
This ensures you’ve got access to the full range of available packages. These repositories contain thousands of additional packages not found in the main repository. The Universe repository includes community-maintained open-source software, while Multiverse contains software that may have licensing restrictions.
Make Sure Your Ubuntu Version Is Supported
If you’re running an old or unsupported version of Ubuntu, some packages might be missing or have been removed from the repositories. To check your Ubuntu version, run:
lsb_release -a

If your version is no longer supported, consider upgrading to a newer release. Unsupported versions don’t get updates or new packages, so you’ll run into more and more issues over time.
Sometimes, newer Ubuntu versions have different package names for the same software. For example, the Python in older versions might now be Python3 in newer ones. The software’s essentially the same, but the packaging conventions have evolved.
Try a Different Installation Method
If all else fails, you can often install software using an alternative universal package manager like Snap or Flatpak. Snap and Flatpak are universal package formats that work across Linux distributions.
Installation via Snap is similar to APT, like this:
sudo snap install <package_name>
However, in order to install using Flatpak, you must first set up Flatpak. After that, you can simply use a one-liner command to install any tool it offers.
Alternatively, you can download the software directly from the developer’s website and follow their installation instructions. Some developers provide Debian packages directly. Download the .deb file from the official site and install it with:
sudo apt install ./package_file.deb
For open-source software, you might need to, download the source code, extract it, then run:
./configure
make
sudo make install
Remember that compiling from source can cause terrible problems with dependencies, so be careful.
Frequently Asked Questions
Is it possible to find a list of available PPAs for Ubuntu?
Yes! While there is no built-in tool for listing all available PPAs, Canonical allows users to upload details about their personal repositories through Launchpad. You can search for the name of either the package or repository that you are looking for. Run sudo add-apt-repository
along with the Launchpad link to add a particular repository to your Ubuntu system, then refresh Apt by running sudo apt update
.
Do note that because Launchpad contains user-submitted repositories, you need to verify the integrity of any of its packages and repositories that you will add to your machine.
Ubuntu did not add my custom repository during an update. What am I doing wrong?
This is mostly likely due to a missing key from the repository you are trying to add. By default, Ubuntu uses apt-key to verify every repository for checked packages, including the built-in Canonical repositories and any third-party PPAs from Launchpad. This does not apply to any non-Canonical and Launchpad repository, so you need to first find the official signing key for the repository you are trying to add.
I am using Ubuntu LTS and getting a “no installation candidate” error. Is my system broken?
No! A “no installation candidate” error can also happen if you are trying to install a package that is only available to a later version of Ubuntu. One way to solve this issue is by using Ubuntu backport, a special repository where users can submit and maintain an up-to-date version of a package for older versions of Ubuntu. It can be helpful if an upgrade is unwanted, but the latest software is needed. You can install a package through backports by using the -t
option in apt followed by the name of your Ubuntu version and “-backports.”