প্রায় দুই বছর ধরে ডেবিয়ান কমপ্রায় রহে। প্রোগ্রাম ভার্সন এবং ফিচারগুলো এই সময়ের জন্য একই থাকে। সিকিউরিটি ফিক্সগুলো ব্যাকপোর্ট হয়। কখনো কখনো, রেয়ার সিচুয়েশনের জন্য এক্সেপশন করা হয় যেখানে একটি প্যাকেজে নতুন ফিচারের দরকার হতে পারে। উদাহরণস্বরূপ, একটি ড্রাইভার আপগ্রেড হতে পারে আরও হার্ডওয়্যার সাপোর্ট যোগ করার জন্য। কিন্তু এটি খুব রেয়ার।
জিনিসগুলো কনস্ট্যান্ট রাখার এর সুবিধা আছে। এটি অপারেটিং সিস্টেমকে নির্ভরযোগ্য করে। আপনি প্রায় কখনো বাগ এনকাউন্টার করেন না। প্যাকেজ আপডেট করার পর জিনিসগুলো প্রায় কখনো ব্রেক করে না। নতুন ফিচার নেই মানে অপ্রত্যাশিত সারপ্রাইজ/বিহেভিয়ারও নেই।
প্রায় প্রতি দুই বছর পর (প্রায়) একটি নতুন ডেবিয়ান ভার্সন রিলিজ হয়। এবং এটি প্রায়শই উল্লেখযোগ্য উন্নতি এবং নতুন ফিচার নিয়ে আসে যা আপনি চাইতে বা দরকার হতে পারে। যদিও অপারেটিং সিস্টেমকে প্রায়শই "রক সলিড" বলে বর্ণনা করা হয়, উপরের কারণগুলো কপি, আপগ্রেড প্রসেসও রক সলিড। একটি ক্লিন সিস্টেমে এক মেজর ভার্সন থেকে পরেরটিতে আপগ্রেড করা এতটুকু স্মুথ যে মনে হয় আপনি শুধু কয়েকটা অনুমহত্বপূর্ণ প্যাকেজ আপগ্রেড করেছেন।
আপগ্রেড করার আগে, sources.list ক্লিন আপ করুন
কিছু ব্যবহারকারী আপগ্রেড করার চেষ্টা করলে সমস্যায় পড়ে। সেগুলো অটরেজলভেবল প্যাকেজ কনফ্লিক্ট পায়, গুরুত্বপূর্ণ সফটওয়্যার রিমুভ হয়ে যায়, ইত্যাদি। সেগুলো শেষ পর্যন্ত পুরনো ইনস্টলেশন রিমুভ করে ফ্রেশ ইনস্টল নেওয়া পছন্দ করে। যাইহোক, অধিকাংশ সময় এটা ডেবিয়ানের ফল্ট নয়। তারা সমস্যায় পড়ে কারণ তারা একটি বা একাধিক জিনিস করেছে তাদের অপারেটিং সিস্টেম ভাঙতে। শুধু কারন এটি কাজ করছে মনে হচ্ছে মানে সেটা নয় যে প্যাকেজ ম্যানেজার সাইলেন্টলি ভুগছেনা। সেটিই কারণ আপনার "sources.list" ফাইলগুলো থেকে থার্ড-পার্টি সফটওয়্যার যেকোনো রেফারেন্স রিমুভ করার সুপারিশ করা হয় আপগ্রেড করার আগে।
ফাইলটি এডিট করার জন্য খুলুন:
sudo nano /etc/apt/sources.list
ডেবিয়ানের অফিশিয়াল রিপোজিটরির বাইরের সফটওয়্যার যেকোনো রেফারেন্স রিমুভ করুন। এই ফাইলে কেবল তিন লাইন দরকার।
আপনার বর্তমান ডেবিয়ান রিলিজের কোডনেম সংরক্ষণ করা খুব গুরুত্বপূর্ণ! তাই, যদি এটি ২০২১ বছর হয়, এবং আপনি ডেবিয়ান Buster চালাচ্ছেন, stretch-কে buster-দিয়ে রিপ্লেস করুন, বা যা আপনার জন্য প্রযোজ্য।
deb https://deb.debian.org/debian stretch main deb https://deb.debian.org/debian stretch-updates main deb https://deb.debian.org/debian-security/ stretch/updates main
এছাড়া, এন্ডিং স্ট্রিংগুলো সংরক্ষণ করুন। এই উদাহরণে লাইনটি "main" স্ট্রিং দিয়ে এন্ড হয়। কিন্তু আপনার বর্তমান "sources.list" স্ট্রিংগুলো যদি "main contrib non-free"-দিয়ে এন্ড হয়, তবে "contrib non-free" প্রতিটি লাইনের শেষে যোগ করুন। এই কেসে আপনার ফলাফল এরকম দেখতে পারে:
deb https://deb.debian.org/debian stretch main contrib non-free deb https://deb.debian.org/debian stretch-updates main contrib non-free deb https://deb.debian.org/debian-security/ stretch/updates main contrib non-free
ফাইলটি সেভ করতে, Ctrl + X চাপুন, তারপর y এবং তারপর Enter।
sources.list-র সম্পর্কে আরও পড়ুন ডেবিয়ানের উইকিতে।
প্যাকেজ ইনফরমেশন আপডেট করুন:
sudo apt update
আপনার প্যাকেজগুলো আপগ্রেড করুন:
sudo apt upgrade
যদি নিচের ছবির মতো একটি চেঞ্জলগ দেখায়, আপনি পড়ার পর, q চাপিয়ে এক্সিট করতে পারেন।
অনাবশ্যক প্যাকেজ রিমুভ করুন:
sudo apt autoremove
আপগ্রেডের জন্য sources.list প্রস্তুত করুন
মনে রাখা উচিত যে আপনাকে শুধু এক মেজর ভার্সন থেকে পরেরটিতে আপগ্রেড করা উচিত। উদাহরণ: আপনাকে ডেবিয়ান ৭ থেকে ৮, বা ৮ থেকে ৯ আপগ্রেড করা উচিত, কিন্তু ৭ থেকে ৯ নয়।
আপনার সফটওয়্যার সোর্স ফাইল আবার এডিট করুন।
sudo nano /etc/apt/sources.list
আপনার বর্তমান ডেবিয়ান রিলিজের কোডনেমকে পরেরটির কোডনেম দিয়ে রিপ্লেস করুন। আপনি কোডনেমগুলো ডেবিয়ানের রিলিজ লিস্ট পেজে খুঁজে পাবেন।
উদাহরণস্বরূপ, ডেবিয়ান ৯ থেকে ডেবিয়ান ১০ আপগ্রেড করতে, আপনি এটি পরিবর্তন করবেন:
deb https://deb.debian.org/debian stretch main contrib non-free deb https://deb.debian.org/debian stretch-updates main contrib non-free deb https://deb.debian.org/debian-security stretch/updates main contrib non-free
এটি করতে:
deb https://deb.debian.org/debian buster main contrib non-free deb https://deb.debian.org/debian buster-updates main contrib non-free deb https://deb.debian.org/debian-security buster/updates main contrib non-free
ফাইলটি সেভ করুন এবং তারপর প্যাকেজ ইনফরমেশন রিফ্রেশ করুন:
sudo apt update
Debian আপগ্রেড করুন
আপনি যদি এটি আপনার ডেস্কটপে করেন, আপনার গ্রাফিক্যাল ইন্টারফেস থেকে লগ আউট করুন। আপডেট প্রসেস 어느 পয়েন্টে আপনার গ্রাফিক্যাল স্ট্যাক রিস্টার্ট করবে, যা আপনাকে আপনার টার্মিনাল অ্যাপ্লিকেশনে অ্যাক্সেস হারাতে বাধ্য করবে।
টেক্সট কনসোলে লগ ইন করুন। ALT+CTRL+F2 বা ALT+CTRL+F3 চাপুন, আপনার ইউজার এবং পাসওয়ার্ড দিয়ে লগ ইন করুন এবং এই স্ক্রিনে কমান্ড লিখুন।
প্রথমে একটি "সেফ আপগ্রেড" করুন। এটি কিছুই রিমুভ না করে সব প্যাকেজ আপগ্রেড করার চেষ্টা করে।
sudo apt upgrade
কোনো কনফ্লিক্ট আছে কিনা যেটি গুরুত্বপূর্ণ প্যাকেজ রিমুভ করার দিকে নিয়ে যাচ্ছে সেটিতে ঘনিষ্ঠ মনোযোগ দিন। এই, এবং পরের কমান্ড, যেখানে কিছু সিস্টেমে গ্রাফিক্যাল স্ট্যাক পুরোপুরি রিমুভ হয়ে যেতে পারে। এটি ক্লিন সিস্টেমে যেখানে আপনি কখনো ডেবিয়ানের রিপোজিটরির বাইরে থেকে কিছু ইনস্টল করেননি, সেখানে হয় না।
নতুন প্যাকেজের কিছু নতুন কনফিগারেশন ফাইল लेकर আসে। আপনাকে জিজ্ঞেস করা হবে আপনি আপনার পুরনো কনফিগারেশন রাখতে চান কি না বা নতুন একটা আপগ্রেড করতে চান।
আপনি যদি কনফিগারেশন ফাইলে মডিফিকেশন করেছেন, তবে আপনি হয় সেটি রাখতে চাইবেন অথবা আপগ্রেড করুন এবং পরে আপনার কাস্টমাইজেশন রি-অ্যাড করুন। আপনি যদি কখনো ফাইলটি ছোঁয়া নেই, তবে নতুন কনফিগারেশন পুল ইন করতে সিলেক্ট করুন (টাইপ Y)। এতে গুরুত্বপূর্ণ উন্নতি, সিকিউরিটি ফিক্স, বা সফটওয়্যার কাজ করার জন্য প্রয়োজনীয় পরিবর্তন থাকতে পারে। সেটিই কারণ সুপারিশ করা হয় যে আপনি "install the package maintainer's version" যতটুকু সম্ভব उतনোটুকু করুন।
এখন, একটি "ফুল আপগ্রেড" করুন। এটি বাকি প্যাকেজগুলো আপগ্রেড করবে যেগুলো পূর্বের কমান্ড দিয়ে আপডেট করা যেনি পারল। সেটি হলো কারণ সেগুলো পুরানো প্যাকেজ বা অবসোলিট প্রোগ্রামের সাথে কনফ্লিক্ট করে যা আপনার সিস্টেমে আছে। ফুল আপগ্রেড কিছু পুরানো প্যাকেজ রিমুভ করবে নতুনদের জন্য জায়গা করার জন্য।
sudo apt full-upgrade
এইরপর, আপগ্রেড কমপ্লিট। আপনি অপ্রয়োজনীয় প্যাকেজ ক্লিন আপ করতে পারেন:
sudo apt autoremove
শেষে, আপনার কম্পিউটার/সার্ভার রিবুট করুন:
sudo systemctl reboot
উপসংহার
অধিকাংশ কেসে এটি কোনো ইস্যু ছাড়া কাজ করবে। কিন্তু আপনার প্যাকেজ ম্যানেজারে থার্ড-পার্টি সফটওয়্যার সোর্স যোগ করা থাকলে, বা থার্ড-পার্টি প্যাকেজ ইনস্টল করা থাকলে (যেমন dpkg -i something.deb কমান্ডসহ), আপনি কনফ্লিক্টে পড়তে পারেন। 그런 কেসে আপনাকে এগুলো ম্যানুয়ালি সমাধান করতে হবে আবশ্যক প্যাকেজগুলো আগে রিমুভ করে (sudo apt autoremove badpackage)।
এছাড়া, আপনি যদি একটি নতুন রিলিজে আপগ্রেড করার সম্পর্কে আরও ডিটেইল পড়তে চান, গুগলে কিছু লিখুন যেমন "Debian stretch upgrade"। অবশ্যই, সেই সার্চে কোডনেম "stretch"-কে উপযুক্তভাবে রিপ্লেস করুন। আপনি একটি পেজ পাবেন এরকম, একটি রিলিজ থেকে অন্যটিতে আপগ্রেড পাথ ডিটেইল করে।