Je suis également tombé sur ce fil utile (merci beaucoup aux contributeurs précédents: excellent!). Cependant, je voulais quelque chose de plus sophistiqué: étant donné une liste de paquets dépendants, pourrais-je avoir un utilitaire pour les rechercher dans les différentes distributions Raspbian?
J'ai créé quelques scripts que d'autres pourraient trouver utiles (vous pouvez les enregistrer dans votre dossier de départ de l'utilisateur pi (ou ailleurs)). N'oubliez pas de chmod + x nom_script.sh après les avoir créés, sinon vous aurez des problèmes pour les exécuter.
Le premier est 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
Vous exécutez ceci et il récupère la liste des paquets pour une distribution donnée (par défaut, jessie ):
./get-available.sh [<distribution-name>]
Il crée également un fichier texte de liste de souhaits vide dans un dossier de distribution nouvellement créé (vérifiez d’abord que vous n’avez pas déjà de dossiers de ces noms dans votre dossier de départ ou que vous pourriez écraser quelque chose): vous pouvez le modifier sous la forme d’une liste de paquets séparés par une ligne. ceux que vous espérez trouver sont inclus dans la distribution que vous recherchez.
Le deuxième script est 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
Une fois que vous avez configuré votre liste de souhaits, vous l'exécutez et il analyse la liste de paquets pour ces paquets (par défaut, jessie ):
./check-available.sh [<distribution-name>]
En plus de la sortie sur la console, la sortie de la recherche est enregistrée dans un fichier de disponibilité situé dans le sous-dossier de recherche de la distribution.
Voici (ma) exemple de liste de souhaits :
vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison
Voici ce que j'ai trouvé pour la disponibilité des paquets 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)
Voici ce que j'ai trouvé pour la disponibilité du paquet 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)
Et voici ce que j'ai trouvé pour la disponibilité des paquets extensibles :
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 votre liste est plus longue, utilisez grep pour filtrer les lignes : OUI ou : NON pour interroger les fichiers de disponibilité .
J'espère que d'autres trouveront cela utile!