M BUZZ CRAZE NEWS
// news

How do I find out which repository a package comes from?

By Sarah Rodriguez

Is there a method or command which can tell from which repository a package is coming from?

2

6 Answers

Use following command. It has better output:

apt-cache policy <Package Name>

For Ubuntu 16.04 and later there is a shorter way to do that:

apt policy <Package Name>
6

Edit:

Check out SuB's answer. Looks a bit simpler!

Original:

Commands Needed:

  • dpkg -s <package> - allows you to find the version of that you have installed. (source)
  • apt-cache showpkg <package> - will show a list of Versions of the package available. For each version, the source of the package, in the form of an index file name, will be given.

If you want to find the source of the package that's currently installed, you'll need the output of dpkg -s <package>. Otherwise, you can simply look at the newest version output by apt-cache showpkg <package>.

Example:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <>
Architecture: i386
Version: 1.6.2-1ubuntu6
...
$ apt-cache showpkg liferea
Package: liferea
Versions:
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages MD5: 557b0b803b7ed864e6d14df4b02e3d26
1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status) Description Language: File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

From the first command, I can see that Liferea version 1.6.2-1ubuntu6 is installed. From the second command, I can see that that version is listed in /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

Without too much effort, I can deduce that the source line contains archive.ubuntu.com, ubuntu, lucid, and main.

And, sure enough, my /etc/apt/sources.list contains the following line.

deb lucid main universe restricted multiverse
8

apt on Ubuntu 16.04+

Beside apt-cache policy, showpkg and show, now we have a more simple, with easy to remember subcommands: apt[1] [2] (don't get confused with classic apt-*):

apt policy <package> 

Or the alternative with more info apt show <package>, line starting with "APT-Sources:".

Description: This package provides command line tools for searching and managing as well as querying information about packages as low-level access to all features of the libapt-pkg library. This includes:apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

Warning: apt does not have a stable CLI interface. Use with caution in scripts.

Basic commands from apt --help

Other also easy to remember subcommands:

  • apt list – list packages based on package names

  • apt search – search in package descriptions

  • apt show – show package details

  • apt update – update list of available packages

  • apt install – install packages

  • apt remove – remove packages

  • apt purge – remove packages and configuration files:

    Removing a package removes all packaged data, but leaves usually small (modified) user configuration files behind, in case the remove was an accident. Just issuing an installation request for the accidentally removed package will restore its function as before in that case. On the other hand you can get rid of these leftovers by calling purge even on already removed packages. Note that this does not affect any data or configuration stored in your home directory.

    To remove residual packages:

    sudo apt purge $(dpkg -l | grep "^rc" | awk '{print $2}')
  • apt upgrade – upgrade the system by installing/upgrading packages

  • apt full-upgrade – upgrade the system by removing/installing/upgrading packages

  • apt edit-sources – edit the source information file

4

Sadly, this information is not recorded during package installation. You can make a decent guess if the repository is still in the source list and the repository still has the package:

grep -l PKG /var/lib/apt/lists/*

Even synaptic cannot tell if you disable the repository and update.

sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

source

Another useful command is "apt-cache policy". It will show something like this:

$ apt-cache policy
Package files: # The default repository with a priority of 500 500 stable/main amd64 Packages o=Debian,n=stable,l=Debian,c=main,b=amd64 origin deb.debian.org # The repository for Debian (security and grave bug fixes ~every 2 months) 500 stable-updates/main amd64 Packages release o=Debian,a=oldstable-updates,n=stable-updates,l=Debian,c=main,b=amd64 origin deb.debian.org

Ref:

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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