Ubuntu versiyası və arxitekturasını yoxlayın
Ubuntu obrazını seçərkən bütün tətbiq mühitini yoxlayın: runtime, verilənlər bazası, native modullar, CPU arxitekturası, backup və monitorinq alətləri bir-birinə uyğun olmalıdır. Proqramın işə düşməsi onun həmin mühitdə rəsmi dəstəkləndiyini göstərmir.
VPSuntu · Yenilənib: · Oxuma vaxtı: təxminən 4 dəqiqə
Bələdçinin məzmunu
Tətbiqin dəstəklədiyi mühiti müəyyən edin
Tətbiq istehsalçısının dəstəklədiyi Ubuntu, runtime və verilənlər bazası versiyalarını yazın. Ubuntu 24.04 standart paketlərində Python 3.12, PHP 8.3 və PostgreSQL 16 var; konkret patch versiyaları yenilənir. Native modullar, backup agenti və monitorinq də bu seçimə uyğun olmalıdır. LTS cədvəlini həmin tələblərlə birlikdə qiymətləndirin.
Əməliyyat sistemi, kernel və arxitekturanı ayırın
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mUbuntu buraxılışını /etc/os-release ilə müəyyən edin. Kernel nömrəsi təkbaşına OS buraxılışını və onun dəstək müddətini göstərmir. amd64 ilə x86_64 eyni arxitekturanın adlarıdır; arm64 ilə aarch64 digər uyğun cütdür. Native fayllar və container obrazı hədəf arxitekturaya uyğun gəlməlidir.
Cloud-init və başlanğıc vəziyyətini yoxlayın
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.'
fisudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logCloud-init işləyirsə, bitməsini gözləyin. Onun olmaması ayrıca nasazlıq sübutu deyil: provayder başqa hazırlama üsulu seçə bilər. Error və degraded vəziyyətlərinin səbəbini jurnallarda araşdırın, paylaşmazdan əvvəl məxfi məlumatı gizlədin. Xətanı gizlətmək üçün cloud-init clean işlətməyin və şəbəkəni səbəbsiz dəyişməyin. Cloud-init-in tamamlanması tətbiqin sağlamlığını ayrıca təsdiqləmir.
Paket mənbəyini və namizəd versiyanı yoxlayın
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16apt update paket indeksini yeniləyir, quraşdırılmış proqramları yüksəltmir. Installed: (none) paket quraşdırılmayıb deməkdir; Candidate: (none) isə uyğun namizəd tapılmadığını göstərir. Paket adını, arxitekturanı və aktiv repository komponentlərini yoxlayın. Təkcə xətanı aradan qaldırmaq üçün təsadüfi repository əlavə etməyin. Metapackage konkret versiyalı paketə yönələ bilər; verilənlər bazası müştərisini quraşdırmaq serverin quraşdırılması ilə eyni deyil.
Runtime və native modul problemlərini ayrı həll edin
Fərz edək ki, tətbiqə Python 3.10 və yalnız amd64 üçün hazırlanmış modul lazımdır. Ubuntu 24.04 arm64 seçimi həm runtime, həm də arxitektura baxımından uyğun gəlmir. amd64-ə keçid arxitekturanı düzəldir, amma Python 3.12-ni 3.10 etmir. venv öz-özünə başqa interpreter versiyası quraşdırmır.
Tətbiqi yeniləməyi və ya dəstəklənən runtime/container seçməyi nəzərdən keçirin. Sistemin Python-unu əvəz etməyin. Köhnə OS seçilirsə, təhlükəsizlik dəstəyi və köç planı olmalıdır. Yalnız ana səhifəni açmaqla kifayətlənməyin: modul, verilənlər bazası, fon işi və backup bərpasını sınayın.
Container və dəstək sərhədlərini anlayın
Container host kernel, şəbəkə və saxlama sistemindən istifadə edir. Başqa arxitekturanın emulyasiyası native işləmədən fərqlənir. Persistent volume üçün ayrıca ehtiyat nüsxə lazımdır. Obrazı digest ilə sabitləmək təkrarlana bilən deploy-a kömək edir, lakin təhlükəsizlik yeniləmələrini planlaşdırmağı əvəz etmir.
Ubuntu Main-in standart dəstəyi, Ubuntu Pro əhatəsi və üçüncü tərəf paketlərinin dəstəyi fərqli şərtlərə malikdir. Xarici repository-dəki proqram Ubuntu ilə avtomatik eyni müddətə dəstək almır.
Yeniləmə və reboot üçün plan hazırlayın
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiUpdate və ya upgrade uğursuz bitibsə, əvvəlcə səbəbi düzəldin. Reboot-required işarəsini və yeniləmə vəziyyətini oxuyun; həmin işarənin olmaması sistemin aktual olduğunu sübut etmir. Xidmətlərin yenidən başladılması və reboot üçün texniki xidmət vaxtı ayırın.
Böyük release upgrade-i əvvəlcə nüsxədə sınayın: tətbiq, baza, modullar, repository-lər və son məlumat sinxronlaşdırılması birlikdə yoxlanmalıdır. Geri qayıtma planında yeni yazılan məlumatlar da nəzərə alınsın. Upgrade-dən əvvəlki snapshot sonradan gələn sifarişləri qaytarmır.
Yoxlanmış konfiqurasiyanı qeyd edin
OS, arxitektura, kernel, image, tətbiq build-i, runtime, lockfile, repository və hazırlama addımlarını yazın. Məxfi açarları qeydə əlavə etməyin. Keçən və uğursuz testləri, məsul şəxsi, texniki xidmət vaxtını, xəbərdarlıq kanalını, backup yerini, bərpa üsulunu və son sınaq tarixini saxlayın.
Tez-tez verilən suallar
Ən yeni Ubuntu həmişə uyğun seçimdir?
Tətbiq və bütün asılılıqlar həmin buraxılışı dəstəkləməlidir. Yenilikdən əlavə uyğunluğu və dəstək müddətini qiymətləndirin.
arm64 və amd64 sərbəst əvəz olunur?
Native modullar və ikilik fayllar arxitekturadan asılı ola bilər. Bütün tətbiq mühitini yoxlayın.
Container backup ehtiyacını aradan qaldırır?
Xeyr. Persistent məlumatları və bərpa addımlarını ayrıca saxlayıb sınamaq lazımdır.