0

I want to find out whether a package that is not installed on Ubuntu is available in my configured repositories using a shell script, preferably not one that needs to examine the output from a command to determine what is happening. I have no problems determining whether a package has been installed, but determining if it is available is another problem.

Jonathan
  • 1,280
  • @guiverc OP asking if a package is available in the repositories, not if it is installed. – Liso Jun 03 '20 at 06:36
  • @guiverc, I am specifically asking whether a package exists in a remote repository that is in my sources list but not in the local copies of the repositories that I am using. – Jonathan Jun 04 '20 at 12:58

1 Answers1

1

Change redis to whatever package you want to check.

grep "^Package: redis" /var/lib/apt/lists/*_binary-$(dpkg --print-architecture)_Packages

In my machine this yield.

$ grep "^Package: redis" /var/lib/apt/lists/*_binary-$(dpkg --print-architecture)_Packages
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-security_universe_binary-amd64_Packages:Package: redis
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-security_universe_binary-amd64_Packages:Package: redis-sentinel
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-security_universe_binary-amd64_Packages:Package: redis-server
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-security_universe_binary-amd64_Packages:Package: redis-tools
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis-redisearch
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis-redisearch-doc
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis-sentinel
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis-server
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages:Package: redis-tools
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-updates_universe_binary-amd64_Packages:Package: redis
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-updates_universe_binary-amd64_Packages:Package: redis-sentinel
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-updates_universe_binary-amd64_Packages:Package: redis-server
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic-updates_universe_binary-amd64_Packages:Package: redis-tools
/var/lib/apt/lists/ppa.launchpad.net_chris-lea_redis-server_ubuntu_dists_bionic_main_binary-amd64_Packages:Package: redis
/var/lib/apt/lists/ppa.launchpad.net_chris-lea_redis-server_ubuntu_dists_bionic_main_binary-amd64_Packages:Package: redis-sentinel
/var/lib/apt/lists/ppa.launchpad.net_chris-lea_redis-server_ubuntu_dists_bionic_main_binary-amd64_Packages:Package: redis-server
/var/lib/apt/lists/ppa.launchpad.net_chris-lea_redis-server_ubuntu_dists_bionic_main_binary-amd64_Packages:Package: redis-tools

You can see it output the one from Ubuntu main repository (universe), and external repository chris-lea/redis-server.

You can easily adjust this to your need, assuming you would create a shell script.

Steps taken from https://serverfault.com/questions/252333/list-all-packages-from-a-repository-in-ubuntu-debian.

Liso
  • 15,377
  • 3
  • 51
  • 80
  • I am interested in situations where the package is not present on the local system but only in the remote repository. – Jonathan Jun 03 '20 at 17:18
  • @Jonathan The command exactly did that, I don't have redis in my system. Could you elaborate what you mean ? – Liso Jun 04 '20 at 02:04
  • the documentation that I have read seem to imply that these commands only operate on the local copies of repositories or on the cache. Hence my question. – Jonathan Jun 04 '20 at 12:54