আমি এই দরকারী থ্রেড জুড়ে এসেছি (পূর্ববর্তী অবদানকারীদের অনেক ধন্যবাদ: চমৎকার স্টাফ!)। তবে আমি আরও পরিশীলিত কিছু চাই: নির্ভর প্যাকেজগুলির একটি ইচ্ছা-তালিকা দেওয়াতে, আমি বিভিন্ন রাস্পবিয়ান বিতরণে সেগুলি শিকার করার জন্য কি আমার উপযোগী হতে পারে?
আমি বেশ কয়েকটি স্ক্রিপ্ট তৈরি করেছি যা অন্যরাও দরকারী খুঁজে পেতে পারে (আপনি এগুলি আপনার পাই ব্যবহারকারী হোম ফোল্ডারে (বা যে কোনও জায়গায়) সংরক্ষণ করতে পারেন )। Chmod + x script-name.sh মনে রাখবেন আপনি সেগুলি তৈরি করার পরে বা এগুলি চালাতে আপনার সমস্যা হবে।
প্রথম এক 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
আপনি এটি চালান এবং এটি প্রদত্ত বিতরণের জন্য প্যাকেজ তালিকাটি নিয়ে আসে ( জেসির ডিফল্ট ):
./get-available.sh [<distribution-name>]
এটি একটি নতুন নির্মিত ডিস্ট্রিবিউশন ফোল্ডারের মধ্যে একটি ফাঁকা ইচ্ছার তালিকার পাঠ্য ফাইলও তৈরি করে (প্রথমে পরীক্ষা করুন যে আপনার বাড়ির ফোল্ডারে এই নামগুলির ফোল্ডার আপনার কাছে নেই বা আপনি কোনও কিছু ওভাররাইট করতে পারেন): আপনি এটি একটি লাইন পৃথক প্যাকেজ তালিকা হিসাবে সম্পাদনা করতে পারেন যা আপনি যেগুলি খুঁজে পেতে আশা করছেন সেগুলি আপনার অনুসন্ধান করা বিতরণে অন্তর্ভুক্ত রয়েছে।
দ্বিতীয় লিপিটি চেক-উপলভ্য.শ :
#!/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
একবার আপনি নিজের ইচ্ছার তালিকাটি সেটআপ করার পরে আপনি এটি চালান এবং এটি packages প্যাকেজগুলির জন্য প্যাকেজ তালিকাটি স্ক্যান করে ( জেসির ডিফল্ট ):
./check-available.sh [<distribution-name>]
পাশাপাশি কনসোলে outputting একজন সার্চ আউটপুট সংরক্ষণ প্রাপ্যতা বন্টন অনুসন্ধান সাব ফোল্ডারে ফাইল।
এখানে (আমার) উদাহরণ ইচ্ছার তালিকা রয়েছে :
vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison
হুইজি প্যাকেজের প্রাপ্যতার জন্য আমি যা পেয়েছি তা এখানে :
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)
জেসি প্যাকেজের প্রাপ্যতার জন্য আমি যা পেয়েছি তা এখানে :
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)
এবং প্রসারিত প্যাকেজের প্রাপ্যতার জন্য আমি যা পেয়েছি তা এখানে :
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)
আপনার তালিকার আর যদি ব্যবহার করার জন্য একটি অশ্বাদির পৃষ্ঠে ফিতা হয় , grep ফিল্টার করতে : হ্যাঁ বা : YES লাইন ক্যোয়ারীতে প্রাপ্যতা ফাইল।
আমি আশা করি অন্য কেউ কেউ এটি দরকারী খুঁজে পেতে!