آموزش آپگرید از دبیان 11 به دبیان 12

دبیان 12 Bookworm که به تازگ منتشر شد نسخه جدید بسته‌های به روز شده و پنج سال پشتیبانی را ارائه می دهد. این مطلب راهنمای گام به گام برای به روز رسانی Debian 11 Bullseye به Debian 12 Bookworm با استفاده از خط فرمان است.


چه چیزی در Debian 12 جدید است؟

  • Apache 2.4.57-2
  • Bash 5.2.15
  • BIND DNS Server 9.18
  • Emacs 27.1
  • GNOME desktop 43
  • KDE desktop/KDE Plasma 5.27
  • Libreoffice 7.4
  • Lighttpd 1.4.69
  • Linux kernel 6.1.0-9
  • LXDE 11
  • LXQt 1.2.0
  • MariaDB 10.11.3-1
  • MATE 1.26
  • Nginx 1.22 with brotli module
  • OpenSSH version 9.2p1-2
  • Perl 5.36.0
  • PHP 8.2
  • Postgresql 15
  • Python 3.11.2
  • Rustc 1.63
  • Vi IMproved (VIM) 9.0
  • Xfce 4.18


آموزش آپگرید Debian 11  به Debian 12 Bookworm 

برای ارتقای دبیان 11 به دبیان 12 کافیست مراحل زیر را انجام دهید:

  1. از سیستم بک آپ بگیرید.
  2. بسته های موجود را به روز کنید و سیستم Debian 11 را ریبوت کنید.
  3. فایل /etc/apt/sources.list را با استفاده از یک ویرایشگر متن ویرایش کنید و هر نمونه از bullseye را با bookworm جایگزین کنید. بعد خط update را پیدا کنید، کلمه کلیدی bullseye-updates را با bookworm-updates جایگزین کنید. در نهایت، خط security را جستجو کنید، کلمه کلیدی bullseye-security را با bookworm-security جایگزین کنید.
  4. ایندکس بسته ها را در لینوکس دبیان به روز کنید، اجرا کنید:

sudo apt update

  1. برای سیستم عامل حداقل ارتقاء سیستم آماده شوید، اجرا کنید:

sudo apt upgrade --without-new-pkgs

  1. در نهایت، با اجرای دستور زیر Debian 11 را به دبیان 12 (Bookworm) آپگرید کنید:

sudo apt full-upgrade 

  1. سیستم لینوکس را ریبوت کنید تا بتوانید در Debian 12 Bookworm بوت شوید
  2. بررسی کنید که همه چیز به درستی کار می کند.

در ادامه  تمام مراحل ارتقای Debian 11 Bullseye به Debian 12 Bookworm را گام به گام بررسی می‌کنیم تا مطمئن شوید که با خیال راحت در محیط ابری اجرا می‌شود.


 

مرحله 1. از سیستم خود بکاپ تهیه کنید

تکمیل فرآیند پشتیبان گیری برای جلوگیری از از دست رفتن داده‌ها یا خرابی نصب ضروری است. مسئولیت نگهداری از بکاپ‌های تایید شده بر عهده کاربر است البته که این یک درس اساسی برای sysadmin ها است. نویسنده نمی‌تواند در قبال مشکلاتی که به دلیل فقدان بکاپ ایجاد می‌شوند پاسخگو باشد.

تهیه نسخه پشتیبان از تمام داده ها و تنظیمات سیستم بسیار مهم است. برای انجام کارآمد این کار، از ماشین های مجازی مبتنی بر ابر می‌توان به سرعت با استفاده از snapshot پشتیبان گیری و بازیابی کرد. 
با استفاده از دستور lsb_release نسخه OS را در لینوکس بررسی کنید. برای مثال:


lsb_release -a

این چیزی است که من می بینم:


آپگرید دبیان 11 به دبیان 12

نسخه کرنل لینوکس را نیز یادداشت کنید. دستور uname را امتحان کنید:


uname -mrs

نسخه کرنل لینوکس من:

تبدیل دبیان 11 به دبیان 12

همچنین نسخه دبیان را با استفاده از دستور cat یادداشت کنید:


cat /etc/debian_version
 

ارتقای دبیان 11 به دبیان 12

