
NixOS חוזר עם, Nix OS 25.11, גרסה שמביאה שינויים עמוקים מאוד הן במערכת עצמה והן במערכת האקולוגית העצומה של חבילות המקיפה אותה. שם הקוד "Xantusia", היא זמינה כעת ומגיעה עמוסה בתכונות חדשות ומעניינות עבור מחשבים שולחניים, שרתים, פיתוח ופריסות ענן, אך גם עם מספר לא מבוטל של אי-תאימות וחבילות שהוצאו משימוש שיש לבדוק בקפידה לפני העדכון.
במאמר זה נראה כל החדשות החשובות מ-NixOS 25.11 וחבילת הבסיס של Nixpkgs: עדכונים מרכזיים כגון GNOME 49, LLVM 21 ו-ROCm 6.3; שינויים משמעותיים ב-Go, Rust, Node.js, PostgreSQL ו-Docker; שירותים ששונים; מודולים חדשים; ואפשרויות תצורה נוספות. נדון גם במחקר מקרה מהעולם האמיתי הכולל בעיות פרוקסי בעת קומפילציית Discord וכיצד לטפל בהן בסביבה חדשה זו.
NixOS 25.11 "Xantusia": נתוני מחזור חיים והשקה
הגרסה היציבה החדשה, ניקסוס 25.11 "קסנטוסיה"כעת ניתן להתקין ולעדכן אותו בכל מערכת באמצעות ערוצים יציבים. מהדורה זו תקבל תיקוני אבטחה ותיקוני באגים במשך שבעה חודשים, עד 30 ביוני 2026, כך שזהו השדרוג המומלץ החדש אם אתם מגיעים מגרסה קודמת.
היציבה הקודמת, NixOS 25.05 "וורבלר", רשמית מיושן ויפסיק לקבל עדכוני אבטחה החל מ-31 בדצמבר 2025. אם אתם עדיין בגרסה 25.05 או בענף ישן אף יותר, זה זמן טוב לתכנן ברוגע את המעבר שלכם לגרסה 25.11, תוך סקירת השינויים הלא תואמים שנפרט לאורך טקסט זה.
השקה זו היא גם הצגה של קצב התפתחות של הפרויקט. בין NixOS 25.05 ל-NixOS 25.11, השתתפו 2742 תורמים, שחתמו יחד על לא פחות מ-59.430 התחייבויות ל-Nixpacks ולתצורת המערכת. מאחורי נתונים אלה מסתתרים כל דבר, החל מתיקונים קלים ועד חבילות שוליות ועד עיצובים מחדש משמעותיים של מודולי הפצה קריטיים.
Nixpkgs: חבילות שנוספו, עודכנו והוסרו מ-NixOS 25.11
אוסף החבילות Nixpkgs, שהוא ה- שדרה לא רק NixOS, אלא כל מערכת המשתמשת במנהל החבילות של Nix בלינוקס או macOS עברה תחזוקה מסיבית במחזור זה.
מצד אחד, היו נוספו 7002 חבילות חדשותהרחבה נוספת של מגוון התוכנות הזמינות. זה כולל הכל, החל מכלי פיתוח מתקדמים ועד יישומי שולחן עבודה, כלי ניהול ותוכנות מדעיות.
במקביל, לצוות יש עודכנו 25.252 חבילות קיימותזה מבטיח שרוב התוכנות הפופולריות מעודכנות לגרסאות האחרונות, במיוחד אלו עם תיקוני אבטחה ושיפורי ביצועים. זה קריטי בסביבות שבהן שחזור חיוני תוך שמירה על עדכניות סבירה.
כדי לשמור על מאגר ניהולי ואבטחה, Nixpkgs ביצעה 6338 חבילות ישנות הוסרו שלא תוחזקו עוד, היו שבורים, או הפכו למיושנים במעלה הזרם. במקרים רבים, קיימות חלופות ישירות בתוך עץ ה-Nixpkgs עצמו, אך במקרים אחרים, הן פשוט הופכות לזמינות כדי להימנע מבעיות אבטחה או קומפילציה.
מודולים ואפשרויות תצורה של NixOS
בנוסף לחבילות שלה, NixOS מאופיינת במערכת מודולים הצהרתית חזקה. מחזור זה כלל 107 מודולים חדשים שולבועדכונים אלה מוסיפים תמיכה בשירותים, דמונים, יישומים ותצורות מערכת חדשות. הם גם מביאים 1778 אפשרויות תצורה חדשות, מה שמגדיל עוד יותר את רמת הפירוט שבה ניתן לתאר מערכת.
מצד שני, היו הוסרו 41 מודולים ו-807 אפשרויות תצורה שהתיישנו, פגומות או הוחלפו בחלופות מודרניות יותר. אם אתם משתמשים שוב בתצורות ישנות יותר, מומלץ לעיין בהודעות היציאה מהשימוש כדי להתאים את הקבצים שלכם לפני השדרוג.
תכונות חדשות בולטות בשולחן העבודה: GNOME 49 "ברשיה"
אחת התכונות החדשות הגדולות עבור משתמשי מחשב שולחני היא העדכון ל- GNOME 49 "ברשה"גרסה זו של סביבת שולחן העבודה עושה צעד מכריע לעבר Wayland ומבטלת את הסשן מבוסס X11, דבר שעשוי להיות שינוי משמעותי אם תשמרו תצורות או הרחבות ישנות יותר שתלויות במפורש ב-Xorg.
GNOME 49 משלב יישומים חדשים זה כולל נגן וידאו משופץ ומציג מסמכים מעודכן, כמו גם לוח שנה שעוצב מחדש ושיפורים קטנים רבים בחוויית המשתמש. מומלץ לעיין בהערות השחרור הרשמיות של GNOME אם אתם מסתמכים על פונקציונליות ספציפית מאוד או הרחבות מורכבות.
מהדרים ושרשראות כלים של C: LLVM, GCC ו-CMake
במקטע הקומפילציה, עדכוני NixOS 25.11 LLVM לגרסה 21זוהי קפיצת מדרגה משמעותית עבור מפתחים המשתמשים ב-C, C++ או Rust עם כלי Clang. גרסה זו כוללת שיפורי אופטימיזציה, יעדים חדשים נתמכים והתאמות לאזהרות שעלולות לגרום לשינויים בהתנהגות בפרויקטים מסוימים.
המהדר GCC נשאר בסניף 14זוהי גרסה שכבר הוקמה ונבדקה בתהליכי ייצור. זה מקל על שמירת תאימות עם פרויקטים שעדיין תלויים במשפחת מהדרים זו מבלי להיתקל בשינויים משבשים בכל עדכון מערכת.
מצד, CMake עודכן לגרסה 4זה יכול לאפשר תכונות חדשות במערכות בנייה מודרניות, אך עשוי גם לדרוש התאמות בפרויקטים שהשתמשו בתחביר או בפקודות מיושנים. אם יש לכם תבניות CMake ישנות יותר, מומלץ להריץ בדיקות בנייה לפני סיום ההעברה.
GPU, מחשוב ושינויים ב-ROCm ו-CUDA
עבור אלו שעובדים עם האצת GPU, הענף שדרוג rocmPackages_6 ל-ROCm 6.3בעוד rocmPackages_5 הוא מוסר מהעץ. חלקים מסוימים עוברים ארגון מחדש: rocmPackages.rocm-thunk זה נעלם כחבילה נפרדת ומשולב בתוך rocmPackages.clr, ו rocmPackages.clang-ocl הוא פורש לאחר שננטש על ידי AMD בשנת 2023.
במקביל, התמיכה הרשמית ב-CUDA 10 אבדהכפי שכבר הוזכר בהערות השחרור של NixOS 24.11, משתמשים שעדיין תמכו בחומרה ישנה מאוד צריכים לשקול שדרוג ה-GPU שלהם או לבדוק אם ישנן חלופות מתוחזקות מיצרנים או מערכות תמיכה אחרות.
דפדפן, פרוקסי ובעיות בהרכבת דיסקורד
בעיה מעשית אחת שעלתה בגרסה זו היא שימוש בפרוקסי במהלך קומפילציותמשתמש מתאר כיצד הוריד בהצלחה את הקובץ. discord-0.0.116.tar.gz מהדפדפן באמצעות הפרוקסי של החברה, אך בעת הפעלת nixos-rebuild ההורדה עם curl נכשלת שוב ושוב עם שגיאה curl: (35) Recv failure: Connection reset by peer עד שכל הניסיונות ימוצו.
הודעת השגיאה של ניקס מציינת ש לא ניתן היה להוריד את ה-tarball של דיסקורד ללא מראה, ובכך שובר את הגזירה discord-0.0.116.tar.gz.drv ובתורו, בניית סביבת המשתמש והמערכת כולה. למרות שהיומן מציג אזהרות על ניסיונות חוזרים אוטומטיים, משתנים כגון https_proxy o all_proxyזה מצביע על כך שסביבת זמן הריצה בתוך ארגז החול של הבנייה אינה רואה את תצורת הרשת של המשתמש.
ב-NixOS, ה- משתני סביבת פרוקסי סטנדרטיים ייתכן שהם לא יועברו ישירות למזלגות אם נעשה שימוש ב-sandbox קפדני או אם תצורת המערכת אינה מייצאת אותם ל-builds. הפתרון הטיפוסי כרוך בהגדרת אפשרויות Nix כ- nix.extraOptions לכלול http_proxy, https_proxy וחברה, או להשבית זמנית את ארגז החול עבור מכונה זו (לא מומלץ לטווח ארוך) תוך כדי התאמת שרת הפרוקסי כדי לאפשר תעבורה מכתובת ה-IP של הבונה.
אפשרות נוספת היא לפנות ל מטמונים בינאריים שכבר מכילים דיסקורד או חבילות בעייתיות אחרות, ובכך מונעות מניקס להוריד את קבצי המקור ישירות. בכל מקרה, שגיאות רשת מסוג זה הופכות רלוונטיות יותר בגרסה כמו 25.11, אשר מזיזה כל כך הרבה חלקים בבת אחת ויכולה להביא להתנהגויות שונות באופן שבו כתובות URL נפתרות.
רשת, קונטיינרים ושירותי אינטרנט
בתחום הרשתות והקונטיינרים, NixOS 25.11 מציג שינויים משמעותיים. שדרוגי פרוקסי HTTP של Squid לגרסה 7גרסה זו כוללת מספר שינויים שאינם תואמים, כגון הסרת פונקציונליות ESI. לצורך התאמות בהגדרות המותאמות אישית שלך, מומלץ לעיין בהערות הגרסה של Squid.
ברמת התזמור, עדכוני containerd לענף 2.x שלוזה מביא עמו מספר שינויים התנהגותיים. בין אם אתם משתמשים ב-containerd ישירות או כרכיב של פלטפורמה, חיוני לעיין בתיעוד של containerd 2.0 כדי למנוע הפתעות בתהליך הייצור.
בעולם הדוקר, docker_24 הוסר מהעץ מכיוון שהוא כבר לא נתמך ויש לו פגיעויות ידועות מאז יוני 2024. הרעיון הוא לדחוף התקנות לגרסאות חדשות יותר ומתוחזקות של Docker.
לגבי שרתים ולוחות בקרה, NetBox עודכן לענף 4.2עם שינויים משמעותיים ברמות הסכימה וההתנהגות. גרסה 4.0.x הוסרה מהעץ, ומומלץ למשתמשים לעקוב אחר ההודעות לעדכונים 4.1 ו-4.2 לפני השדרוג. שירותים אחרים כגון מטומו הם עוברים לשימוש בגרסה 5 כברירת מחדל (גרסה 4 אינה נתמכת עוד), והחבילה מוסרת. matomo-beta מכיוון שכעת קל להחליף את הגרסה מ overrideAttrs.
גם קפקא עושה קפיצה משמעותית: אפאצ'י קפקא עודכן לענף 4.0שאינו תומך עוד ב-ZooKeeper. יש להעביר את כל ההתקנות למצב KRaft, בהתאם להנחיות קרן Apache. ב-NixOS, זה כרוך בסקירת תצורות כדי להסיר אזכורים ל-ZooKeeper והתאמת פריסות ברוקרים.
שירותים, דמונים ויישומים שמשתנים או נעלמים מ-NixOS 25.11
רשימה של חבילות ושירותים ששמם שונה, עודכנו באופן לא תואם או הוצאו משימוש זה ארוך מאוד במחזור הזה, סימן לנכונות לנקות את העץ של תוכנה ישנה או בעייתית.
כמה דוגמאות בולטות: גקראקן זה נעלם ומומלץ להשתמש בו coolercontrol כחלופה; תוספות opensmtpd הוא מוסר מכיוון שהוא אינו תואם ל-OpenSMTPD 7.6.0+, מה שמפנה את מקומו לחבילות ספציפיות. opensmtpd-table-*; זמד זה מפסיק לתמוך ב-MySQL ומכריח משתמשים לעבור ל-PostgreSQL לפי המדריך הרשמי.
בעולם השמות, מינטסט נקרא כעת לואנטי כדי לשקף את השינוי במעלה הזרם, אך כינויים נשמרים כדי למנוע שיבושים מיידיים. באופן דומה, שינויים ב-poac לחבילת הקבינות, דרקון-אקס הופך לדרקון-זרוק (עם xdragon (כשם בדוי) ו רחוב סידק76 שמו שונה ל st-snazzyיש גם אותיות קטנות: הגופן רציני-סנס זה נסוג משום ש-upstream שינתה את השם ל-Serious Shanns, עדיין לא ארוז.
פרויקטים אחרים פשוט מאוחסנים בארכיון: gkraken, ארעית, קולית, פלוקסוס, sm64ex-coop, nexusmods-app, nodePackages.ganache ורבים אחרים מסומנים כשבורים, לא מתוחזקים או לא בטוחים והוסרו מ-Nixpacks. במספר מקרים, מוצעת חלופה (לדוגמה, sm64coopdx כדי להחליף את sm64ex-coop, או gnome-podcasts y kasts כדי להחליף תנועה).
בסביבת המסרים והפרטיות, החבילות סיגנלד, סיגנלדקטל וסגול-סיגנלד הם מופסקים עקב חוסר תאימות ממושך עם השרתים הרשמיים של Signal ועם שרת Matrix. תְעָלָה הוא סומן כפגיע לאחר שהופסק על ידי מפתחיו.
גרסאות חדשות ושינויי התנהגות ביישומים פופולריים
מלבד ההיעלמויות, אפליקציות רבות מתעדכנות עם שינויים התנהגותיים שמפריעים להתאמה. לדוגמה, סוכן גרפנה והמודול שלו הם עוזבים את הזירה לטובת Grafana Alloy, שכבר יש לה שירות משלה. services.alloyגרפנה ממליצה לעבור ל grafana-alloy ומספק תיעוד להשלמת ההעברה.
גם המערכת האקולוגית של צגים ופאנלים מתפתחת: פרומתאוס עושה את הקפיצה לענף 3.xעם רישומי הגירה רשמיים, בעוד קנטה, אותליה, helmfile, סוכן מדיניות פתוח וחבילות רבות אחרות מעודכנות לגרסאות עיקריות עם שינויים בתחביר, פורמטי תצורה וערכי ברירת מחדל. בפרט, OPA גורם rego.v1 הוא כעת סגנון ברירת המחדל, מסמן את תחביר v0 כתורשת, למרות שמצב תאימות עדיין קיים.
עולם שולחן העבודה לא רחוק מאחור: GIMP 3.0 מופיע כ-gimp3, סטרוברי עודכן לסדרה 1.2 ונוטש את VLC ואת ה-backend של Qt5 (החבילה נעלמת) strawberry-qt5 וכמה אפשרויות עם GStreamer/VLC), רופי זה עובר מגרסה 1.7.5 לגרסה 1.7.6 עם שינויי ABI בתוספים בינאריים, ו טאון 7.9.0+ מסד הנתונים שלך מועבר לסכימה שאינה תואמת לאחור, לכן מומלץ לבצע גיבוי של ~/.local/share/TauonMusicBox לפני פתיחת הגרסה החדשה.
בתחום פיתוח אתרים ו-JavaScript, nodejs_latest מתפתח לסדרה 24.x, מסולקים nodejs_23 y nodejs_18ומנקה חבילות Node שמעולם לא היו צריכות להיות גלובליות (כגון webpack-dev-server, copy-webpack-plugin, expo-cli o create-react-native-app), עם ההמלצה להתקין אותם ברמת הפרויקט. כלים כגון pnpm קופץ לגרסה 10 עם חבילה משנית pnpm_9 למי שצריך תאימות.
ישנן גם התאמות לגופנים: nerdfonts מחולק לחבילות נפרדות תחת מרחב השמות nerd-fonts ונתיבי ההתקנה של הגופנים משתנים, כעת ישנן ספריות לפי סוג גופן (<fontDirName>זה מאלץ אותנו להתאים תצורות שהצביעו על המסלולים הישנים.
שינויים בליבת המערכת, בחומרה ובסביבת המערכת
ברמת המערכת, זה נטוש תמיכה מלאה ב-Darwin של 32 סיביותשמירה על פלטפורמות מודרניות בלבד. יתר על כן, התצורה המשולשת של aarch64-darwin תואם את arm64-apple-darwin, בהתאם לציפיות של אפל ו-LLVM.
El paquete טייניסי לאחר מכן הוא מפריד את הפלטים ל dev, doc y lib, עושה tinycc.out הוא מכיל רק את הקבצים הבינאריים של tcc ואת ה-cross-compilers. ב-TPM, tpm2-pkcs11 זה מתקמפל ללא תמיכה ב abrmd כברירת מחדל, הוא נותן עדיפות למנהל משאבי הליבה; אם אתה זקוק לגרסה עם abrmd, היא קיימת. tpm2-pkcs11.abrmdומודול NixOS בוחר אוטומטית בהתאם security.tpm2.abrmd.
באודב, הכללים של libjaylink עכשיו הם דורשים להשתייך לקבוצה. jlink במקום plugdevזה היה מאוד נדיר ב-NixOS. הגישה מותרת גם דרך מושבים, כך שההשפעה מוגבלת אם משתמשים במחשב שולחני סטנדרטי.
האביזרים mkBinaryCache הוא עובר מודרניזציה ומתחיל להשתמש בו zstd כדחיסה ברירת מחדל
עבור מטמוני הבינאריים שנוצרוהאפשרות להמשיך נותרת פתוחה. xz דרך compression = "xz";זה משפר את הביצועים ביצירת וצריכה של קבצים בינאריים ברוב המקרים.
באפשרויות הרשת, networking.nat.externalIP ו-externalIPv6 משנים את התנהגותםהכללים של networking.nat.forwardPorts כללים אלה חלים כעת רק על חבילות המיועדות לכתובות IP שצוינו במפורש. זה מונע הפניות בלתי צפויות, אך ייתכן שיהיה צורך להתאים הגדרות NAT קיימות.
בניהול מערכת קבצים, ההגדרות מערכות קבצים (כגון fileSystems."/") מוגדרות באמצעות lib.mkDefault ממודולי NixOS, מה שמאפשר להחליף את כולם בבת אחת אך גורם לשגיאות אם רק מאפיינים בודדים מוחלפים מבלי לציין deviceאחרת, ייתכן שתיתקל בהודעות כמו No device specified for mount point '/'.
עריכת טקסט, סביבות פיתוח ומגוון כלי עזר של NixOS 25.11
ביקום Emacs, NixOS 25.11 הסר את Emacs 28 ו-29גם הגרסה הסטנדרטית וגם גרסת Macport עבור Emacs 28 כלולות. גרסת Macport של Emacs 29 נשמרת אך עם תיקונים עבור פגיעויות ידועות. גם Racket עובר גיזום: racket_7_9 הוסר עקב חוסר בטיחותלדחוף להשתמש ב-Racket 8, ובכך לבטל שטף, אשר הסתמכה על גרסה לא מתוחזקת זו במשך שנים.
מנוע חיפוש הטקסט binwalk 3.1.0 הוא נכתב מחדש ב-Rust, ומודול Python המשויך אליו הופך לזמין; כלי החשבונות האישיים python3Packages.beancount זה עולה ל-3.1 כאשר הסדרה הקודמת נשמרת כ- beancount_2בדוא"ל ובממשק שורת פקודה (CLI), tldr זה עובר לשימוש בלקוח Python במקום ב-C, ו הימאליה הוא מתעדכן לגרסה 1.1.0 עם שינויים פורצי דרך הדורשים סקירת תצורה.
בכלים שונים, nq 1.0 משנה את שמות ה-fq וה-tq ל-nqtail ו-nqterm, zf 0.10.2 זה משנה את האופן שבו הוא מטפל ביוניקוד וברצפי בריחה, ו ast-grep הסר את הפקודה sg כדי למנוע התנגשויות עם כלי עזר צל, ועדיין לאפשר גרסת תאימות מדור קודם enableLegacySg = true;.
במקביל, משפחת פונקציות הלוג הסטנדרטיות ניקסלוג* הוא נכתב מחדש כדי להוסיף קידומת לרמת הבאגים ולשם הפונקציה הקוראת, ומוצג מחדש nixLog כלוחם נתונים ללא תנאי שמוסיף גם את הקשר הפונקציה. זה מקל על איתור באגים של נגזרות ו-hooks מורכבים.
לבסוף, כמה כלי בדיקה כגון testers.shellcheck עכשיו הם מזהירים אותך אם המאפיין לא סופק. nameאשר יהפוך לחובה בגרסאות עתידיות. וב-Haskell, testTarget מסומן כמיושן בזכות testTargets, אשר מקבל רשימה מפורשת של מטרות במקום מחרוזת מופרדת ברווחים.
גרסת NixOS 25.11 מאחדת מספר עצום של שינויים, החל משולחן העבודה של GNOME 49 ועדכוני חבילות מסיביים ועד להתאמות עמוקות בשרשראות כלים, שירותי רשת ומדיניות תאימות, מה שהופך אותה לגרסה מרכזית עבור כל מי שרוצה לשמור על סביבת Nix שלו מעודכנת מבלי לאבד את... יציבות ושחזור שמאפיינים את הפרויקט.