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

এক রিগ্রেশনের দুটি প্রতিকার

প্যাকেজ হোল্ড করা মানে কাজ করা সংস্করণটি ইনস্টল থাকা অবস্থায় রাখা এবং APT-কে তা সরানো থেকে বিরত রাখা। এটি সময় কিনে দেয়, ব্যবহারকারীদের সংযুক্ত রাখে এবং মূল বাগটি অক্ষত রাখে। এগিয়ে যাওয়া মানে রিগ্রেশন ঠিক করা সমর্থিত রিলিজ খোঁজা, অথবা সংযোগের মালিককে এমন কিছুতে বদলানো যা ডিস্ট্রিবিউশন এখনও রক্ষণাবেক্ষণ করে। এতে শুরুতে বেশি পরিশ্রম লাগে এবং স্থায়ী ঝুঁকি দূর হয়।

সিদ্ধান্তের আগে তিনটি তথ্য থাকা দরকার: কোন উপাদানে রিগ্রেশন হয়েছে, ঠিক করা রিলিজ আছে কি না, এবং সাময়িক অবস্থা কত দিন সহ্য করা যাবে।

যেকোনোটি বেছনোর আগে ব্যর্থতাটি চিহ্নিত করুন

NetworkManager কোর আপডেট, VPN প্লাগইন আপডেট আর রিজলভার সহায়কের রিগ্রেশন ব্যবহারকারীর দৃষ্টিতে একই রকম দেখায়, কিন্তু রোলব্যাকের প্রার্থীরা আলাদা। সঠিক প্যাকেজ, সংস্করণ এবং প্রথম নতুন ত্রুটি লিখে রাখুন।

apt-cache policy network-manager network-manager-openvpn
dpkg -l | grep -E 'network-manager|openvpn|wireguard'

তালিকা রিফ্রেশ না হলে প্যাকেজ মেটাডেটা পুরোনো হতে পারে, তাই এটিকে কেবল সংকেত হিসেবে পড়ুন এবং প্রকৃত ইনস্টল করা সংস্করণের সঙ্গে মিলিয়ে নিশ্চিত করুন। ফোরামের পোস্ট থেকে লক্ষ্য সংস্করণ নেবেন না; অন্য রিলিজের একই সংস্করণ স্ট্রিং ভিন্ন নির্ভরতা বহন করতে পারে।

হোল্ড কী ঢাকে তা তুলনা করুন

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

sudo apt-get -s install network-manager=1.42.4-1
apt-mark showhold

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

প্রস্থানের পথগুলো তুলনা করুন

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

sudo apt-mark unhold network-manager
sudo apt update
sudo apt full-upgrade

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

রেকর্ডে কী থাকতে হবে

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

প্রস্থানের তারিখসহ হোল্ড একটি পরিচালিত রোলব্যাক সীমা। তারিখ ছাড়া হোল্ড হলো একটি অব্যাখ্যাত ডাউনগ্রেড যা চুপচাপ অবকাঠামোর অংশ হয়ে গেছে।

সম্পর্কিত নিবন্ধ