مرحله 2. تمام بسته های نصب شده موجود را به روز کنید

برای امن‌تر کردن آپگیرد، باید بسته‌های غیر دبیان را حذف کنید. به عنوان مثال Google Chrome یا VirtualBox یک بسته غیر دبیان است که با استفاده از مخزن شخص ثالث نصب شده است. اینها می توانند مشکل ایجاد کنند. در اینجا نحوه یافتن چنین صفحاتی آمده است:



sudo apt list '?narrow(?installed, ?not(?origin(Debian)))'
sudo apt-forktracer | sort

خوشبختانه، من به Google Chrome، VirtualBox یا هیچ برنامه شخص ثالثی در Debian متکی نیستم. با این حال، اگر از این برنامه ها استفاده می کنید، باید قبل از ارتقا از اطلاعات خود نسخه بکاپ تهیه کنید. پس از ارتقا، اگر نسخه Bookworm از آنها پشتیبانی کند، می توانید دوباره این بسته‌ها را نصب نمائید. همچنین، هر بسته ای که در وضعیت hold باشد، در روند ارتقا مشکل ایجاد می کند. بنابراین، با استفاده از دستور apt-mark تمام بسته های نگهداری شده از ارتقاء را به صورت زیر فهرست کنید:

sudo apt-mark showhold | more
# OR #
sudo dpkg --get-selections | grep 'hold$' | more

سپس باید با کمک دستور زیر وضعیت میزبان را برای همه بسته‌های لیست شده یکی یکی delete یا remove کنید:

sudo apt-mark unhold package_name
## OR ##
echo 'package_name install' | sudo dpkg --set-selections


قبل از اینکه نسخه دبیان خود را به 12 ارتقا دهید، باید تمام وصله های امنیتی و ارتقاهای در حال انتظار را روی خود دبیان 11 اعمال کنید. بنابراین، دستور apt یا دستور apt-get زیر را تایپ کنید:

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt --purge autoremove

آپگرید به دبیان 12

دبیان 11 bullseye را مجددا راه اندازی کنید تا کرنل و سایر به روز رسانی‌ها با استفاده از دستور reboot یا shutdown  اعمال شود. برای مثال:

sudo systemctl reboot

سرور مجازی لینوکس یک ماشین مجازی کامل است که امکان دسترسی SSH طبق آموزش را به آن خواهید داشت.
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

مرحله 3. فایل /etc/apt/sources.list را به روز کنید

برای شروع فرآیند ارتقا لازم است فایل‌های source-list را مجددا پیکربندی کنید. می توان تنظیمات فعلی را با استفاده از دستور cat یا دستور more مشاهده کرد. با این کار لیستی از URL های Repo Debian 11 نمایش داده می شود.

sudo cat /etc/apt/sources.list


ویرایش sources.list در آپگرید debian 12

کلمه کلیدی bullseye نشان می‌دهد که از نسخه قدیمی 11 استفاده می‌شود. بنابراین باید با استفاده از یک ویرایشگر متنی مانند Vim یا Nano، تمام مراجع این فایل را از bullseye به bookworm تغییر دهیم. مثلا:


sudo cp -v /etc/apt/sources.list /root/sources.list-bakup.11.bullseye

 

upgrade دبیان به نسخه 12

sudo nano /etc/apt/sources.list

From:
deb http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian bullseye-updates main
deb http://deb.debian.org/debian-security/ bullseye-security main
To:

deb http://deb.debian.org/debian bookworm main
deb http://deb.debian.org/debian bookworm-updates main
deb http://deb.debian.org/debian-security/ bookworm-security main

آپگرید به نسخه bookworm


پس از ویرایش فایل را ذخیره کرده و  ببندید همچنین می‌توانید از دستور sed برای پیدا کردن و جایگزینی bullseye با bookworm به صورت زیر استفاده کنید:

sudo sed -i'.bak' 's/bullseye/bookworm/g' /etc/apt/sources.list

 

چطور دبیان رات به نسخه جدید تبدیل کنیم


نکته ای در مورد مخزن سیستم عامل غیر رایگان

