Praktik bələdçi / Ubuntu versiyası və arxitekturasının yoxlanması

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.

· 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 -m

Ubuntu 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.'
fi
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.log

Cloud-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-16

apt 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; fi

Update 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.

Yeni obrazı və böyük yeniləməni vacib məlumat daşımayan nüsxədə sınayın. İşləyən bərpa yolunu saxlayın.

Rəsmi mənbələr

  1. Sənəd 1: discourse.ubuntu.com
  2. Sənəd 2: ubuntu.com
  3. Sənəd 3: docs.cloud-init.io
  4. Sənəd 4: manpages.ubuntu.com
  5. Sənəd 5: docs.python.org
  6. Sənəd 6: ubuntu.com

Əlaqəli bələdçilər