4 أسباب دفعتني للبحث عن بدائل لنظام NixOS: تقييم ومقارنة بالأنظمة المنافسة
أستخدم NixOS منذ بضعة أشهر وأستمتع به كثيرًا، لكن منحنى التعلم فيه أشبه بجدار شاهق. حتى بعد مرور أشهر، ما زلت أضطر لقضاء بعض الوقت في فهم الأساسيات. لم أكن أمانع في ذلك حتى أدركت أن لدي حياة ويمكنني فعل شيء أفضل بوقتي، مثل تجربة توزيعة أكثر عدم استقرارًا. بغض النظر عن المزاح، أنا الآن أبحث عن بديل لـ NixOS، والأسباب لا تقتصر على منحنى التعلم.
منحنى التعلم شديد الانحدار
حتى لو كنت مستخدمًا متمرسًا لنظام Linux
NixOS ليس توزيعة Linux نموذجية. إنه يقدم نهجًا مختلفًا جذريًا يمكن أن يربكك إذا لم تكن تقنيًا. يتم التكوين عبر لغة Nix، وهي نظام وظيفي تصريحي، مما يعني أنه يجب عليك تحديد نظامك بالكامل في التعليمات البرمجية بدلاً من استخدام الأدوات المألوفة أو الأوامر الفردية. لتحقيق إعداد NixOS مستقر وقابل للتكرار، تحتاج إلى فهم تصميم Nix وإدارة النظام بشكل تصريحي بدلاً من مجرد تشغيل عمليات تثبيت الحزم كما تفعل على Ubuntu أو Fedora.
أنا مستخدم Linux ذو خبرة لا بأس بها، وما زلت أواجه صعوبة في استخدامه في بعض الأحيان. شخصيًا، لا أوصي بـ NixOS للمستخدمين الذين ليس لديهم خبرة سابقة في Linux أو البرمجة، إلا إذا كان لديهم الكثير من الوقت.
المهام التي تعتبر تافهة على Ubuntu، مثل تثبيت حزمة أو تعديل ملف تكوين، قد تتطلب منك كتابة أو تغيير تعبيرات Nix وإعادة بناء النظام. يصبح هذا التعقيد أكثر وضوحًا عندما تسوء الأمور. يمكن لنظام الوحدات الفريد في NixOS أن ينتج رسائل خطأ غامضة يصعب فك شفرتها. قد ترى أخطاءً مبهمة، مثل مشكلة تكرار لانهائي، دون أي تلميحات واضحة حول الخطأ الذي حدث أو كيفية إصلاحه.
كل هذا يعني أنك ستحتاج إلى استثمار وقت كبير في تعلم مفاهيم NixOS مقدمًا، أكثر بكثير مما هو مطلوب مع توزيعات سهلة الاستخدام مثل Ubuntu أو Linux Mint. لقد استخدمت Arch Linux، وحتى صعوبته تقتصر في الغالب على التثبيت الأولي. مع NixOS، سير العمل بأكمله مختلف، مما يتطلب تعلمًا وجهدًا مستمرين.
التجربة ليست الأكثر سهولة في الاستخدام
يتطلب بعض التعود
بالإضافة إلى صعوبة تعلمه، قد يبدو نظام NixOS معقدًا للاستخدام اليومي. يتوقع منك النظام إدارة كل شيء تقريبًا من خلال ملفات التكوين النصية وأدوات سطر الأوامر. على عكس Ubuntu أو Fedora، اللذين يوفران إعدادات رسومية سهلة الاستخدام وتكوينًا تلقائيًا للعديد من المهام، يضع NixOS مسؤولية الحفاظ على نظامك على عاتقك عبر ملف configuration.nix أو flake واحد. لم أمانع حقًا في هذا، ولكن بالنسبة للاستخدام اليومي وحالة استخدامي، لم يكن الأمر منطقيًا.
على سبيل المثال، يتطلب تثبيت برنامج تشغيل جديد أو تمكين خدمة نظام على NixOS تعديل ملف التكوين باستخدام بناء جملة Nix وإعادة بناء نظام التشغيل. على Ubuntu، يمكنك ببساطة النقر فوق “تمكين” في مدير برامج التشغيل أو تشغيل أمر “apt” بسيط.
في كثير من الحالات، لا تغطي الخيارات المعروضة في ملفات تكوين NixOS كل إعدادات البرنامج الأساسي. هذا يجعلك غير متأكد من كيفية تعديل الأشياء غير الموثقة صراحةً. على الرغم من أن المشاريع المجتمعية حاولت إنشاء أدوات رسومية، مثل مركز برامج Nix أو محرري التكوين، إلا أن هذه الأدوات محدودة في وظائفها وغالبًا ما تتخلف عن التحديثات.
تثبيت البرامج يمثل تحديًا
على الرغم من أن مدير حزم Nix لديه مجموعة ضخمة
تختلف إدارة البرامج في NixOS اختلافًا كبيرًا عن مديري الحزم القياسيين في Debian أو Ubuntu أو Fedora أو Arch، وقد يكون هذا مشكلة. يستخدم NixOS مدير حزم Nix مع متجر Nix معزول، وعلى الرغم من أنه يوفر مجموعة ضخمة من الحزم، إلا أن تثبيت البرامج خارج هذا النموذج يمكن أن يكون صعبًا. لا يمكنك عمومًا تنزيل وتشغيل مثبت .deb أو استخدام PPA كما تفعل على Ubuntu.
إذا لم يكن التطبيق متاحًا في مستودعات NixOS، فقد تضطر إلى كتابة تعبير Nix مخصص أو استخدام حلول بديلة معقدة. هذا بعيد كل البعد عن التثبيت بنقرة واحدة الذي يتوقعه العديد من المستخدمين. حتى استخدام أدوات الحزم الخاصة باللغة أو المثبتات الخارجية يمكن أن يتعطل في بيئة Nix المعزولة. على سبيل المثال، غالبًا لا تعمل البيئات الافتراضية القياسية لـ Python و pip بشكل صحيح على NixOS، مما يعطل سير عمل Python المعتاد ما لم تنتقل إلى حلول خاصة بـ Nix.
يمكن أن تتطلب تطبيقات سطح المكتب الشائعة أيضًا جهدًا إضافيًا. قد يجبرك تثبيت GIMP مع إضافات معينة مثل دعم CUDA على NixOS على تجميع GIMP من المصدر، الأمر الذي قد يستغرق ساعات. في توزيعة تقليدية، سيتم تمكين نفس الميزة عن طريق تثبيت حزمة سريعة. هناك أيضًا تقارير عن عدم التقاط التطبيقات الرسومية للسمات أو الرموز تلقائيًا، بسبب عزل NixOS الصارم للحزم. هذا يعني أنه غالبًا ما يتعين عليك تكوين هذه الإعدادات يدويًا لجعل سطح المكتب الخاص بك يبدو ويعمل كما هو متوقع.
هناك مشاكل في توافق الأجهزة
حتى تشغيل القطع الأساسية يتطلب مجهودًا كبيرًا
سبب آخر قد يجعلك تتردد في استخدام NixOS هو توافقية وتجهيز الأجهزة. توزيعات سطح المكتب المعروفة مثل Ubuntu و Linux Mint و Pop!_OS و Fedora تبذل جهودًا كبيرة لتعمل مباشرةً بعد التثبيت على الأجهزة الشائعة. غالبًا ما تتضمن تعريفات احتكارية، ومثبتات تعريفات سهلة، وبرامج ثابتة للواي فاي، ومعالجات الرسوميات، والطابعات، وغيرها، بحيث نادرًا ما تحتاج إلى تعديل أي شيء لتشغيل جهازك.
NixOS، من ناحية أخرى، قد تتطلب تدخلًا يدويًا أكثر. على سبيل المثال، إذا كان لديك بطاقة رسوميات NVIDIA أو AMD، فلن يطالبك NixOS تلقائيًا بتثبيت التعريف. بدلاً من ذلك، يجب أن تعرف خيار التكوين الذي يجب تفعيله وإعادة بناء نظامك لتشغيل تعريف NVIDIA. على سبيل المثال، قد يكون لديك معالج رسوميات هجين AMD/NVIDIA في جهازك المحمول يتطلب تكوينًا يدويًا لتبديل معالج الرسوميات باستخدام التعليمات من ويكي NixOS. وحتى مع ذلك، كان أداء الرسوميات أقل كفاءة مما هو عليه في توزيعة تقليدية مثل Debian.
حتى المكونات الأساسية مثل الواي فاي أو إيماءات لوحة اللمس قد تتطلب منك تعديل إعدادات NixOS أو تفعيل وحدات نمطية مدعومة من المجتمع إذا لم تكن تعمل بشكل افتراضي. يوفر NixOS مجموعة من الوحدات النمطية الخاصة بالأجهزة في مستودع nixos-hardware لمعالجة الأجهزة الغريبة، ولكن سيتعين عليك اكتشاف هذه الحلول وتطبيقها بنفسك.
ربما سأعود إلى Ubuntu
كنت أعرف ما الذي أقدم عليه عندما بدأت في تثبيت NixOS جنبًا إلى جنب مع Windows، لكنني أدركت أن Ubuntu هو توزيعة أفضل للاستخدام اليومي. إذا لم يعجبك Ubuntu، يمكنك تجربة إحدى هذه خمس توزيعات Linux التي تعمل بشكل جيد حتى على الأجهزة الأقل قوة.