اگر قصد دارید از دبیان 12 روی دسکتاپ یا سروری استفاده کنید که برای سخت‌افزارهایی مانند WiFi، GPU، Sound، Nvida/AMD GPU، NIC و غیره به سیستم‌افزار غیر رایگان نیاز دارد، توصیه می‌شود مخزن  non-free firmware را هم اضافه کنید. در زیر فایل به روز شده /etc/apt/sources.list است. پیکربندی مخزن  نشان می‌دهد که non-free firmware برای سخت افزار شما مورد نیاز است. اگر در مورد سخت افزار خود مطمئن نیستید، پیشنهاد می کنم آن مخازن را اضافه کنید.

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware

 

استفاده از مخزن non-free-firmware در دبیان 12

به روز رسانی لیست پکیج‌ها (package list)

در نهایت، دستور زیر را برای دریافت داده‌های جدید apt repo اجرا کنید:


sudo apt update

مرحله 4. حداقل ارتقاء سیستم


در انتهای مرحله قبل، سیستم پیامی مشابه پیام زیر را نمایش می‌دهد:

289 packages can be upgraded. Run 'apt list --upgradable' to see them.

بنابراین، برای جلوگیری از حذف تعداد زیادی از بسته‌هایی که می‌خواهید نگه دارید، یک فرآیند دو قسمتی ضروری است. ابتدا دستور زیر را برای اعمال اجرا کنید:


sudo apt upgrade --without-new-pkgs


برای تکمیل ارتقا، لطفا دستورالعمل‌های روی صفحه را به دقت دنبال کنید. ممکن است با سوالاتی مانند Would you like to restart the service یا Keep or erase configuration file options در طول فرآیند مواجه شوید. به عنوان مثال، من با صفحه نمایش تغییرات جدید روبرو شدم:


apt-lischanges:news

لطفا q را فشار دهید تا از آن خارج شوید و در ادامه ممکن است صفحه‌ها و گفتگوهای اضافی را نیز مشاهده کنید:

دبیان 12

آیا می توانید توضیح دهید که چرا هنگام ارتقاء سیستم پیام‌هایی دریافت می کنم؟سیستم شما دارای برخی خدمات است که وقتی کتابخانه‌های خاصی مانند libpam، libc و libssl به روز می شوند، نیاز به راه اندازی مجدد دارند. این راه‌اندازی‌ها ممکن است باعث اختلال در سرویس شوند، بنابراین معمولا از شما خواسته می‌شود که انتخاب کنید کدام سرویس‌ها را در طول هر ارتقا restart کنید. با این حال، می‌توانید با انتخاب گزینه YES از این دستور صرف‌نظر کنید. با انجام این کار، تمام راه اندازی مجدد لازم به صورت خودکار انجام می شود و در طول هر ارتقا کتابخانه، شما با سوالاتی اذیت نخواهید شد. در اینجا مثال دیگری در مورد بسته GRUB وجود دارد. یک نسخه جدید (/tmp/grub.nSxPVERrDRh) از فایل پیکربندی /etc/default/grub موجود است، اما نسخه نصب شده در حال حاضر به صورت محلی اصلاح شده است. در مورد grub فایل پیکربندی اصلاح شده چه می خواهید انجام دهید؟ دوباره همه گزینه ها را با دقت بررسی کنید. من keep the local version currently installed را انتخاب کردم:

keep the local version currently installed

مرحله 5. ارتقاء دبیان 11 به دبیان 12

برای به‌روزرسانی کامل از دبیان 11 به دبیان 12 به جای حداقل‌ها، به‌روزرسانی‌های کامل لازم است. این مرحله برای فرآیند ارتقا بسیار مهم است. برای انجام این کار، دستور زیر را وارد کنید تا مطمئن شوید که آخرین نسخه‌های تمام بسته‌ها نصب شده و هرگونه وابستگی احتمالی برطرف شده است. مثلا:


sudo apt full-upgrade


ممکن است با اعلان‌های بیشتری روبرو شوید که ریستارت سرویس‌ها یا تغییر گزینه‌های پیکربندی موجود را پیشنهاد می‌کنند. حتما آنها را با دقت مطالعه کنید. به عنوان مثال، ممکن است گزینه ای برای به روز رسانی یا حفظ فایل پیکربندی OpenSSH داشته باشید:

