Praktinis gidas / Atvaizdas ir paketai

Ubuntu versija ir architektūra prieš diegimą

Ubuntu versija ir architektūra turi atitikti programą dar prieš užsakant VPS. Gavę serverį patikrinkite, koks atvaizdas įdiegtas, ar baigtas pradinis paruošimas ir kokias paketų versijas iš tikrųjų siūlo saugyklos.

· Atnaujinta · Skaitymas: apie 4 min.

Šiame gide

Suderinkite reikalavimus prieš sukūrimą

Surašykite programos palaikomas Ubuntu laidas, vykdymo aplinkas ir duomenų bazes. Patikrinkite kiekvieno dvejetainio plėtinio, konteinerio ir kopijų agento architektūrą. Patvirtinkite, kad tiekėjas siūlo šį derinį reikiamame regione. Ilgas palaikymo laikotarpis naudingas tik jei veikia visi reikalingi komponentai.

Ubuntu 24.04 pavyzdys: ši laida pristatė Python 3.12, PHP 8.3 ir PostgreSQL 16 kaip atitinkamas numatytąsias versijas. Pataisų versijos keičiasi. Senesnę pagrindinę versiją palaikanti programa nebūtinai palaiko naująją. Priežiūros laikotarpius rasite Ubuntu LTS lentelėje.

Nustatykite gautą sistemą

VPS viduje vykdykite informacines komandas ir išsaugokite rezultatą prieš papildomą diegimą.

cat /etc/os-release
uname -r
dpkg --print-architecture
uname -m

Mažame ekrane slinkite lentelę į šoną, kad matytumėte visus stulpelius.

RezultatasReikšmė
VERSION_ID faile /etc/os-releaseĮdiegta Ubuntu laida
uname -rŠiuo metu veikiantis branduolys
amd64 / x86_64Paketų ir mašinos pavadinimai 64 bitų x86 sistemai
arm64 / aarch64Įprasti 64 bitų Arm pavadinimai

Vien branduolio vardas nenurodo Ubuntu laidos ir jos palaikymo. Debesijos atvaizdas gali naudoti specialų branduolį. Nemanykite, kad amd64 failas veiks arm64 be pakeitimų: raskite palaikomą Arm variantą arba aiškiai palaikomą alternatyvą.

Įsitikinkite, kad pradinis paruošimas baigtas

Dalis atvaizdų paskyroms, raktams ir tinklui naudoja cloud-init. Pirma patikrinkite jo buvimą. Nebuvimas savaime nėra klaida — tiekėjas gali naudoti kitą paruošimo būdą.

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

Running reiškia, kad darbas dar vyksta. Error ar degraded reikia tirti net jei SSH veikia. Kai cloud-init yra, peržiūrėkite žurnalus.

sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.log

Pradiniai scenarijai gali išvesti paslaptis; prieš dalydamiesi jas pašalinkite. Nenaudokite cloud-init clean ir nekeiskite tinklo failų vien norėdami paslėpti klaidą. Baigtas paruošimas dar nepatvirtina duomenų bazės ar kopijų užduoties sveikumo.

Peržiūrėkite siūlomas paketų versijas

Atnaujinkite indeksą ir peržiūrėkite kandidatines reikalingų komponentų versijas. Šis veiksmas pačių programų paketų neįdiegia.

sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16

Installed: (none) reiškia, kad paketas neįdiegtas, Candidate: (none) — kad dabartiniai šaltiniai jo nesiūlo. Prieš pridėdami atsitiktinę saugyklą patikrinkite vardą, architektūrą ir įjungtus Ubuntu komponentus.

php bei postgresql metapaketai parenka numatytąją realizaciją. Peržiūrėkite ir konkrečios versijos paketą. Jau įdiegtai programai tikrinkite tikrą vykdomą failą ar paslaugą; duomenų bazės kliento versija gali skirtis nuo serverio.

Išspręskite konkretų versijų konfliktą

Tarkime, programa palaiko tik Python 3.10, o jos plėtinys sukurtas tik amd64. Tai hipotetinis pavyzdys. Ubuntu 24.04 arm64 neatitinka dviejų sąlygų: numatytasis Python yra 3.12 ir architektūra kita. Perėjimas į amd64 išsprendžia tik vieną problemą.

Virtuali Python aplinka naudoja ją sukūrusį interpretatorių; ji nepaverčia Python 3.12 į 3.10. Nekeiskite Ubuntu sisteminio Python dėl vienos programos. Galite atnaujinti programą arba pasirinkti atskirai prižiūrimą vykdymo aplinką ar konteinerį. Senesnė Ubuntu taip pat turi ribotą likusį palaikymą.

Bandymų aplinkoje patikrinkite plėtinio funkciją, duomenų bazės operaciją, foninį darbą ir kopijos atkūrimą. Užrašykite versijas bei programos build. Sėkmingas įdiegimas ir vienas pradinis puslapis — per siauras suderinamumo testas.

Suplanuokite konteinerių ir paketų priežiūrą

Konteineris atskiria programos priklausomybes, bet vis tiek naudoja serverio branduolį, diską ir tinklą. Patikrinkite platformai tinkamą palaikomą atvaizdą. Emuliacija keičia našumo ir palaikymo prielaidas. Duomenis saugokite dokumentuotuose tomuose ir bandykite atkurti nepriklausomai nuo konteinerio.

Fiksuokite versiją ar digest atkuriamam diegimui, bet suplanuokite atnaujinimus. Ubuntu Main, Ubuntu Pro, trečiųjų šalių saugyklos ir konteinerių atvaizdai turi skirtingą aprėptį bei prižiūrėtojus. Užrašykite, kas atnaujina kiekvieną sluoksnį.

Atskirkite paketų ir visos laidos atnaujinimą

Šios komandos parodo laukiančius paketus ir neveikiančias paslaugas. Jos neatlieka visos Ubuntu laidos atnaujinimo.

apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fi

Pritaikę pakeitimus pakartokite programos bandymus; priežiūros metu paslaugos gali būti paleistos iš naujo. Perkrovimo žyma naudinga, tačiau jos nebuvimas neįrodo, kad visi komponentai atnaujinti.

Laidos atnaujinimą pirmiausia bandykite kopijoje ar naujoje VM. Patikrinkite saugyklas, bazės migraciją ir grįžimo kelią, įskaitant po pakeitimo gautus naujus įrašus. Ankstesnė momentinė kopija vėlesnių užsakymų neturi. Išsaugokite atvaizdo ID, versijas, testų rezultatus ir atkūrimo planą be paslapčių. Tada tęskite HTTPS diegimą.

Dažni klausimai

Ar Ubuntu 24.04 visada geriausias pasirinkimas?

Tai konkretus šio gido pavyzdys. Rinkitės palaikomą laidą, suderinamą su visa programa ir siūlomą tiekėjo.

Ar galima pakeisti atvaizdą neprarandant failų?

Tiekėjo perinstaliavimas dažnai pakeičia serverio diską. Pirmiausia patikrinkite procedūrą, eksportuokite duomenis ir išbandykite atkūrimą. Tai nėra tas pats, kas laidos atnaujinimas veikiančioje sistemoje.

Fiksuokite tikrus savo VPS rezultatus. Įdiegtas paketas nėra įrodymas, kad visos programos funkcijos ir atkūrimas patikrinti.

Susiję gidai