07/04/2023

מתקין החבילות של מיקרוסופט - הכירו את ה WinGet - המדריך המקיף.


אהלן לכם,
הרבה זמן שלא העלתי חומר לבלוג, ובנתיים אני רוצה להגיד לכם שהמדריך אודות ה PowerShell רץ מאוד חזק ברשת ואתם מגיבים אליו, ונותנים לי המון פידבקים, חיוביים, אז תודה רבה לכם על זה !


כאיש מחשוב שאוהב מאוד את שורת הפקודה, מיקרוסופט מאוד שימחה אותי עם כלי שנקרא WinGet, שמגיע מובנה בגירסאות האחרונות של ווינדוס 10 (21h2 ומעלה - אולי אני טועה, אני כבר שנה עם ווינדוס 11, אז אני לא בטוח באיזו גירסה זה מגיע מובנה), במהלך המדריך הזה, תלמדו כיצד להתקין את מתקין החבילות (שאגב נקרא WinGet) ונלמד כיצד לבצע איתו כל מיני פעולות כמו, התקנה שדרוגים והסרה בצורה שקטה, ניסיתי לבצע איתו אוטומיציה על ידי אינטגרציה בתוך סקריפטים של PowerShell אך זה לא ממש עבד, אם הצלחתם, תעדכנו אותי בתגובות, אשמח לשמוע כיצד ביצעתם את זה.

אז, נתחיל?

מה זה בעצם "מתקין חבילות" ולמה צריך את זה?

למעשה, מתקיני חבילות קיימים כבר שנים על גבי שנים במערכות הפעלה מסוג לינוקס, באובונטו יש את מתקין החבילות שנקרא apt, בפדורה לדוגמא יש את yam, למערכות הפעלה מסוג מיקרוסופט, יש כבר מזמן את Chocolatey, בעצם עם מתקיני החבילות האלה קרה שינוי מאוד גדול ומאוד פרודוקטיבי, בעצם ברגע שהאינטרנט חובר לכל מקום אפשרי, אין יותר צורך להחזיק מאגרי תוכנה מקומית בחברה או על כונני דיסקים בבית או לחלופין על DVD, הכל נמצא ברשת ובתוך שניות ניתן להוריד את רוב התוכנות, בין אם חינמיות ובין אם בתשלום, ובכמה שלבים, אתם נמצאים עם הגירסה הכי עדכנית עם התוכנה שלכם (לצערי הרב, בחלק גדול מהמקרים, העדכונים עושים יותר נזק מתועלת, אך מההבט האבטחתי, תמיד כדי להתקין את העדכונים שהחברות מוציאות) - במיוחד לאור העליה בתדירות נסיונות הפריצה בעולם ובישראל בפרט.

היום נתמקד במתקין החבילות שמיקרוסופט החליטו להטמיע במערכות ההפעלה שלהם לתחנות הקצה - Windows, ניתן לבצע המון פעולות עם WinGet אך אנו נתמקד בעיקריות:

לפני שתתקדמו ! שימו לב:
לפני שתמשיכו לקרוא, וודאו שאכן תוכלו להשתמש במדריך, פתחו את PowerShell והריצו את הפקודה WinGetבמידה וקיבלתם מידע אודות הפקודה, אז הכל תקין, אך במידה וקיבלתם הודעת שגיאה שאומרת שהמערכת לא מזהה את הפקודה winget, כנראה שאתם צריכים להתקין את Winget - ניתן לבצע התקנה מתוך חנות האפליקציות של מיקרוסופט, בצעו חיפוש של winget ובעצם יופיע כמה אפשרויות, אתם צריכים לבחור את האפשרות הזאת:




Search - נתחיל בדבר הכי טבעי, נצא מנקודת הנחה שאנחנו לא יודעים איזו תוכנה אנחנו מחפשים, ואנחנו מחפשים תוכנה חינמית לפריסת קבצי Zip - אז נריץ את הפקודה הכי טבעית - winget search zip (אני אוהב להשתמש ב Powershell אבל אתם יכולים להשתמש גם בשורת הפקודה הרגילה שהיא CMD, אגב אם עוד לא יצא לכם להשתמש ב PowerShell והייתם רוצים ללמוד על שורת הפקודה המדהימה הזאת, גם אם בחיים לא פתחתם אותו, בדיוק בשבילכם יש מדריך בין 10 חלקים למתחילים בדף ה"PowerShell" שנמצא כאן) והינה התוצאה של כלל התוכנות שיכולות לפתוח קיבוץ של זיפ:


