بهروزرسانی Arch Linux
راهنمای کامل بهروزرسانی Arch Linux: بهترین روشها، پشتیبانگیری، رفع مشکل و نگهداری منظم سیستم.
بهروزرسانی منظم، مهمترین وظیفهٔ هر کاربر Arch Linux است. بهدلیل مدل rolling-release، نگهداری منظم برای پایداری و امنیت سیستم ضروری است. در این آموزش، فرایند بهروزرسانی، بهترین روشها و رفع مشکلات رایج را مرور میکنیم.
چرا بهروزرسانی در Arch مهم است؟
در توزیعهای rolling-release مانند Arch:
- بستهها دائماً بهروز میشوند (هر روز ممکن است دهها بهروزرسانی باشد)
- وابستگیها ممکن است بین بهروزرسانیها تغییر کنند
- گاهی بهروزرسانیها نیاز به مداخلهٔ دستی دارند
- اگر مدتطولانی بهروز نکنید، ممکن است سیستم غیرقابل بهروزرسانی شود
قانون طلایی Arch
هفتهای حداقل یکبار (ترجیحاً روزانه) سیستم را بهروز کنید. اگر بیش از یک ماه بهروز نکردهاید، با احتیاط ادامه دهید و اخبار Arch را حتماً بخوانید.
قبل از بهروزرسانی
۱. بررسی اخبار Arch
قبل از هر بهروزرسانی، صفحهٔ Arch Linux News را بررسی کنید. اگر وصلهٔ دستی لازم است، ابتدا آن را انجام دهید.
۲. تهیهٔ نسخهٔ پشتیبان
اگر از btrfs استفاده میکنید، قبل از بهروزرسانی اسنپشات بگیرید:
# اگر timeshift نصب است
sudo timeshift --create --comments "Before update" --tags D
# یا با btrfs subvolume
sudo btrfs subvolume snapshot / /snapshots/pre-update-$(date +%Y%m%d)۳. تهیهٔ فهرست بستهها
# ذخیرهٔ فهرست بستههای نصبشده
pacman -Qqe > ~/pkglist.txt
# ذخیرهٔ بستههای AUR
pacman -Qqm > ~/aurlist.txtبهروزرسانی استاندارد
# همگامسازی مخازن + ارتقای همهٔ بستهها
sudo pacman -Syuاین دستور:
۱. فهرست بستهها را از مخازن همگام میکند (-S)
۲. پایگاه دادهٔ محلی را بهروز میکند (-y)
۳. تمام بستههای نصبشده را ارتقا میدهد (-u)
هرگز -Sy package را اجرا نکنید
دستور sudo pacman -Sy package (بدون u) مخزن را بهروز میکند اما بستههای دیگر را ارتقا نمیدهد. این کار میتواند وابستگیها را بشکند. همیشه از -Syu استفاده کنید.
بهروزرسانی با AUR
اگر از yay یا paru استفاده میکنید:
# بهروزرسانی کامل (مخازن + AUR)
yay
# یا
yay -Syu# بهروزرسانی فقط AUR
yay -Sua
# بهروزرسانی فقط مخازن رسمی
yay -Syu --repoپس از بهروزرسانی
۱. بررسی سرویسهای در حال اجرا
پس از بهروزرسانی، سرویسهای قدیمی ممکن است هنوز در حال اجرا باشند. بهتر است آنها را restart کنید:
# فهرست سرویسهای قدیمی (نصبشده اما در حال اجرا با نسخهٔ قدیمی)
sudo systemctl list-units --type=service --state=running
# یا ابزار speziell
sudo pacman -S needrestart
sudo needrestart۲. راهاندازی مجدد (در صورت نیاز)
اگر کرنل بهروزرسانی شده، باید restart کنید:
# بررسی نسخهٔ کرنل در حال اجرا در برابر نصبشده
uname -r
pacman -Q linuxاگر متفاوت بودند، reboot کنید.
۳. پاکسازی کش
# نگهداشتن ۳ نسخهٔ اخیر هر بسته
sudo paccache -r
# یا نگهداشتن فقط نسخهٔ نصبشده
sudo paccache -ruk0بهروزرسانی پس از غیبت طولانی
اگر مدتطولانی (مثلاً چند ماه) سیستم را بهروز نکردهاید:
۱. اخبار Arch را از تاریخ آخرین بهروزرسانی بخوانید
تمام اخبار از آخرین بهروزرسانی تا کنون را مرور کنید و وصلههای دستی را اعمال کنید.
۲. بهروزرسانی keyring اول
# ابتدا فقط keyring را بهروز کنید
sudo pacman -Sy archlinux-keyring۳. بهروزرسانی کامل
# بهروزرسانی با overwrite در صورت نیاز
sudo pacman -Syu۴. در صورت خطای وابستگی
# بهروزرسانی با حذف bستههای mtree
sudo pacman -Syu --overwrite '*'
# یا اگر overwriting لازم است
sudo pacman -Syu --overwrite '/path/to/file/*'اگر سیستم خیلی قدیمی است
اگر بیش از ۶ ماه بهروز نکردهاید، گاهی نصب مجدد از ابتدا سادهتر است. اما اگر دادههای مهم دارید، میتوانید با دقت فرایند بهروزرسانی را دنبال کنید. در فروم Arch Linux میتوانید کمک بگیرید.
خطاهای رایج
خطای "key could not be looked up"
# راهاندازی مجدد keyring
sudo pacman-key --init
sudo pacman-key --populate archlinux
# بهروزرسانی keyring
sudo pacman -Sy archlinux-keyring
sudo pacman -Syuخطای "conflicting files"
اگر دو بسته فایل یکسانی دارند:
# بررسی کدام فایل تداخل دارد
sudo pacman -Syu 2>&1 | grep "exists in filesystem"
# در صورت اطمینان، overwrite کنید
sudo pacman -Syu --overwrite '/path/to/file'خطای "failed to commit transaction"
# پاکسازی پایگاه دادهٔ قفلشده
sudo rm /var/lib/pacman/db.lck
# سپس بهروزرسانی
sudo pacman -Syuسیستم بوت نمیشود پس از بهروزرسانی
اگر کرنل خراب شد:
# از USB زنده Arch بوت کنید
# پارتیشن ریشه را نصب کنید
sudo mount /dev/sda3 /mnt
# chroot
arch-chroot /mnt
# reinstall کرنل
pacman -S linux
# rebuild initramfs
mkinitcpio -P
# خروج و reboot
exit
rebootنگهداشتن linux-lts
همیشه linux-lts را بهعنوان پشتیبان نصب داشته باشید. اگر کرنل اصلی خراب شد، میتوانید از منوی بوت LTS را انتخاب کنید.
sudo pacman -S linux-ltsنگهداری منظم
هفتگی
# بهروزرسانی
sudo pacman -Syu
# پاکسازی بستههای یتیم
sudo pacman -Rns $(pacman -Qdtq)
# پاکسازی کش
sudo paccache -rماهانه
# بررسی فایلهای پیکربندی تغییر نیافته
sudo pacdiff
# بهینهسازی پایگاه دادهٔ pacman
sudo pacman -Fy
# بررسی سلامت فایلهای سیستمی
sudo pacman -Qkخودکارسازی بهروزرسانی
تایمر سیستماتیک (با احتیاط)
# ساخت تایمر برای بهروزرسانی هفتگی
sudo nano /etc/systemd/system/auto-update.timer[Unit]
Description=Weekly auto-update
[Timer]
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.targetبهروزرسانی خودکار خطرناک است
بهروزرسانی خودکار در Arch توصیه نمیشود، چون گاهی نیاز به مداخلهٔ دستی است. اگر خودکارسازی میکنید، حتماً اسکریپت بررسی اخبار و snapshot خودکار نیز داشته باشید.
ابزارهای مفید
# نصب ابزارهای مفید نگهداری
sudo pacman -S pacman-contrib reflector
# سرویس پاکسازی خودکار کش
sudo systemctl enable --now paccache.timer
# سرویس بهروزرسانی آینهها
sudo systemctl enable --now reflector.timerخلاصه
در این آموزش:
- اهمیت بهروزرسانی منظم را یاد گرفتید
- فرایند بهروزرسانی استاندارد را دنبال کردید
- با AUR بهروزرسانی کردید
- خطاهای رایج را رفع کردید
- نگهداری منظم را پیکربندی کردید
بهروزرسانی منظم، کلید پایداری در Arch Linux است. اگر این فرایند را رعایت کنید، Arch میتواند یکی از پایدارترین توزیعهای لینوکس برای شما باشد.
در آموزش بعدی، سوالات متداول را پاسخ میدهیم.
پرسشهای رایج
چندبار باید بهروز کنم؟
حداقل هفتهای یکبار. اگر روزانه بهروز کنید، هر بار تغییرات کمتر و ریسک کمتری دارد. اما روزانه الزامی نیست.
اگر یک ماه بهروز نکرده باشم چه؟
نگران نباشید. فقط اخبار Arch را از تاریخ آخرین بهروزرسانی بخوانید، سپس sudo pacman -Syu را اجرا کنید. در ۹۰٪ مواقع بدون مشکل کار میکند.
آیا باید بعد از هر بهروزرسانی reboot کنم؟
خیر. فقط اگر کرنل بهروزرسانی شده یا کتابخانههای حیاتی (glibc, systemd) تغییر کردهاند، reboot توصیه میشود. در غیر این صورت، restart سرویسهای مربوطه کافی است.
چگونه بدانم کدام سرویسها نیاز به restart دارند؟
# نصب needrestart
sudo pacman -S needrestart
# اجرا
sudo needrestartاین ابزار به شما میگوید کدام سرویسها از کتابخانههای قدیمی استفاده میکنند.
این صفحه در تاریخ ۹ تیر ۱۴۰۵ بهروزرسانی شده است.