Praktisk veiledning / Ubuntu-miljø

Ubuntu-versjon og arkitektur som programvaren støtter

Kontroller Ubuntu-versjon og arkitektur før du flytter data eller trafikk. Navnet i bestillingspanelet er bare starten: du må undersøke systemet som ble levert, pakkene som er tilgjengelige og arbeidsflytene applikasjonen trenger.

· Oppdatert · Omtrent 4 min lesetid

I denne veiledningen

Lag en kompatibilitetsliste først

Noter støttede Ubuntu-utgaver, kjøremiljøer, databaseversjoner og arkitekturer for applikasjonen. Ta med native utvidelser, container-images og agenter for kopiering og overvåking. Skill leverandørstøtte fra noe du selv har prøvd uten støtteavtale.

Ubuntu 24.04 er et konkret eksempel: standardutgaven introduserte Python 3.12, PHP 8.3 og PostgreSQL 16. Vedlikeholdsversjoner endres gjennom oppdateringer. En applikasjon for eldre hovedversjoner er ikke automatisk kompatibel. Bruk LTS-oversikten sammen med programkravene.

Se hva instansen faktisk kjører

Kjør disse lesekommandoene inne på VPS-en. De viser distribusjon, kjørende kjerne, pakkearkitektur og maskinarkitektur. Lagre resultatene før du installerer flere komponenter.

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

På små skjermer kan du rulle tabellen sidelengs for å se alle kolonnene.

FeltBetydning
VERSION_ID i os-releaseUbuntu-utgaven som er installert
uname -rKjernen som kjører akkurat nå
amd64 / x86_64Vanlige pakkenavn og maskinnavn for 64-bits x86
arm64 / aarch64Tilsvarende navn for 64-bits Arm

Kjerneversjonen alene fastslår verken Ubuntu-utgave eller støtteomfang. Leverandøren kan bruke en tilpasset skykjerne. En binærfil for amd64 kjører ikke nødvendigvis direkte på arm64.

Undersøk den første konfigureringen

Mange images bruker cloud-init til nøkler, kontoer og nettverk. Fravær er ikke automatisk en feil; spør hvordan akkurat dette imaget klargjøres.

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

Hvis cloud-init fremdeles kjører, er oppsettet ikke ferdig. Error eller degraded må undersøkes selv om du får logget inn. Les de relevante loggene når cloud-init er installert.

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

Loggene kan inneholde hemmeligheter fra oppsettsskript. Fjern slike opplysninger før deling. Ikke kjør cloud-init clean eller erstatt nettverksfiler bare for å få bort en feilmelding. Fullført initialisering beviser heller ikke at databasen eller applikasjonen fungerer.

Sjekk pakkekilder og versjoner

Oppdater pakkelisten og undersøk kandidatene for komponentene du trenger. Kommandoen apt update oppdaterer metadata; den installerer ikke disse applikasjonspakkene.

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

Installed: (none) betyr at pakken ikke er installert. Candidate: (none) betyr at de aktive pakkekildene ikke tilbyr kandidaten nå. Kontroller navn, arkitektur og Ubuntu-komponenter før du legger til et tilfeldig lager.

Metapakker som php velger en standardimplementasjon. Undersøk også den versjonerte pakken. Kommandoer som python3 --version viser den aktuelle kjørbare filen; databaseklienten kan ha en annen versjon enn serveren.

Prøv en konkret avhengighetskonflikt

Anta at applikasjonen krever Python 3.10 og en utvidelse som bare finnes for amd64. Dette er et tenkt eksempel. Et standard Ubuntu 24.04 arm64-image treffer to hindringer: Python-versjonen og arkitekturen.

Å bytte til amd64 løser ikke Python-kravet. Et virtuelt Python-miljø isolerer pakker med interpreteren det ble laget med; det gjør ikke 3.12 om til 3.10. Ikke erstatt Ubuntus system-Python for å oppfylle et applikasjonskrav.

Vurder en oppdatert applikasjon eller et separat vedlikeholdt kjøremiljø med dokumentert støtte. Test den aktuelle utvidelsen, en databaseoperasjon, en bakgrunnsjobb og gjenoppretting i et eget miljø. At installasjonen fullføres, er for lite som godkjenning.

Behandle containere og vedlikehold som egne lag

Containere kan skille applikasjonens avhengigheter fra standardpakkene, men deler fortsatt vertens kjerne, nettverk og lagring. Velg et støttet image for arkitekturen. Emulering endrer forutsetningene for ytelse og støtte.

Bevar data i kjente volumer og øv på å gjenopprette dem uten den opprinnelige containeren. Versjonslåsing gjør oppsettet gjentakbart, men må kombineres med planlagte sikkerhetsoppdateringer. Ubuntu-støtte dekker ikke automatisk tredjepartspakker og nedlastede binærfiler.

Skill pakkeoppdateringer fra en ny Ubuntu-utgave

Etter oppdatering av pakkelisten kan du undersøke ventende pakker, mislykkede tjenester og et eventuelt omstartsvarsel. Dette utfører ingen distribusjonsoppgradering.

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

Planlegg et passende vindu for endringene; tjenester kan starte på nytt. Gjenta applikasjonstestene etterpå. Fravær av omstartsfilen beviser ikke at alle komponenter er oppdatert.

Test bytte av Ubuntu-utgave på en kopi eller en ny maskin. Kontroller databaseformat, pakkelagre og utvidelser på nytt. Tilbakerulling må ta hensyn til nye data etter byttet: et gammelt snapshot inneholder ikke senere bestillinger.

Dokumenter image-ID, utgave, arkitektur, programversjoner, testresultater og siste gjenoppretting uten å lagre hemmeligheter i notatene. Når miljøet passer, fortsett med publisering av nettsiden.

Spørsmål og svar

Må jeg alltid velge nyeste LTS?

Velg en støttet utgave som hele løsningen og leverandøren støtter. Kontroller gjenværende vedlikeholdsperiode og test nødvendige arbeidsflyter.

Er reinstallasjon det samme som oppgradering?

Nei. Et nytt image kan erstatte disken. Undersøk leverandørens prosedyre, eksporter data og kontroller gjenoppretting først.

Ubuntu 24.04 brukes som dokumentert pakkeeksempel. Kontroller kandidatene på din instans. Ingen kompatibilitetstest av din applikasjon er utført her.

Fortsett med en relatert oppgave