Käytännön opas / Levykuvan tarkistus

Ubuntu-levykuvan valinta ja järjestelmän tarkistus

Ubuntu-levykuvan nimi ei yksin kerro sovelluksen yhteensopivuutta. Tarkista käyttöjärjestelmän versio, arkkitehtuuri, paketit ja ensimmäisen käynnistyksen valmistuminen ennen tietojen siirtoa.

· Päivitetty · Lukuaika noin 3 min

Tämän oppaan sisältö

Tee sovelluksen vaatimuksista tarkistuslista

Kirjaa tuettu Ubuntu-versio, runtime, tietokanta, natiivit lisäosat, konttikuvat sekä varmuuskopiointi- ja valvontaohjelmat. Tarkista myös palveluntarjoajan tarjoamat kuvat valitussa sijainnissa. Ohjelman käynnistyminen ja valmistajan tuki ovat eri asioita.

Ubuntu 24.04:n julkaisun pakettiperheisiin kuuluvat Python 3.12, PHP 8.3 ja PostgreSQL 16. Päivitykset ja valitut pakettilähteet muuttavat saatavilla olevia paketteja; nimet eivät takaa oman sovelluksen yhteensopivuutta.

Tunnista saamasi järjestelmä

Aja palvelimen terminaalissa:

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

VERSION_ID kertoo Ubuntu-julkaisun. Ytimen versio ei yksin kerro käyttöjärjestelmän tukiaikaa. dpkg:n amd64 vastaa uname-tulosteen x86_64:ää; arm64 vastaa aarch64:ää. Arkkitehtuurit tarvitsevat omat natiivibinäärinsä.

Säilytä tiedot yhdessä palveluntarjoajan levykuvatunnisteen kanssa. LTS-versioiden tukivuodet auttavat ylläpitojakson arvioinnissa.

Odota cloud-initin valmistumista

Jos kuva käyttää cloud-initiä, ensimmäisen käynnistyksen käyttäjä-, avain-, verkko- ja pakettiasetukset voivat olla vielä kesken. Tarkista tila ennen rinnakkaista pakettien käsittelyä:

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

Englanninkielinen ilmoitus kertoo tässä esimerkissä, jos cloud-init-komentoa ei ole. Running-tilassa odota valmistumista. Error- tai degraded-tilassa selvitä lokit:

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

Lokeissa voi olla tunnisteita ja muuta arkaluontoista tietoa. Poista ne ennen jakamista. Älä tyhjennä cloud-initin tilaa tai korvaa asetustiedostoja vain virheilmoituksen häivyttämiseksi.

Katso pakettilähteen tarjoamat versiot

Päivitä pakettihakemisto ja tarkista ehdokkaat palvelimella:

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

apt update päivittää pakettitiedot, ei asenna uusia versioita. Installed näyttää asennetun version, Candidate lähteiden tarjoaman. (none) tarkoittaa, ettei kyseisessä kohdassa ole versiota. Selvitä paketin nimi, arkkitehtuuri ja käytössä olevat lähdekomponentit ennen satunnaisen ulkopuolisen lähteen lisäämistä.

Metapaketti voi ohjata varsinaiseen versioituun pakettiin. Tarkista myös sovelluksen oikeasti käyttämä executable ja runtime sekä tietokannan palvelinversio; asiakasohjelman versio ei todista palvelimen versiota.

Esimerkki kahdesta erillisestä yhteensopivuusongelmasta

Oletetaan sovellus, joka vaatii Python 3.10:n ja valmiiksi käännetyn amd64-lisäosan. Ubuntu 24.04 arm64 -koneessa on kaksi eri ongelmaa. amd64-kuvan valinta korjaa arkkitehtuurin, mutta ei Python-versiovaatimusta.

Virtuaaliympäristö käyttää valittua Python-tulkkia; se ei muuta 3.12:ta 3.10:ksi. Älä vaihda järjestelmän Pythonia sovelluksen vuoksi. Selvitä sovelluspäivitys tai ylläpidetty erillinen runtime- tai konttiratkaisu. Vanhempi käyttöjärjestelmä ei ole automaattisesti paras korjaus.

Testaa natiivin lisäosan lataus, tietokantatoiminnot, taustatyö ja palautus. Pelkkä etusivun avautuminen ei riitä hyväksymistestiksi.

Kontti ei poista ylläpitovastuuta

Kontti jakaa isäntäkoneen ytimen ja tarvitsee toimivan tallennuksen ja verkon. Käytä arkkitehtuuriin sopivaa konttikuvaa; emulointi on erillinen ratkaisu omine rajoituksineen.

Versiolukitus lisää toistettavuutta, mutta edellyttää päivityssuunnitelmaa. Varmista pysyvät levyt ja sovelluskohtainen palautus. Ubuntu Main -pakettien, Ubuntu Pron ja kolmannen osapuolen ohjelmien tukiehdot eivät ole samat.

Päivitystarkistus ja versionvaihto

Kun pakettihakemisto on ajan tasalla, tarkista päivitettävät paketit, epäonnistuneet palvelut ja uudelleenkäynnistyspyyntö:

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

Nämä komennot eivät päivitä jakeluversiota. Uudelleenkäynnistysmerkinnän puuttuminen ei yksin todista kaiken olevan ajan tasalla; palvelut voivat tarvita hallittuja uudelleenkäynnistyksiä.

Testaa jakelupäivitys kopiossa tai uudella koneella. Varmista sovellus, tiedot ja palautus ennen siirtoa. Tilannekuvan jälkeen syntyneet kirjoitukset on huomioitava paluusuunnitelmassa.

Tallenna päätöksen perusteet

Kirjaa Ubuntu-julkaisu, arkkitehtuuri, ydin, levykuvatunniste, sovellusversio ja riippuvuuksien lukitustiedostot. Lisää pakettien alkuperä, tarvittavat asennusvaiheet ilman salaisuuksia sekä hyväksymis- ja palautustestien tulokset.

Sovi päivityksistä vastaava henkilö ja seuraava ylläpitoajankohta. Kun yhteensopivuus on varmistettu, jatka ensimmäisen sivuston käyttöönottoon.

Kysymyksiä ja vastauksia

Kannattaako aina valita uusin LTS?

Valitse tuettu versio, jonka sovellus ja palveluntarjoaja tukevat. Uusimman version hyöty riippuu vaatimuksista ja ylläpitosuunnitelmasta.

Voiko amd64-ohjelman kopioida suoraan Arm-koneelle?

Natiivibinääri ei yleensä toimi sellaisenaan. Tarvitset oikean arkkitehtuurin version tai erikseen arvioidun emulointiratkaisun.

Miksi asennettu ja tarjolla oleva pakettiversio eroavat?

Päivityksiä voi olla asentamatta tai pakettilähteet voivat erota. Tarkista lähteet ja sovelluksen käyttämä versio ennen muutoksia.

Tarkistukset on rajattu käyttöjärjestelmään ja sovelluksen yhteensopivuuteen. Ne eivät mittaa palveluntarjoajan suorituskykyä.

Seuraavat hyödylliset oppaat