কেন আমি NixOS এ সুইচ করলাম

বছরের পর বছর ডিস্ট্রো-হপিং আর সিস্টেম ব্রেকিংয়ের পর শেষ পর্যন্ত NixOS এ এসে আমার জার্নি থিতু হয়েছে। প্রথাগত লিনাক্স ডিস্ট্রিবিউশনগুলোতে প্যাকেজ ম্যানেজমেন্টের যে এন্ট্রপি (Entropy) থাকে, তা থেকে মুক্তি পেতেই আসলে আমার এই সুইচের সিদ্ধান্ত।

ডিক্লারেটিভ লিনাক্সের প্রতি আকর্ষণ

আমি সবসময় এমন একটা ডিস্ট্রিবিউশন চেয়েছিলাম যেখানে পুরো সিস্টেমের কনফিগারেশন একটা কোড ফাইলে বর্ণনা করা থাকবে। প্রথাগত লিনাক্সে আমরা অসংখ্য কমান্ড রান করে সিস্টেমের স্টেট পরিবর্তন করি, যা পরবর্তীতে ট্র্যাক করা কঠিন। কিন্তু NixOS এ আপনি যদি কোনো ভুল কনফিগারেশন করে ফেলেন, তবে মুহূর্তের মধ্যেই রিলায়েবল ভাবে আগের জেনারেশনে রোলব্যাক করতে পারবেন। এই কনফিডেন্সটাই আমাকে ফ্রিলি এক্সপেরিমেন্ট করতে সাহায্য করে।

NixOS এর কাজ করার ধরন

নিওএস (NixOS) একদম আলাদা একটি দৃষ্টিভঙ্গি নিয়ে সিস্টেম কনফিগারেশন হ্যান্ডেল করে। আপনি এখানে সরাসরি ফাইলসিস্টেম মোডিফাই না করে বরং একটি ফাইলে সব ডিক্লেয়ার করেন। যখন আপনি NixOS এর সাথে কাজ শুরু করবেন, আপনি বুঝতে পারবেন আপনার পুরো সিস্টেমটি এখন রিপিটযোগ্য (Reproducible)। অর্থাৎ আপনার configuration.nix ফাইলটি যদি অন্য কোনো মেশিনে নিয়ে রিইন্সটল করেন, তবে আপনি একদম হুবহু আগের মতো সিস্টেম পাবেন।

লার্নিং কার্ভ এবং তিক্ত অভিজ্ঞতা

আমি মিথ্যা বলব না—NixOS এর লার্নিং কার্ভ অনেক বেশি খাড়া। আমার অভিজ্ঞতায় এর অফিসিয়াল ডকুমেন্টেশন বেশ বিভ্রান্তিকর। শুরুর দিকে আমি বুঝতেই পারিনি যে wiki.nixos.org আর nixos.wiki এর মধ্যে কোনটি বেশি নির্ভরযোগ্য। গুগল সার্চে প্রায়ই ব্যাকডেটেড তথ্য চলে আসে যা নতুনদের জন্য বেশ যন্ত্রণার।

আরও একটি বিরক্তিকর বিষয় হলো এর সিনট্যাক্স। ওভারলে (Overlays) কীভাবে কাজ করে তা বুঝতে আমার বেশ কয়েক সপ্তাহ সময় লেগেছে। অফিসিয়াল গাইডগুলো মাঝেমধ্যে এমনভাবে কিছু ব্যাখ্যা করে যা বুঝতে হলে আগে থেকেই অ্যাডভান্স কনসেপ্ট জানা থাকা লাগে। আমার মনে হয়, শুরুর দিকে কোনো মেন্টর বা ভালো ইউটিউব ভিডিও ছাড়া এটা শেখা অসম্ভব।

তবে একবার কোর কনসেপ্টগুলো বুঝে গেলে সবকিছু আপনার কাছে পরিষ্কার মনে হবে। আমি এখন আমার প্রোজেক্টগুলোর জন্য আইসোলেটেড এনভায়রনমেন্ট তৈরি করতে পারি যা অন্য কোনো ডিস্ট্রোতে এত স্মুথলি করা সম্ভব ছিল না।

NixOS কেন সবার জন্য নয়?

আপনার যদি শুধু একটি ডেস্কটপ ওএস দরকার হয় যা আউট-অফ-দ্য-বক্স ভালো কাজ করবে, তবে লিনাক্স মিন্ট বা উবুন্টুই আপনার জন্য ভালো চয়েস। কিন্তু আপনি যদি একজন ডেভেলপার বা সিস্টেম অ্যাডমিনিস্ট্রেটর হন যিনি রিপিটযোগ্যতা এবং নির্ভরযোগ্যতাকে সবার উপরে রাখেন, তবে NixOS আপনার জীবন বদলে দিতে পারে।

আমি এখন আমার হোম ডেস্কটপ, ল্যাপটপ এবং সার্ভার সেটআপ একই গিট রিপোজিটরি থেকে কন্ট্রোল করি। এটি আমাকে যে পরিমাণ স্বাধীনতা দিয়েছে, তা অভাবনীয়।

NixOS এ সুইচ করার কারণ, ডিক্লারেটিভ কনফিগারেশনের সুবিধা, লার্নিং কার্ভ এবং ডকুমেন্টেশনের সীমাবদ্ধতা নিয়ে আমার বাস্তব অভিজ্ঞতা জানুন এই ব্লগে।

Asaduzzaman Pavel

About the Author

Asaduzzaman Pavel is a Software Engineer who actually enjoys the friction of a well-architected system. He has over 15 years of experience building high-performance backends and infrastructure that can actually handle the real-world chaos of scale.

Currently looking for new opportunities to build something amazing.