ובעצם ניתן לראות את כלל התוכנות שנמצאו, חלקן מתוך חנות האפליקציות של מיקרוסופט MsStore וחלקן מתוך רשימה שמעדכנת הקהילה (לכן תקחו בחשבון שההתקנה היא בדרך כלל על אחריותכם, לדעתי האישית, אני לא חושב שמיקרוסופט תאפשר שיהיה קוד זדוני שיותקן דרך משהו שהיא מפרסמת), מה הבעיה ברשימה הזאת? זה שיש המון דברים ולך תדע עכשיו את מי כדי לנו להתקין, אבל נגיד שאנחנו מכירים את 7zip ואנחנו רוצים להתקין אותו, אז בעצם צריך לצמצם את הרשימה ולאפשר לנו ולבקש להציג לנו רק את 7zip, ובעצם נבצע את זה עם הפקודה הכי הגיונית שיש winget search 7zip ואז בעצם הרשימה תצטמצם:




עכשיו נגיד ובחרנו איזו שהיא חבילה, אבל אנחנו לא ממש יודעים מה "מסתתר" מאחוריה, ונרצה לקבל את המידע אודות החבילה הזאת, בדיוק בשביל זה, יש פקודה שנקראת Show, והיא בעצם מראה לנו מידע אודות החבילה.

Show - אז בשביל לקבל מידע אודות החבילה ולראות מאיפה בעצם היא הגיע למאגר התוכנות נריץ את הפקודה 
הבאה: winget show 7zip.7zip -למה דווקא בצורה הזאת? כי בדיוק בצורה הזאת היא כתובה בעמודה "Id" שזאת בעצם "תעודת זהות" של החבילה בשביל שהמערכת תדע להבדיל בינהן וגם אנחנו, אז בעצם לאחר שנריץ את הפקודה, נקבל מידע אודות החבילה הזאת:


ובעצם בצורה הזאת ניתן לראות שהכל נראה תקין לחלוטין, וניתן להתקין את התכונה הזאת ללא כל בעיה, בדיוק למטרה הזאת יש פקודה רלוונטית שנקראת Install.


