প্রকল্প সম্পর্কে

nog হলো Arch Linux-এর জন্য Rust-ভিত্তিক একটি প্যাকেজ ম্যানেজার wrapper, যা pacman-এর উপরে একটি স্তরভিত্তিক hold সিস্টেম যোগ করে। pacman-কে প্রতিস্থাপন না করে এটি একই কমান্ড ও ফ্ল্যাগ ব্যবহার করে, তবে প্যাকেজের গুরুত্ব অনুযায়ী আপডেট বিলম্ব চালু করে। **Tier সিস্টেম:** প্যাকেজগুলোকে তিনটি tier-এ ভাগ করা হয়, যার hold সময়কাল কনফিগারযোগ্য: - Tier 1 (kernel, bootloader, glibc, systemd, mesa): ৩০ দিনের hold - Tier 2 (ডেস্কটপ এনভায়রনমেন্ট, প্রধান অ্যাপ্লিকেশন): ১৫ দিনের hold - Tier 3 (বাকি সব): ৭ দিনের hold Hold গণনা শুরু হয় আপডেট প্রথম দেখা যাওয়ার সময় থেকে, নতুন বিল্ড থেকে নয়, ফলে ব্যস্ত প্যাকেজগুলো অনির্দিষ্টকালের জন্য hold-এ আটকে থাকে না। Hold শেষ হলে, নতুন সংস্করণকেও একটি ছোট "safety wait" (tier অনুযায়ী ৭/৩/১ দিন) পাস করতে হয় ইনস্টল হওয়ার আগে। **একাধিক সোর্স সমর্থন:** nog অফিসিয়াল pacman রিপোজিটরি, AUR (yay বা paru-এর মাধ্যমে), Flatpak এবং Snap থেকে আপডেট পরিচালনা করে। প্রতিটি সোর্স আলাদাভাবে চালু বা বন্ধ করা যায়। Snap hold snapd-এর ভেতরেই বসানো হয়, যাতে auto-refresh বাইপাস করতে না পারে। **নিরাপত্তা বৈশিষ্ট্য:** Keyring প্যাকেজ কখনো hold করা হয় না। কোনো ঘটনার সময় kill switch দিয়ে AUR বা chaotic-aur সোর্স বন্ধ করা যায়। nog সাধারণ ব্যবহারকারী হিসেবে চলে এবং শুধু নির্দিষ্ট মুহূর্তে root-এ escalate করে। Hold-এ pacman-এর নিজস্ব --ignore ফ্ল্যাগ ব্যবহার করা হয়। AUR helper-গুলো শুধু cleared প্যাকেজ নাম পায়, ফলে ব্যর্থ lookup-এর মাধ্যমে বাইপাস প্রতিরোধ হয়। **রিপোর্টিং:** আপডেটগুলো Ready, Held এবং Unknown শ্রেণিতে tier রঙসহ গ্রুপ করা হয়। একটি সারসংক্ষেপ টেবিল প্রতি-রিপোজিটরি অবস্থা দেখায়। প্রতিটি রান একটি তারিখযুক্ত CSV ফাইলে লগ করা হয়, যা ৯০ দিন রাখা হয়। kernel বা ড্রাইভার আপডেটের কারণে চলমান সিস্টেম অসমঞ্জস থাকলে reboot পরামর্শ দেওয়া হয়। **রক্ষণাবেক্ষণ:** nog clean tier-সচেতন retention সহ pacman-এর cache থেকে পুরনো ডাউনলোড মুছে ফেলে (Tier 1-এর জন্য ৩টি সংস্করণ, Tier 2-এর জন্য ২টি, Tier 3-এর জন্য ১টি), rollback-এর জন্য ইনস্টল করা সংস্করণ সবসময় রেখে দেয়। **কনফিগারেশন:** Tier নির্ধারণ ও hold সময়কাল /etc/nog/-এ কনফিগার করা হয়। প্যাকেজগুলোকে tier-এ pin করা যায়, একসাথে সরানোর জন্য গ্রুপ করা যায় (যেমন kernel ও headers), এবং expert mode-এ Tier 1-এর জন্য ম্যানুয়াল sign-off প্রয়োজন হতে পারে।