Il repository di Raspbian ha un elenco di pacchetti sfogliabile?


62

Raspbian afferma di avere "35.0000 pacchetti Raspbian", il che è fantastico, ma sto solo cercando un pacchetto o due prima di installarlo.

Esiste un elenco di pacchetti di repository sfogliabile che posso cercare con un browser Web senza essere sul dispositivo stesso?

Se non esiste un metodo intuitivo per il browser, esiste un modo per scaricare gli elenchi dei pacchetti e sfogliare altri metodi?

Risposte:


40

Dalle domande frequenti su Raspbian.org,

L'elenco attuale dei pacchetti nel repository Raspbian è disponibile nel file di testo collegato di seguito: http://archive.raspbian.org/raspbian/dists/wheezy/main/binary-armhf/Packages

ATTENZIONE Il download è di 32 MB.

Il file è di testo semplice e un elenco di pacchetti può essere ottenuto con la seguente pipeline:

grep -P '^Package:' Packages | cut -d' ' -f2

Un normale editor di testo è il modo migliore per sfogliare questo, allora?
Zoot

1
È un file di testo che puoi aprire con un editor di testo, un browser, MS Word, ecc. Hai mai pensato di cercare un pacchetto usando apt apt-cache "Nome pacchetto"
Steve Robillard

2
Al momento non sono davanti al dispositivo e Raspbian non è attualmente installato, il che mi rende leggermente meno utile.
Zoot

1
Aprilo usando Notepad ++ - Gestisco facilmente file di grandi dimensioni come questo. Supporta anche espressioni regolari.
Piotr Kula,

3
In un solo comando:curl -s http://archive.raspbian.org/raspbian/dists/stable/main/binary-armhf/Packages.xz | xz -d | grep '^Package:' | cut -d ' ' -f 2
gioele


14

La distro raspbian viene fornita con un'utilità chiamata apt-cache. Per cercare l'indice del repository di pacchetti locale, utilizzare:

apt-cache search <keyword>

Ma ciò richiede l'accesso al dispositivo (o almeno un'istanza in esecuzione di Raspbian). L'OP ha specificato che deve essere accessibile in un browser esterno a Raspbian.
JBentley,

8

Puoi sfogliare i pacchetti Debian Wheezy sulla pagina Wheezy di Debian . I pacchetti disponibili dovrebbero essere praticamente gli stessi dei repository Raspbian.


3
Raspbian potrebbe sicuramente utilizzare anche un servizio come questo. E accesso al bug tracker. Sarebbe bello poter sfogliare facilmente nell'archivio i pacchetti e la versione su un arco quando non si esegue raspbian.
XTL,

3

Mi sono imbattuto anche in questo thread utile (molte grazie a collaboratori precedenti: cose eccellenti!). Tuttavia volevo qualcosa di più sofisticato: data una lista dei desideri di pacchetti dipendenti, potrei avere utilità per cacciarli nelle varie distribuzioni raspbian?

Ho creato un paio di script che altri potrebbero trovare utili (puoi salvarli nella cartella home dell'utente pi (o ovunque)). Ricorda di chmod + x script-name.sh dopo averli creati o avrai problemi a eseguirli.

Il primo è 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

Lo esegui e recupera l'elenco dei pacchetti per una determinata distribuzione (il valore predefinito è jessie ):

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

Crea anche un file di testo vuoto nella lista dei desideri all'interno di una cartella di distribuzione appena creata (controlla prima che non ci siano già cartelle di questi nomi nella cartella principale o che tu possa sovrascrivere qualcosa): puoi modificarlo come un elenco di pacchetti separati da linee che sono quelli che speri di trovare sono inclusi nella distribuzione che stai cercando.

Il secondo script è 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

Dopo aver impostato la tua lista dei desideri, esegui questo ed esegue la scansione dell'elenco dei pacchetti per quei pacchetti (il valore predefinito è jessie ):

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

Oltre a inviare alla console viene salvato l'output di ricerca in un file di disponibilità nella sottocartella di ricerca della distribuzione.

Ecco la (mia) lista dei desideri di esempio :

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

Ecco cosa ho trovato per la disponibilità del pacchetto wheezy :

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)

Ecco cosa ho trovato per la disponibilità del pacchetto jessie :

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)

Ed ecco cosa ho trovato per la disponibilità dei pacchetti stretch :

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)

Se la tua lista è più lunga è un gioco da ragazzi usare grep per filtrare le righe : YES o : NO per interrogare i file di disponibilità .

Spero che altri lo trovino utile!


1

La Raspberry Pi Foundation ha annunciato di aver aperto il " Pi Store ", che è un elenco di applicazioni consultabili per il Raspberry Pi, comprese le app gratuite e a pagamento.

Non è un elenco di pacchetti completo come l'archivio Raspbian, ma fornisce uno sguardo ad alcune delle cose che è possibile installare prima di installare Raspbian.

EDIT: questo non esiste più. Questa risposta è ora una dichiarazione di record storico.


6
Sfortunatamente, il Pi Store è stato chiuso e non esiste più.
tjohnson,

1

Ho notato che può confermare che qualcosa è disponibile, ma non può confermare che qualcosa non lo è , vale a dire, ti imbatterai in pacchetti che si installano tramite aptma che non si trovano in quell'albero dell'archivio. In altre parole, solo perché non riesci a trovare qualcosa lì non significa che non sia disponibile.
riccioli d'oro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.