بهروزرسانی سیستم در Debian
آموزش بهروزرسانی روزانه و ارتقای بزرگ در Debian: apt update/upgrade، بهروزرسانی امنیتی خودکار، پاکسازی و ارتقا بین نسخهها.
بهروزرسانی منظم، مهمترین وظیفهٔ نگهداری Debian است. در این آموزش با بهروزرسانی روزانه، بهروزرسانیهای امنیتی خودکار، پاکسازی سیستم و ارتقای بزرگ بین نسخهها آشنا میشوید.
بهروزرسانی روزانه
سادهترین روش برای بهروزرسانی، اجرای دو دستور زیر است:
# بهروزرسانی فهرست بستهها
sudo apt update
# ارتقای بستههای نصبشده
sudo apt upgradeتفاوت update و upgrade
apt update: فقط فهرست بستههای موجود در مخازن را بهروز میکند. هیچ بستهای نصب نمیشود.apt upgrade: بستههای نصبشده را به نسخههای جدید ارتقا میدهد.
هر دو دستور باید اجرا شوند. update بدون upgrade هیچ فایدهای ندارد.
دستورات کامل بهروزرسانی
برای یک بهروزرسانی کامل:
# 1. بهروزرسانی فهرست
sudo apt update
# 2. ارتقای بستهها
sudo apt upgrade -y
# 3. ارتقای کامل (با حذف بستههای قدیمی در صورت نیاز)
sudo apt full-upgrade -y
# 4. حذف بستههای یتیم
sudo apt autoremove -y
# 5. پاکسازی کش
sudo apt clean| دستور | توضیح |
|---|---|
apt update | بهروزرسانی فهرست بستهها |
apt upgrade | ارتقای بستهها (بدون حذف) |
apt full-upgrade | ارتقای کامل (با حذف در صورت نیاز) |
apt autoremove | حذف وابستگیهای یتیم |
apt autoclean | پاکسازی بستههای قدیمی در کش |
apt clean | پاکسازی کامل کش |
بهروزرسانی امنیتی
بهروزرسانیهای امنیتی در مخزن جداگانهای نگهداری میشوند. مطمئن شوید مخزن security در /etc/apt/sources.list فعال است:
# بررسی مخزن security
grep security /etc/apt/sources.list
# deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmwareاگر این خط وجود ندارد، اضافهاش کنید و سپس بهروزرسانی کنید:
sudo apt update
sudo apt upgradeبهروزرسانی خودکار با unattended-upgrades
برای سرورها، فعالکردن بهروزرسانی خودکار امنیتی توصیه میشود:
# نصب
sudo apt install unattended-upgrades apt-listchanges
# پیکربندی تعاملی
sudo dpkg-reconfigure -plow unattended-upgrades
# گزینهٔ Yes را انتخاب کنیدپیکربندی پیشرفته
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades// /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Origins-Pattern {
"origin=Debian,codename=${distro_codename},label=Debian-Security";
"origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
// "origin=Debian,codename=${distro_codename},label=Debian";
// "origin=Debian,codename=${distro_codename},label=Debian-Updates";
};
// بستههایی که نباید خودکار ارتقا یابند
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
};
// ریاستارت خودکار در صورت نیاز (مثلاً پس از ارتقای کرنل)
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// ایمیل اطلاعرسانی
Unattended-Upgrade::Mail "root";# تست اجرای خشک
sudo unattended-upgrade --dry-run --debug
# اجرای دستی
sudo unattended-upgradeunattended-upgrades برای سرور
این ابزار فقط بهروزرسانیهای امنیتی را نصب میکند، نه ارتقاهای معمولی را. این یعنی پایداری سیستم حفظ میشود، اما آسیبپذیریهای امنیتی بهسرعت پوشش داده میشوند.
بهروزرسانی خودکار با cron
اگر unattended-upgrades نمیخواهید، میتوانید با cron بهروزرسانی زمانبندی کنید:
# ویرایش crontab ریشه
sudo crontab -e# بهروزرسانی روزانه ساعت 3 شب
0 3 * * * /usr/bin/apt update && /usr/bin/apt -y upgrade >> /var/log/apt-cron.log 2>&1
# پاکسازی هفتگی
0 4 * * 0 /usr/bin/apt -y autoremove && /usr/bin/apt clean >> /var/log/apt-cron.log 2>&1بررسی بستههای قابل ارتقا
پیش از بهروزرسانی، میتوانید ببینید چه بستههایی ارتقا مییابند:
# بستههای قابل ارتقا
apt list --upgradable
# خروجی نمونه:
# firefox-esr/stable-security 115.8.0esr-1~deb12u1 amd64 [upgradable from: 115.7.0esr-1~deb12u1]
# openssl/stable-security 3.0.13-1~deb12u1 amd64 [upgradable from: 3.0.11-1~deb12u2]
# linux-image-amd64/stable 6.1+105 amd64 [upgradable from: 6.1+101]پس از بهروزرسانی کرنل
اگر کرنل ارتقا یافته، باید برای اعمال آن ریاستارت کنید:
# بررسی نسخهٔ کرنل در حال اجرا
uname -r
# بررسی نسخهٔ کرنل نصبشده
dpkg -l | grep linux-image
# اگر متفاوت بود، ریاستارت
sudo rebootپس از ارتقای کرنل
پس از ارتقای کرنل، سرویسهای قدیمی ممکن است با ماژولهای قدیمی کرنل در ارتباط باشند. برای اعمال کامل بهروزرسانی، ریاستارت ضروری است. این کار مخصوصاً برای سرورهای تولیدی در زمان تعرفهبندی کمبار (maintenance window) انجام شود.
پاکسازی دورهای
برای جلوگیری از پر شدن دیسک، هر چند هفته یکبار پاکسازی کنید:
# پاکسازی بستههای یتیم
sudo apt autoremove --purge
# پاکسازی کش APT
sudo apt clean
# پاکسازی بستههای rc (حذفشده با تنظیمات مانده)
dpkg -l | awk '/^rc/ {print $2}' | sudo xargs dpkg --purge
# پاکسازی لاگهای قدیمی
sudo journalctl --vacuum-time=30d
sudo journalctl --vacuum-size=500M
# بررسی فضای دیسک
df -hارتقای بزرگ بین نسخهها (مثلاً 11 به 12)
ارتقا بین نسخههای Stable (مثلاً Bullseye به Bookworm) یک فرایند جدی است:
۱. پشتیبانگیری
# پشتیبانگیری از لیست بستهها
dpkg --get-selections > ~/packages.txt
# پشتیبانگیری از پیکربندیها
sudo tar -czf ~/configs-backup.tar.gz /etc /home /var/lib/dpkg۲. بهروزرسانی کامل نسخهٔ فعلی
sudo apt update
sudo apt full-upgrade
sudo apt autoremove --purge۳. تغییر sources.list
# جایگزینی bullseye با bookworm
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list
# بررسی
cat /etc/apt/sources.list۴. بهروزرسانی و ارتقا
# بهروزرسانی فهرست
sudo apt update
# ارتقای حداقلی (بدون حذف)
sudo apt upgrade --without-new-pkgs
# ارتقای کامل
sudo apt full-upgrade
# پاکسازی
sudo apt autoremove --purge
# ریاستارت
sudo reboot۵. بررسی نسخهٔ جدید
cat /etc/debian_version
# 12.5
cat /etc/os-release | grep PRETTY
# PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"ارتقای بزرگ ریسک دارد
ارتقا بین نسخههای Stable میتواند باعث شکسته شدن پیکربندیها، حذف بستهها یا حتی غیرقابل بوت شدن سیستم شود. همیشه پیش از ارتقا، از سیستم پشتیبان کامل بگیرید و در محیط تست ارتقا را امتحان کنید.
خطاهای رایج
۱. خطای lock
E: Could not get lock /var/lib/dpkg/lock-frontendراهحل: یک فرآیند APT دیگر در حال اجراست. صبر کنید یا با sudo kill متوقف کنید.
۲. وابستگیهای شکسته
# رفع خودکار
sudo apt --fix-broken install
# پیکربندی بستههای نیمهنصب
sudo dpkg --configure -a۳. فضای دیسک ناکافی
# پاکسازی
sudo apt clean
sudo apt autoremove --purge
# بررسی
df -h۴. بستههای hold شده
# بررسی
apt-mark showhold
# رفع hold
sudo apt-mark unhold package-name۵. ساختار مخزن تغییر کرده
E: Repository 'http://deb.debian.org/debian bookworm InRelease' changed its 'Codename' valueراهحل:
sudo apt update --allow-releaseinfo-changeروتین هفتگی پیشنهادی
# یکبار در هفته:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove --purge -y
sudo apt clean
sudo journalctl --vacuum-time=30d
df -hترکیب با unattended-upgrades
بهترین استراتژی: unattended-upgrades برای بهروزرسانی خودکار امنیتی + اجرای دستی هفتگی apt upgrade برای بهروزرسانیهای معمولی + پاکسازی ماهانه. این ترکیب امنیت بالا و پایداری را تضمین میکند.
خلاصه و مرحلهٔ بعد
بهروزرسانی Debian ساده است: apt update + apt upgrade + apt autoremove. برای سرورها، unattended-upgrades بهروزرسانی امنیتی را خودکار میکند. ارتقای بزرگ بین نسخهها نیاز به دقت و پشتیبانگیری دارد.
بهعنوان گام بعدی:
- آموزش APT را برای مدیریت بستهها مرور کنید
- آموزش مخازن Debian را برای پیکربندی sources.list ببینید
- آموزش سوالات متداول را برای رفع مشکلات رایج بخوانید
این صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.