79

Raspbian claims to have "35,0000 Raspbian packages", which is great, but I'm only looking for a package or two before I install it.

Is there a browsable repository package list that I can search with a web browser without being on the device itself?

If there isn't a browser-friendly method, is there a way to download the package lists and browse through some other method?

Zoot
  • 2,996
  • 3
  • 27
  • 36

8 Answers8

40

From the Raspbian.org FAQ,

The current list of packages in the Raspbian repository can be found in the text file linked below: http://archive.raspbian.org/raspbian/dists/wheezy/main/binary-armhf/Packages

WARNING The download is 32MB.

The file is plain text and a list of packages can be obtained with the following pipeline:

grep -P '^Package:' Packages | cut -d' ' -f2
pwr22
  • 3
  • 1
Steve Robillard
  • 34,988
  • 18
  • 106
  • 110
21

There is a browsable Raspbian package list at http://www.raspberryconnect.com in the software section. The packages are listed by category.

user3922
  • 227
  • 2
  • 2
14

The raspbian distro comes with a utility called apt-cache. To search the local package repository index, use:

apt-cache search <keyword>
PhysBrain
  • 157
  • 1
  • 3
8

You can browse the Debian Wheezy packages on Debian's Wheezy page. The packages available should be virtually the same as in the Raspbian repositories.

RolfBly
  • 609
  • 1
  • 9
  • 24
dsas
  • 181
  • 3
3

I came across this useful thread too (many thanks to prior contributors: excellent stuff!). However I wanted something more sophisticated: given a wish-list of dependent packages, could I have utility to hunt them down in the various raspbian distributions?

I have created a couple of scripts that others may find useful (you can save these to your pi user home folder (or wherever)). Remember to chmod +x script-name.sh after you have created them or you will have trouble running them.

The first one is get-available.sh:

#!/bin/bash

dist=jessie
[ ${#1} -gt 0 ] && dist=$1

[ ! -e /home/pi/${dist} ] && mkdir /home/pi/${dist}
pushd /home/pi/${dist} &> /dev/null
[ ! -e ./Packages ] && echo Fetching Packages list for ${dist}...
[ ! -e ./Packages ] && wget http://archive.raspbian.org/raspbian/dists/${dist}/main/binary-armhf/Packages
grep -P '^Package:' Packages | cut -d' ' -f2 > available
[ ! -e ./wishlist ] && touch ./wishlist
popd &> /dev/null

You run this and it fetches the package list for a given distribution (defaults to jessie):

./get-available.sh [<distribution-name>]

It also creates an empty wishlist text file within a newly created distribution folder (check first that you do not already have folders of these names in your home folder or you could overwrite something): you can edit this as a line separated packages list which are those that you hope to find are included in the distribution you are searching.

The second script is check-available.sh:

#!/bin/bash

dist=jessie
[ ${#1} -gt 0 ] && dist=$1
[ ! -e /home/pi/${dist}/available ] && echo You need to run ./get-available.sh ${dist} first!
[ ! -e /home/pi/${dist}/available ] && exit

pushd /home/pi/${dist} &> /dev/null
[ -e ./availability ] && rm ./availability
mlen=7

function check-len () {
  [ ${#1} -gt ${mlen} ] && mlen=${#1}
}

function check-available () {

  matches=$(grep -o "^$1$" ./available | wc -l)
  if [ ${matches} -eq 0 ]
  then
    printf "%-${mlen}s :NO  (%s)\n" $1 ${dist} >> ./availability
  else
    printf "%-${mlen}s :YES (%s)\n" $1 ${dist} >> ./availability
  fi
}

readarray packages < ./wishlist

for p in "${packages[@]}"
do
  pw=$(echo ${p}|tr -d '\n')
  check-len "${pw}"
done

for p in "${packages[@]}"
do
  pw=$(echo ${p}|tr -d '\n')
  check-available "${pw}"
done

[ -e ./availability ] && cat ./availability

popd &> /dev/null

Once you have setup your wishlist you run this and it scans the package list for those packages (defaults to jessie):

./check-available.sh [<distribution-name>]

As well as outputting to the console is saves the search output to an availability file in the distribution search sub folder.

Here is (my) example wishlist:

vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison

Here is what I found for wheezy package availability:

vim                        :YES (wheezy)
wget                       :YES (wheezy)
software-properties-common :YES (wheezy)
python3.5                  :NO  (wheezy)
libsodium13                :NO  (wheezy)
python3-pip                :YES (wheezy)
oracle-java8-installer     :NO  (wheezy)
oracle-java8-set-default   :NO  (wheezy)
libgmp3-dev                :YES (wheezy)
libssl-dev                 :YES (wheezy)
flex                       :YES (wheezy)
bison                      :YES (wheezy)

Here is what I found for jessie package availability:

vim                        :YES (jessie)
wget                       :YES (jessie)
software-properties-common :YES (jessie)
python3.5                  :NO  (jessie)
libsodium13                :YES (jessie)
python3-pip                :YES (jessie)
oracle-java8-installer     :NO  (jessie)
oracle-java8-set-default   :NO  (jessie)
libgmp3-dev                :YES (jessie)
libssl-dev                 :YES (jessie)
flex                       :YES (jessie)
bison                      :YES (jessie)

And here is what I found for stretch package availability:

vim                        :YES (stretch)
wget                       :YES (stretch)
software-properties-common :YES (stretch)
python3.5                  :YES (stretch)
libsodium13                :NO  (stretch)
python3-pip                :YES (stretch)
oracle-java8-installer     :NO  (stretch)
oracle-java8-set-default   :NO  (stretch)
libgmp3-dev                :YES (stretch)
libssl-dev                 :YES (stretch)
flex                       :YES (stretch)
bison                      :YES (stretch)

If your list is longer it is a cinch to use grep to filter the :YES or :NO lines to query the availability files.

I hope some others find this useful!

KevinS
  • 31
  • 3
2

It is browsable here: http://archive.raspbian.org/raspbian/pool/main/

........

wxh
  • 121
  • 1
1

The ticked solution at the top of the page is now a broken link (as of Dec 20th 2020 13:01 UK time), as noted by user Joshua Detwiler. But you can see the list of distros by going to a shortened version of the link. See link below:

http://archive.raspbian.org/raspbian/dists/

Then, you can follow the equivalent path. For example, to see Debian Buster Packages, go to the below link:

http://archive.raspbian.org/raspbian/dists/buster/main/binary-armhf/ Or you can just click the full link below (which is the direct link to the actual text file):

http://archive.raspbian.org/raspbian/dists/buster/main/binary-armhf/Packages

But, the above links will also fall victim to "link rot" one day - maybe in 20 years or something..!? :-)

Steve
  • 11
  • 1
0

The Raspberry Pi Foundation announced that it opened up the "Pi Store", which is a browse-able list of applications for the Raspberry Pi, including both free and paid apps.

It is not a complete package list like the Raspbian archive, but it does provide a glimpse into some of the things that are possible to install before installing Raspbian.

EDIT: This no longer exists. This answer is now a statement of historical record.

Zoot
  • 2,996
  • 3
  • 27
  • 36