فهرست راهنما
فهرست سازگاری پیش از سفارش
نسخههای Ubuntu، محیط اجرا، پایگاه داده، افزونه بومی، ابزار پایش و بکاپ مورد پشتیبانی برنامه را ثبت کنید. سپس بررسی کنید ارائهدهنده همان نسخه و معماری را در ناحیه مورد نیاز عرضه میکند.
Ubuntu 24.04 در زمان انتشار Python 3.12، PHP 8.3 و PostgreSQL 16 را ارائه کرد؛ نسخه اصلاحی بستهها با بهروزرسانی تغییر میکند. سازگاری با نسخه اصلی قدیمیتر، پشتیبانی از این ترکیب را ثابت نمیکند.
نسخه و معماری دریافتشده را شناسایی کنید
فرمانهای زیر فقط اطلاعات را میخوانند. خروجی را پیش از نصب نرمافزار بیشتر همراه یادداشت انتشار ذخیره کنید.
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mبرای دیدن همه ستونها، جدول را بهصورت افقی جابهجا کنید.
| خروجی | معنا |
|---|---|
| VERSION_ID | نسخه توزیع نصبشده |
| uname -r | هسته در حال اجرا؛ ممکن است پس از بهروزرسانی و راهاندازی عوض شود |
| amd64 و x86_64 | نامهای رایج معماری x86 شصتوچهاربیتی |
| arm64 و aarch64 | نامهای رایج معماری Arm شصتوچهاربیتی |
رشته نسخه هسته بهتنهایی نسخه یا پوشش پشتیبانی اوبونتو را مشخص نمیکند. هسته میتواند مخصوص محیط ابری باشد.
آمادهسازی اولیه را بررسی کنید
برخی ایمیجها برای کلید، حساب و شبکه از cloud-init استفاده میکنند. نبودن آن الزاماً خطا نیست؛ روش آمادهسازی ارائهدهنده را مشخص کنید.
if command -v cloud-init >/dev/null 2>&1; then
cloud-init status --long
else
printf '%s\n' 'cloud-init is not installed; check the provider provisioning method.'
fiاگر آمادهسازی هنوز در حال اجراست صبر کنید؛ حالت خطا یا degraded را حتی با SSH فعال بررسی کنید. در صورت وجود cloud-init، گزارشهای مرتبط را ببینید.
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logپیش از اشتراک گزارش، اطلاعات حساس را حذف کنید. اجرای cloud-init clean یا تعویض فایل شبکه برای پنهان کردن خطا راه تشخیص نیست.
بستههای پیشنهادی را پیش از نصب ببینید
فهرست بستهها را تازه کنید و نسخه پیشنهادی و مخزن تأمینکننده را ثبت کنید. این فرمانها بسته برنامه را نصب نمیکنند.
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16Installed: (none) یعنی بسته نصب نشده؛ Candidate: (none) یعنی منابع فعلی بستهای پیشنهاد نمیدهند. ابتدا نام، معماری و بخشهای مخزن را بررسی کنید، نه اینکه یک مخزن نامعلوم اضافه کنید. نسخه برنامه در حال اجرا را هم مستقل از نام بسته بخوانید.
تصمیم سازگاری را با مسیر واقعی برنامه بسنجید
فرض کنید برنامه فقط Python 3.10 و افزونه بومی amd64 دارد. ایمیج پیشفرض Ubuntu 24.04 arm64 دو ناسازگاری دارد. انتخاب amd64 معماری را حل میکند، اما Python پیشفرض را تغییر نمیدهد. محیط مجازی Python نیز نسخه مفسر سازنده خود را عوض نمیکند.
Python سیستم اوبونتو را برای حل نیاز یک برنامه جایگزین نکنید. ارتقای برنامه یا محیط اجرای مستقل دارای برنامه نگهداری را بررسی کنید. مسیر افزونه، عملیات پایگاه داده، کار پسزمینه و بازیابی را در محیط آزمایشی اجرا کنید.
نگهداری بسته و ارتقای نسخه را جدا کنید
اوبونتو، مخزن شخص ثالث و ایمیج کانتینر متولی و پوشش متفاوت دارند. ثابت کردن نسخه برای تکرارپذیری، برنامه بهروزرسانی امنیتی را حذف نمیکند. پس از تازه کردن فهرست بستهها، وضعیت را ببینید.
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiارتقای توزیع را روی کپی یا ماشین تازه آزمایش کنید. بازگشت به اسنپشات قبل از ارتقا، سفارش یا داده نوشتهشده بعد از آن را برنمیگرداند. نسخهها، منابع بسته، نتیجه تست و آخرین بازیابی را ثبت کنید. سپس انتشار نخستین سایت را انجام دهید.
نسخههای نرمافزار مثالهای سازگاریاند. نام بسته، نسخه پیشنهادی و پشتیبانی برنامه را در ایمیج واقعی بررسی کنید؛ این صفحه نتیجه تست همه ترکیبها نیست.
پرسشهای رایج
آیا جدیدترین LTS همیشه بهترین انتخاب است؟
پنجره نگهداری طولانی مفید است، اما فقط وقتی برنامه، ابزارها و ارائهدهنده آن نسخه را پشتیبانی کنند.
آیا تعویض ایمیج داده را حفظ میکند؟
نصب مجدد ارائهدهنده معمولاً دیسک را جایگزین میکند. روش دقیق را بخوانید و پیش از اقدام بازیابی نسخه مستقل را آزمایش کنید.
کانتینر نیاز به بررسی معماری را از بین میبرد؟
خیر. ساخت مناسب پلتفرم، افزونههای بومی و وابستگی به هسته میزبان همچنان مهماند.