متجر تطبيقات لينكس المجهول الذي يتفوق على فلاثاب بعدد حزمه الهائل

Cybersecurity Arab
نظام نكسوس مع نافذة الطرفية مفتوحة

ما هو Nixpkgs ولماذا يعد عدد حزمه مذهلاً؟

Nixpkgs هو أكبر مستودع لحزم Nix ووحدات NixOS، مستضاف على GitHub ويدعمه مجتمع مفتوح المصدر عالمي بالإضافة إلى مؤسسة NixOS. إنه أقل شبهاً بمتجر تطبيقات وأكثر شبهاً بكتاب وصفات ضخم تتم صيانته من قبل المجتمع. كل إدخال ليس عبارة عن حزمة ثنائية معزولة في صندوقها الخاص، بل هو مجموعة قابلة للتكرار من التعليمات لبناء برنامج من المصدر، موضحاً كل تبعية وكل علامة بناء وكل تصحيح مطلوب.

I found the Linux app store nobody mentions and it has more packages than Flathub

في إصدار NixOS 250.05 وحده، تم إضافة 7840 حزمة جديدة، وتحديث 28054 حزمة موجودة، وإزالة 1694 إدخالاً عتيقاً للحفاظ على المجموعة نظيفة ومحدثة وآمنة. إنه مستوى من الصيانة الذي تحلم به معظم المشاريع.

Nixpkgs هو مجموعة حزم مفتوحة المصدر لنظام Nix البيئي، ويضم أكثر من 100 ألف حزمة يمكن تثبيتها بشكل قابل للتكرار عبر لينكس وغيرها من المنصات.

صورة توضيحية من المقال
صورة توضيحية من المقال

لماذا يبقى نظام Nix البيئي نيتشاً بشكل مفاجئ؟

السبب الرئيسي وراء عدم سماعك عن Nixpkgs، خاصة أثناء مقارنة مدراء الحزم، هو أنه يعيش في قسم مختلف تماماً من عالم لينكس: NixOS. NixOS هو توزيع لينكس مبني بالكامل حول مدير الحزم Nix ونموذج التكوين التصريحي الخاص به. إذا لم تستخدم NixOS من قبل، فمن المحتمل أنك لم تسمع عن Nixpkgs أيضاً.

على النقيض، يعمل فلاثاب على أي توزيع لينكس تقريباً بمجرد أمر واحد. هناك أيضاً منحنى التعلم. أجبرتني NixOS على الإعلان عن نظام التشغيل بدلاً من بنائه، وهذا فرق جوهري في كيفية استخدامنا لأجهزة الكمبيوتر. يستخدم Nix أيضاً إعداداته الخاصة لتعريف الحزم وحالات النظام. مقارنة بالنقر على زر التثبيت في صفحة فلاثاب، فإن كتابة تعبير Nix أكثر تعقيداً، ناهيك عن أنه لا يعمل إلا عبر الطرفية. هذا يخلق قدراً كبيراً من الاحتكاك أثناء onboard المستخدمين الجدد، حيث يتعين عليهم تغيير فهمهم الكامل لكيفية تثبيت التطبيقات وعملها على أنظمة التشغيل الخاصة بهم.

صورة توضيحية من المقال

ومع ذلك، فإن المكافأة ضخمة. مقابل التعقيد الأولي، تحصل على بيئات قابلة للتكرار بالكامل، وترقيات ذرية، وعمليات رجوع سهلة، وقدرة على تشغيل إصدارات متعددة من نفس البرنامج دون حدوث تعارضات في التبعيات. بمجرد أن يتضح لك أسلوب Nix، يصعب العودة عنه.

NixOS هو توزيع لينكس يستخدم نظام تكوين تصريحي لبناء وإدارة نظام التشغيل بالكامل بشكل قابل للتكرار من مصدر واحد للحقيقة.

صورة توضيحية من المقال

لا تحتاج إلى NixOS للاستفادة من Nixpkgs

إذا أعجبك مفهوم Nixpkgs لكنك لا تريد التبديل إلى NixOS لاستخدامه، فلا داعي لذلك. يمكنك تثبيت مدير الحزم Nix على أي توزيع لينكس، تماماً مثل فلاثاب. أمر واحد من curl يجعل Nix يعمل على نظامك، وبعد ذلك يمكنك تثبيت الحزم دون أن تمس نظام مدير الحزم الأصلي لديك. كل شيء يعيش في /nix/store، معزول تماماً، لذا لا يوجد أي تعارض مع apt أو غيره من مدراء الحزم.

curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install --daemon

الطريقة الأفضل للقيام بذلك، ومع ذلك، هي باستخدام Home Manager، وهو أداة تسمح لك بإدارة بيئة المستخدم بشكل تصريحي باستخدام Nix على أي نظام لينكس. تعلن عما تريده—الحزم، وملفات التكوين، والمتغيرات البيئية—ويبني Home Manager ذلك. يمكنك أيضاً تشغيل قشرة مؤقتة بأي حزمة تحتاجها باستخدام الأمر:

nix shell nixpkgs#package-name

اختبرها ثم ابتعد دون أن تترك أي فوضى في نظامك.

عدد الحزم ليس هو القصة الحقيقية

قابلية التكرار والتناسق هما الميزتان الحقيقيتان. حجم Nixpkgs مذهل، لكن الميزة الحقيقية ليست في عدد الحزم التي تحصل عليها. بما أن كل حزمة تُعرف بلغة Nix المشتركة، يمكن لأي مساهم مراجعة وتحديث أي حزمة، حتى تلك التي لا يديرها شخصياً. هذا هو السبب في أن المستودع يتوسع بهذه الطريقة. هناك آلاف المساهمين الذين يبقون أكثر من 140 ألف حزمة محدثة. لا يوجد أي نظام تغليف آخر في لينكس يقترب من ذلك.

وبما أن Nix يبني الحزم في عزلة تامة، ويحسب تجزئة فريدة من كل تبعية وملف مصدر وتعليمات البناء، فإن تثبيت أو ترقية حزمة واحدة لا يمكن أن يكسر أخرى. هذا ضمان لا تستطيع معظم مدراء الحزم تقديمه. كما تحصل أيضاً على عمليات رجوع متكاملة على كل مستوى، لذا إذا تسبب الترقية في حدوث مشكلة، يمكنك العودة إلى الوضع السابق بأمر واحد بدلاً من استعادة نسخة احتياطية.

فلاثاب متجر تطبيقات جيد وسيواصل القيام بما يفعله بشكل جيد. لكن إذا كنت تريد بالفعل نطاقاً واسعاً من برامج لينكس في مكان واحد—مُعززاً بشكل مفرط، ومحدثاً باستمرار، ومتوفراً على توزيعتك الحالية—فإن Nixpkgs هو الخيار الأمثل. قد يكون من الصعب استخدامه في البداية، لكنه يضع عالم برامج لينكس بين يديك، دون أي مشكلات.

إرسال تعليق