נתקלתי גם בשרשור שימושי זה (תודה רבה לתורמים קודמים: דברים מעולים!). עם זאת רציתי משהו מתוחכם יותר: בהינתן רשימת משאלות של חבילות תלויות, האם אוכל להשתמש בכדי לצוד אותן בהתפלגויות הרספביות השונות?
יצרתי כמה סקריפטים שאחרים עשויים למצוא בהם שימוש ( אתה יכול לשמור את אלה ב תיקיית הבית של המשתמשים שלך (או בכל מקום)). זכור ל chmod + x script-name.sh לאחר שיצרת אותם או שתתקשה להריץ אותם.
הראשון הוא get-available.sh):
#! / bin / bashdist = jessie [$ {# 1} -gt 0] && dist = $ 1 [! -e / home / pi / $ {dist}] && mkdir / home / pi / $ {dist} pushd / home / pi / $ {dist} &> / dev / null [! -e ./Packages] && echo אחזור רשימת חבילות עבור $ {dist} ... [! -e ./Packages] && wget http://archive.raspbian.org/raspbian/dists/${dist}/main/binary-armhf/Packagesgrep -P '^ חבילה:' חבילות | חתוך -d '' -f2 > זמין [! -e ./wishlist] && touch ./wishlistpopd &> / dev / null
אתה מריץ את זה והוא מביא את רשימת החבילות להפצה נתונה (ברירות מחדל ל ג'סי חזק >):
./get-available.sh [<distribution-name>]
זה גם יוצר טקסט ריק רשימת משאלות קובץ בתיקיית הפצה שזה עתה נוצרה (בדוק תחילה שאין לך תיקיות בשמות אלה בתיקיית הבית שלך, או שתוכל להחליף משהו): תוכל לערוך זאת כרשימת חבילות המופרדות בין השורות, ואלה שאתה מקווה למצוא שהן כלול בהפצה אותה אתה מחפש.
התסריט השני הוא זמין.ש :
#! / bin / bashdist = jessie [$ {# 1} -gt 0] && dist = $ 1
[! -e / home / pi / $ {dist} / available] && echo אתה צריך לרוץ קודם ./get-available.sh $ {dist}! [! -e / home / pi / $ {dist} / זמין] && exitpushd / home / pi / $ {dist} &> / dev / null [-e ./availability] && rm. / זמינות-לביצוע [$ {# 1} -gt $ {mlen}] && mlen = $ {# 1}} ניתן לבדוק את הפונקציה () {matches = $ (grep -o "^ $ 1 $" ./available | wc -l) if [$ {matches} -eq 0] ואז printf "% - $ {mlen} s: NO (% s) \ n" $ 1 $ {dist} >> ./availability else printf "% - $ {mlen} s: YES ( % s) \ n "$ 1 $ {dist} >> ./availability fi} חבילות סידור מחדש < ./wishlistfor p ב-" $ {חבילות [@]} "do pw = $ (הד $ {p} | tr -d '\ n ') סמן את הלוח "$ {pw}" לדף p ב- "$ {חבילות [@]}" do pw = $ (הד $ {p} | tr -d' \ n ') זמין "$ {pw } "נעשה [-e ./availability] && cat ./availabilitypopd &> / dev / null
לאחר שתגדיר את רשימת המשאלות אתה מריץ את זה וזה סורק רשימת החבילות עבור אותם עמ ' ackages (ברירת מחדל ל ג'סי ) :
./check-available.sh [<distribution-name>]
כמו גם הפקה למסוף שומרת את פלט החיפוש לקובץ זמינות בתיקיית המשנה לחיפוש הפצה.
הנה דוגמה (שלי) ל רשימת המשאלות :
vimwgetsoftware-properties-commonpython3.5libsodium13python3-piporacle-java8-installeroracle-java8-set-defaultlibgmp3-devlibssl-devflexbison
הנה מה מצאתי חזק> צפצוף זמינות חבילה:
vim: YES (wheezy) wget: YES (wheezy) תכונות תכונה נפוצות: 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) ביזון: YES (wheezy)
הנה מה שמצאתי עבור זמינות חבילה ל ג'סי
vim: YES (jessie) wget: YES (jessie) תכונות תכונות נפוצות: 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) תכונות תכונות משותפות: YES (מתיחה) 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 (מתיחה) libssl-dev: YES (מתיחה) flex: YES (מתיחה) ביזון: YES (מתיחה)
אם הרשימה שלך ארוכה יותר, זהו סינמה להשתמש ב grep כדי לסנן את השורות : YES או : NO לשאילתת קבצי ה זמינות
אני מקווה כמה אחרים מוצאים את זה שימושי!