Saya menemukan utas bermanfaat ini juga (banyak terima kasih kepada kontributor sebelumnya: hal-hal yang sangat baik!). Namun saya menginginkan sesuatu yang lebih canggih: diberi daftar harapan paket tergantung, dapatkah saya memiliki utilitas untuk memburunya di berbagai distribusi raspbian?
Saya telah membuat beberapa skrip yang mungkin berguna bagi orang lain (Anda dapat menyimpannya di folder beranda pengguna pi Anda (atau di mana pun)). Ingatlah untuk chmod + x script-name.sh setelah Anda membuatnya atau Anda akan kesulitan menjalankannya.
Yang pertama adalah 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
Anda menjalankan ini dan mengambil daftar paket untuk distribusi yang diberikan (default ke jessie ):
./get-available.sh [<distribution-name>]
Itu juga membuat file teks wishlist kosong di dalam folder distribusi yang baru dibuat (periksa dulu bahwa Anda belum memiliki folder dari nama-nama ini di folder rumah Anda atau Anda dapat menimpa sesuatu): Anda dapat mengedit ini sebagai daftar paket yang dipisahkan baris yang yang ingin Anda temukan termasuk dalam distribusi yang Anda cari.
Script kedua adalah 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
Setelah Anda mengatur daftar keinginan Anda, Anda menjalankan ini dan memindai daftar paket untuk paket-paket itu (default ke jessie ):
./check-available.sh [<distribution-name>]
Serta keluaran ke konsol adalah menyimpan hasil pencarian ke file ketersediaan di sub folder pencarian distribusi.
Berikut adalah daftar keinginan (saya) :
vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison
Inilah yang saya temukan untuk ketersediaan paket 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)
Inilah yang saya temukan untuk ketersediaan paket 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)
Dan inilah yang saya temukan untuk ketersediaan paket 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)
Jika daftar Anda lebih panjang, sangat mudah untuk menggunakan grep untuk memfilter : YES atau : NO baris untuk menanyakan file ketersediaan .
Saya harap beberapa orang menemukan ini berguna!