keep the local version currently installed

 تمام مراحل به روز رسانی را تمام کرده‌اید؛  زمان آن رسیده است که سیستم لینوکس را دوباره ریبوت  کنید تا در Debian Linux 12 bookworm بوت شود. قبل از راه اندازی مجدد سیستم، مطمئن شوید که هیچ خطایی در فایل پیکربندی SSHD برای ریموت سرور وجود ندارد:


sudo sshd -t

در صورت عدم وجود خطا، می توانید سیستم را ریبوت کنید. با این حال، در صورت وجود هر گونه خطا، مهم است که قبل از ریبوت مجدد، آنها را برطرف کنید. برای انجام این کار، دستور زیر را اجرا کنید:


sudo nano /etc/ssh/sshd_config

دوباره تأیید کنید:


sudo sshd -t

تایید ارتقاء به debian 12

اکنون پس از رفع هر گونه خطا، آن را ریبوت نمائید:


sudo systemctl reboot
 

مرحله 6. تایید


همه کارهای لازم انجامشده است و در این مرحله باید آپگرید را تایید کنیم؛ با استفاده از دستور زیر می‌توان بررسی کرد که آیا ارتقاء به دبیان 12 با موفقیت انجام شده است؟

uname -mrs
 

Debian GNU/Linux 12 (bookworm)

به‌روز رسانی دبیان با موفقیت تایید شد.
پس از ارتقا مراقب همه برنامه‌ها و سرویس‌های خود باشید. بررسی کنید که همه پورت‌های TCP/UDP باز هستند و سرویس‌ها با استفاده از دستور tail یا دستور ss یا دستور grep/egrep اجرا می‌شوند:

sudo ss -tulpn
sudo tail -f /var/log/mail.log
sudo tail -f /var/log/apache2/access_log
 
# look for errors if any
sudo grep 'error' /var/log/my_pyton_app/sales_app.log
sudo grep -E -i 'err|fail|warn|crit' /var/log/nginx/php_nixcraft_blog.log
 
# Check for service status
sudo systemctl status nginx.service
sudo systemctl status apache2.service
sudo systemctl status mariadb.service
 
# Use journalctl to query the contents of the systemd(1) journal
sudo journalctl
sudo journalctl -u sshd.service

 

نکته ای در مورد حذف بسته های ناخواسته
هشدار! اگرچه اختیاری است، اما بررسی بسته هایی که دیگر در سیستم شما مورد نیاز نیستند بسیار حیاتی است.

در صورت اجرای دستور زیر ممکن است این کار باعث خرابی سیستم شود.

در نهایت، بسته های قدیمی را با استفاده از دستور apt/apt-get به صورت زیر پاک کنید:


sudo apt --purge autoremove


یادداشتی در مورد درایورهای از دست رفته یا حباب های firmware
اگر سیستم خود را از Debian 11 به 12 ارتقا دهید، firmware خاصی که در دستگاه شما ذخیره شده است ممکن است غیرفعال شود. می‌توانید در دایرکتوری ماژول‌های کرنل واقع در /lib/، فرمویر غیرفعال را بررسی کنید. برای مثال، ممکن است یک فایل سخت‌افزار Qualcomm به نام firmware-6.bin.disabled از ارتقای قبلی وجود داشته باشد. برای حل این مشکل، باید این فایل ها را دوباره نصب یا ارتقا دهید و سپس سیستم خود را ریبوت کنید. این در مورد درایورهای اختصاصی مانند NVidia نیز صدق می کند. بنابراین، ایجاد بکاپ و حفظ آرامش بسیار مهم است.

 

جمع بندی


خلاصه اینکه الان دبیان 12 دارید و  سیستم را با موفقیت به Debian Linux 12 ارتقاء داده ایم. نسخه به روز شده Debian 12 همیشه ویژگی های جدید و پشتیبانی سخت افزاری را از طریق کرنل لینوکس به ارمغان می آورد. از این رو، باید نیازها را ارزیابی کرد و سپس ارتقا داد. پروژه لینوکس دبیان همچنین راهنمای عمیقی را ارسال کرده است که مشکلات دیگری را که ممکن است در حین نصب با آن مواجه شوند را توضیح می دهد. مطمئن شوید که صفحات man را با استفاده از دستور man بخوانید:


man apt
man apt-get
man dpkg