62

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?

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
  • Is a normal text editor the best way to browse this, then? – Zoot Jul 20 '12 at 14:47
  • 1
    It is a text file you can open it with a text editor, browser, MS Word etc. Have you thought about searching for a package using apt apt-cache search "Package Name" – Steve Robillard Jul 20 '12 at 14:52
  • 2
    I'm not in front of the device currently, and Raspbian isn't currently installed, making apt slightly less useful to me. – Zoot Jul 20 '12 at 15:12
  • 1
    Open it using Notepad++ - I handles large files like this easily. Supports regular expressions too. – Piotr Kula Feb 17 '15 at 21:44
  • 3
    In a single command: curl -s http://archive.raspbian.org/raspbian/dists/stable/main/binary-armhf/Packages.xz | xz -d | grep '^Package:' | cut -d ' ' -f 2 – gioele Sep 24 '17 at 10:34
19

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

  • 10
    Out of date. Seems like that list is not maintained – Piotr Kula Feb 17 '15 at 21:43
  • The package list is regularly maintained with both Jessie and Wheezy packages. – Graeme Jul 2 '16 at 9:28
14

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

apt-cache search <keyword>
  • But this requires having access to the device (or at least a running instance of Raspbian). The OP specified it needs to be accessible in a browser outside of Raspbian. – JBentley Apr 29 '17 at 22:38
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.

  • 3
    Raspbian could definitely use a service like this as well. And access to the bug tracker. It would be great to be able to browse the archive for packages and version on an arch easily when you aren't running raspbian. – XTL Sep 5 '12 at 7:07
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!

1

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.

  • 6
    Unfortunately, the Pi Store has been closed and no longer exists. – tjohnson Mar 12 '16 at 22:40
1

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

........

  • I've noticed that can confirm something is available, but it can't confirm something isn't, i.e., you will run across packages that install via apt but aren't in that archive tree. Put another way, just because you can't find something there doesn't mean it isn't available. – goldilocks Oct 13 '18 at 15:35

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.