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.
Asked
Active
Viewed 41 times
0
-
@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 Answers
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