388

When I try to install any package through the command line, I get an error.

$ sudo apt-get install <package>
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package <package>

Can anyone help me on this?

Zanna
  • 72,312
CodeGeeky
  • 4,003

7 Answers7

244

First, check if the package actually does exist:

  1. Go to packages.ubuntu.com with a web browser.

  2. Scroll down to "Search package directories"

  3. Enter the package which you're trying to install into the "Keyword" field.

    Enable "Only show exact matches:"

    Change the "Distribution" to the codename of the version of Ubuntu you're using, e.g. focal in Ubuntu 20.04 or it's displayed by lsb_release -sc

    Search package direction. Keyword search box: "unity", with buttons for "Search" and "Reset". Followed by options for "Search on", with "Package names only" selected (with "descriptions" and "Source package names" being the other options). A checkbox for "Only show exact matches" is ticked. A "distribution" dropdown has "raring" selected, and a "section" dropdown is set to "any".

If there are no results, the package you are looking for doesn't exist and the next steps will not work. It may require a third party PPA or an alternative installation method.

If results are found, the package exists and you may continue with these steps:

  1. Open Software Sources (or Software & Updates in 13.04+) by searching for it in the Dash.
  2. Open the "Ubuntu Software" tab.
  3. Ensure that the first 4 checkboxes on this tab are enabled:

Software & Updates panel, on the "Ubuntu Software" tab. There are five options in "Downloadable from the internet", all selected: Canonical-supported free and open-source software (main); Community-maintained free and open-source software (universe); Proprietary drivers for devices (restricted); Software restricted by copyright or legal issues (multiverse); Source code. A "Download from" dropdown is set to "Main server".

  1. Update the package lists, then test with these commands:

     sudo apt update
     sudo apt install <TEST_PACKAGE>
    
Mithical
  • 129
kiri
  • 28,986
128

There are many questions about this topic. Here I provide a basic/general answer.

When apt-get install is unable to locate a package, the package you want to install couldn't be found within repositories that you have added (those in in /etc/apt/sources.list and under /etc/apt/sources.list.d/).

The following (general) procedure helps to solve this:

  1. Make sure you have enabled Ubuntu repositories:

    To enable all repositories (main, universe, restricted, multiverse), use the following commands:

    sudo add-apt-repository main
    sudo add-apt-repository universe
    sudo add-apt-repository restricted
    sudo add-apt-repository multiverse  
    

    Visit Help for more information.

  2. For finding PPA for more packages:

    • Go to Ubuntu Package Search. (Already explained in this answer)
    • If the package that you are unable to locate is from a PPA go to the PPA and check if it is available there for your release.
    • For External Repositories, Visit Ubuntu Updates and search by screen button. or Visit PPAs.
    • Or Search in Launchpad ppa
    • Find appropriate ppa according to your Ubuntu release version.
  3. Add PPA (by command-line):

    Use this command:

    sudo add-apt-repository ppa:<repository-name>
    

    Visit Ubuntu community help for more information.

  4. Don't forget to update (make apt aware of your changes):

    It is essential to run this command after changing any repositories:

    sudo apt-get update
    

    Selecting best download server may help to speed up update.

  5. Finally install the package:

    sudo apt-get install <package>
    

    Refer to Package management by commandline.

Additional/Tip: you can find the correct package-name (i.e the name in the repository) using apt-cache search <package-name>.


  • Related frequently asked Q&A:
  1. How do I resolve unmet dependencies after adding a PPA?
  2. What does "Package <package> has no installation candidate" mean?

Note: If package is not available on repository any how, than you have to wait until it is available (in the case of new/updated versions) or use other installation processes than apt-get e.g. compiling from source, downloading executable binary, etc.

karel
  • 122,292
  • 133
  • 301
  • 332
Pandya
  • 37,289
19

Fresh Ubuntu installation?

Many times just updating the package lists from all repositories and PPA's does the trick:

sudo apt-get update

This should be the first thing to do.

If this does not work you need search for the repository or PPA which contains the package you are after, add it, and run sudo apt-get update again. Steps for the process are well explained on the other answers on this page.

Niko Fohr
  • 1,571
  • 3
  • 16
  • 27
9

xbmc is only available in the universe repository, only since Ubuntu 12.04 (precise). If you have an older release of Ubuntu, you'll need to upgrade or to get xbmc from another place.

If you have Ubuntu 12.04, make sure that you have turned on the universe repository. You can see what repositories you have enabled in the file /etc/apt/sources.list (and in files in the directory /etc/apt/sources.list.d). Check that this file contains a line like

deb http://al.archive.ubuntu.com/ubuntu/ precise universe

or

deb http://zw.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse

If you only find a line like

deb http://mn.archive.ubuntu.com/ubuntu/ precise main restricted

and no line with universe, add universe at the end of that line, or a separate line with precise universe, as illustrated above.

If you need to modify /etc/apt/sources.list, run sudo apt-get update afterwards, then try installing again. If the package is still not found, post the complete content of /etc/apt/sources.list and the output of sudo apt-get update.

6

I'm new to Ubuntu but i'm writing this as I discovered some solutions to avoid this "Unable to Locate Package" errors. There are three circumstances where this might occur to a shock.

  1. After installing Ubuntu if you don't update it followed by Upgrades, This might occur.
  2. If there are plenty of software updates to occur in future, make sure all important security updates/recommended updates are turned off by typing "Update Manager" on pressing Alt+F2.
  3. Issue One and Two can happen even after updating or clearing all updates. But the eternal solution is: Try point 1 & 2, then type sudo apt-get killmanager, if not working no problem proceed to type sudo apt-get update, then type sudo apt-get upgrade.

Now you should be able to install any software through Terminal.

Eric Carvalho
  • 55,453
6

In the case where tried to install a file:

sudo apt-get install libstdc++.so.6

instead of a package. You get the error message:

E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

because you tried to install a file libstdc++.so.6 that you can't install, because it is located in a debian package.

You can use apt-file to search for the package that contains that file. To install it, type:

sudo apt-get install apt-file

Then you have to update the index.

sudo apt-file update

After that, you can search for the package which contains the file libstdc++.so.6:

sudo apt-file find libstdc++.so.6

Then you find a lot packages that contains the searched file. For this example I paste only one search result:

libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Then you can install the needed package libstdc++6:

sudo apt-get install libstdc++6
BuZZ-dEE
  • 14,533
3

you must supply either full path or relative path to reach the xxx.deb file

# bad way since PATH env var does not 
# and should not contain the '.' (current) directory
sudo apt-get install google-chrome-stable_current_amd64.deb

sudo apt-get install ./google-chrome-stable_current_amd64.deb # proper way

notice in above I supply the relative path to reach the xxx.deb file as in ./xxx.deb this is an intentional security measure to prevent sudo from installing a rogue xxx.deb from a potentially polluted PATH variable

below also works ... its using full path to reach the file

sudo apt-get install /tmp/google-chrome-stable_current_amd64.deb