También encontré este hilo útil (muchas gracias a colaboradores anteriores: ¡cosas excelentes!). Sin embargo, quería algo más sofisticado: dada una lista de deseos de paquetes dependientes, ¿podría tener utilidad para cazarlos en las diversas distribuciones de raspbian?
He creado un par de scripts que otros pueden encontrar útiles (puede guardarlos en su carpeta de inicio de usuario pi (o donde sea)). Recuerde chmod + x script-name.sh después de haberlos creado o tendrá problemas para ejecutarlos.
El primero es 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
Ejecuta esto y obtiene la lista de paquetes para una distribución dada (por defecto es jessie ):
./get-available.sh [<distribution-name>]
También crea un archivo de texto de lista de deseos vacío dentro de una carpeta de distribución recién creada (verifique primero que no tenga carpetas de estos nombres en su carpeta de inicio o podría sobrescribir algo): puede editar esto como una lista de paquetes separados por líneas que son los que espera encontrar están incluidos en la distribución que está buscando.
El segundo script es 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
Una vez que haya configurado su lista de deseos , ejecuta esto y escanea la lista de paquetes para esos paquetes (por defecto es jessie ):
./check-available.sh [<distribution-name>]
Además de la salida a la consola, se guarda la salida de búsqueda en un archivo de disponibilidad en la subcarpeta de búsqueda de distribución.
Aquí está (mi) lista de deseos de ejemplo :
vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison
Esto es lo que encontré para la disponibilidad del paquete 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)
Esto es lo que encontré para la disponibilidad del paquete 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)
Y aquí está lo que encontré para la disponibilidad de paquetes elásticos :
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)
Si su lista es más larga, es muy fácil usar grep para filtrar las líneas : SÍ o : NO para consultar los archivos de disponibilidad .
¡Espero que otros encuentren esto útil!