Install - אז בעצם Install מאפשרת לבצע התקנה גם שקטה וגם "רגילה" (התקנה שקטה היא התקנה בלי חלונות קופצים ובלי אפשרות ללחוץ "הבא" או הסכמה או אי הסכמה להתקנה ובעצם הכל יותקן בצורה אוט'), בשביל לבצע התקנה בצורה הזאת נריץ את הפקודה winget install 7zip.7zip --silent ובעצם תוך שניות, הקובץ ירד למחשב שלנו, ולאחר מכן גם יותקן:

ישנן תוכנות שבכל מקרה יותקנו בצורה שקטה ויש כאלו שיראו לכם ממשק משתמש בסיסי, להלן רשימה של תוכנות שאני משתמש להתקנה אצל חלק מהמשתמשים שלי:

התקנה שקטה של ZOOM:

winget install -h --silent Zoom.Zoom

התקנה שקטה של אקרובט רידר:

winget install -h --id XPDP273C0XHQH2

התקנה שקטה של Advanced System Care (אני אוהב את התוכנה הזאת, היא מבצעת נקיון מעולה למחשב, מאחר ויש שם פרסומות, חלק מהאנטיוירוסים יכולים לחשוב שמדובר בווירוס, אך מנסיון רב שנים עם התוכנה הזאת, היא לא מכניסה וירוסים, וניתן להסיר אותה ללא בעיה בתום השימוש):

winget install IObit.AdvancedSystemCare

Upgrade - במידה ואני רוצה לבצע עדכון לתוכנה מסויימת ניתן לרשום את הפקודה : winget upgrade 7zip.7zip, במידה ואני לא יודע את מה אני צריך לעדכן ואני רוצה לבדוק אילו תוכנות במחשב צריך לעדכן,
ניתן לרושם את הפקודה : winget upgrade --all


ולאחר מכן הכל ברור - להלהן רשימה של כלל התכונות שצריך לעדכן במחשב, במידה ונרצה לעדכן תוכנה ספציפית במקרה הזה נרצה לעדכן את YandexDisk (תוכנת אחסון ענן חינמית של חברת Yandex הרוסית)
נרשום את הפקודה: winget upgrade Yandex.Disk:


לאחר כמה שניות, התוכנה כבר תהיה מעודכנת לגירסה האחרונה.

Uninstall - במידה ונרצה להסיר איזו תוכנה - הפקודה גם כן מאוד ברורה winget uninstall 7zip.7zip גם כן, ההסרה מתבצעת על פי "תעודת הזהות" של התוכנה.

List - משתמשת לבדיקת התוכנות שמותקנות אצלכם במחשב - במהלך כתיבת שורות אלו, החלטתי לבדוק כיצד הפלט של הפקודה הזאת יוצג גם בחלון של PowerShell וגם בחלון של CMD, ובעצם גיליתי את אחד ההבדלים, ה CMD לא הכי טוב בכל הנושא של "עברית" ובעצם אני אציג לכם את שתי סוגי הפלט שקיבלתי - ראשית - שימוש בפקודה, הפקודה שנריץ בשביל לקבל את רשימת התוכנות המותקנות - winget list:

פלט ראשון - PowerShell:

(שימו לב בבקשה לשורה השניה מלמעלה שמוצגת בצורה ברורה "בדיקת תקינות המחשב").

להלן פלט מתוך CMD:


(את אותו הטקסט נוכל לראות בכתב מראה מאחר ו CMD לא יודע להציג עברית בצורה תקינה)

לכן גם במקרה הזה נעדיף להשתמש ב PowerShell.

Export - נגיד ואני רוצה לבצע יצוא לרשימה של האפליקציות המותקנות, זה כמעט אפשרי, למה כמעט? כי בצורה הזאת, ניתן ליצא רק אפליקציות שניתן להתקין עם Winget או מתוך חנות האפליקציות של מיקרוסופט, לדוגמא תוכנה בשם Camtasia אי אפשר להתקין עם WinGet, לכן היא אומנם תוצג ברשימה של האפליקציות המותקונת, אך היא לא תוצג כאשר נבצע את היצוא, לכן שימו לב, במידה ולא תמצאו אפליקציה כזאת או אחרת, זה בסדר, כנראה אין אפשרות להתקין אותה דרך מתקין החבילות של מיקרוסופט.
בשביל לבצע את היצוא אני אשתמש בפקודה: winget export -o c:\app.txt - בפקודה הזאת הקובץ שתיצרו,
יופיע בכונן :C, בשביל שהוא יופיע אצלכם על שולחן העבודה (או בעצם אצל כל מחשב) נשתמש בפקודה הבאה:
winget export -o %USERPROFILE%\Desktop\apps.txt (ניתן לעשות העתק הדבק לתוך ה PowerShell).

Import - במידה ותרצו לבצע יבוא במחשב אחר של אותן האפליקציות, שביצעתם יצוא עבורן (שוב, שימו לב, ניתן ליצא ולייבא רק אפליקציות שיש בחנות האפקליציות של מיקרוסופט או WinGet), בצורה הזאת בעצם ניתן לבצע התקנה אוט' לגמרי של האפליקציות מהפקודה הקודמת, ניתן פשוט להריץ את הפקודה על המחשב החדש והכל יותקן אוט', לצורך כך נרשום את הפקודה וניתן את הנתיב שבו נמצא הקובץ שנוצר לנו בעקבות התהליך הקודם:
winget import -i %USERPROFILE%\Desktop\apps.txt

מקווה שנהנתם, כמו תמיד - יותר מאוחר יתווסף סרטון יוטיוב.

המייל שלי לכל שאלה: levl@leidertech.co.il