Գործնական ուղեցույց / Ubuntu-ի տարբերակ և ճարտարապետություն

Ubuntu-ի տարբերակ և ճարտարապետություն․ ստուգեք համատեղելիությունը

Ubuntu-ի իմիջն ընտրեք ամբողջ հավելվածի պահանջներով՝ օպերացիոն համակարգ, runtime, տվյալների բազա, native extensions, backup և monitoring։ Մեկ բաղադրիչի գործարկումը ամբողջ համակարգի աջակցություն չի ապացուցում։

· Թարմացվել է · Ընթերցում՝ մոտ 4 րոպե

Ուղեցույցի բովանդակությունը

Սկսեք համատեղելիության ցանկից

Տարբերակեք արտադրողի աջակցվող տարբերակը և ձեր փորձարկման մեջ պարզապես աշխատածը։ Ubuntu 24.04-ի սկզբնական արխիվում կան Python 3.12, PHP 8.3 և PostgreSQL 16․ patch տարբերակները փոխվում են updates-ի հետ։

Ստուգեք հավելվածը, պանելը, բազայի extensions-ը, backup agent-ը և monitoring-ը։ Ubuntu LTS-ի աջակցման աղյուսակը օպերացիոն համակարգի ելակետ է, ոչ բոլոր երրորդ կողմի ծրագրերի աջակցություն։

Պարզեք թողարկումն ու ճարտարապետությունը

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

Փոքր էկրանին բոլոր սյունակները տեսնելու համար աղյուսակը ոլորեք հորիզոնական։

ԱրդյունքՆշանակություն
VERSION_IDՏեղադրված Ubuntu-ի թողարկում
uname-ի kernel տարբերակԸնթացիկ միջուկը, ոչ դիստրիբուտիվի աջակցման ժամկետը
amd64 կամ x86_6464-բիթ x86 ճարտարապետություն
arm64 կամ aarch6464-բիթ Arm ճարտարապետություն

Native binary-ն, extension-ը կամ image-ը պետք է համապատասխանեն ճարտարապետությանը կամ դրա համար առանձին build ունենան։ SSH մուտքը դա չի ստուգում։

Ուսումնասիրեք cloud-init-ի վիճակը

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

cloud-init-ի առկայությունը կամ բացակայությունն ինքնին սխալ չէ․ հաշվի առեք իմիջի provisioning մեթոդը։ Running վիճակում սպասեք, իսկ error կամ degraded արդյունքը ուսումնասիրեք։

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

Logs-ը փոխանցելուց առաջ ծածկեք գաղտնի տվյալները։ Սխալը թաքցնելու համար մի գործարկեք cloud-init clean և մի փոխարինեք ցանցային կարգավորումները։ Provisioning-ի ավարտն ու հավելվածի health-ը առանձին ստուգումներ են։

Ստուգեք փաթեթների թեկնածու տարբերակները

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

apt update-ը թարմացնում է փաթեթների ինդեքսը, բայց ծրագրեր չի տեղադրում։ Համեմատեք installed-ը, candidate-ը և repository-ն։ Installed: none-ը նշանակում է՝ փաթեթը տեղադրված չէ, Candidate: none-ը՝ այդ անունով թեկնածու չկա։

Ստուգեք փաթեթի անունը, ճարտարապետությունը և repository component-ը։ Պատահական արտաքին repository ավելացնելը ավտոմատ լուծում չէ։ Metapackage-ը և versioned package-ը կարող են այլ անուններ ունենալ։

Ստուգեք նաև executable-ի իրական տարբերակը։ Բազայի client-ի տարբերակը չի հաստատում աշխատող database server-ի տարբերակը։

Տարբերակեք տարբերակի և ճարտարապետության խնդիրները

Ենթադրենք հավելվածին պետք է Python 3.10 և միայն amd64-ում հասանելի native extension։ Ubuntu 24.04 arm64-ում երկու անհամապատասխանություն կա։ amd64 իմիջը լուծում է ճարտարապետությունը, բայց ինքնաբերաբար չի փոխում Python-ի պահանջը։

Python virtual environment-ը interpreter-ի տարբերակը չի փոխում։ Հավելվածի համար մի փոխարինեք system Python-ը։ Համեմատեք հավելվածի upgrade-ը, աջակցվող runtime-ը կամ համապատասխան container-ը։ Հին OS ընտրելիս սպասարկման պլան է պետք։

Առանձին միջավայրում փորձարկեք extension-ը, database operation-ը, ֆոնային աշխատանքն ու backup-ը։ Միայն գլխավոր էջը բացելը բավարար չէ։

Container-ն էլ աջակցվող միջավայր է պահանջում

Container-ը կախված է host kernel-ից, ցանցից և storage-ից։ Ընտրեք native architecture image և առանձին ստուգեք emulation-ի աջակցությունն ու արտադրողականությունը։ Persistent volumes-ի backup-ը անկախ է container image-ից։

Image digest-ի ամրագրումն օգնում է կրկնելիությանը, բայց updates-ի գործընթացը մնում է անհրաժեշտ։ Խոցելի տարբերակը հավերժ պահելը լուծում չէ։ Ubuntu Main-ի ստանդարտ աջակցությունն ու Ubuntu Pro-ի ընդլայնումը չեն փոխարինում երրորդ կողմի repository-ի սպասարկողի պատասխանատվությանը։

Պլանավորեք թարմացումներն ու release upgrade-ը

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

Փաթեթների ցանկը կարդալուց առաջ թարմացրեք ինդեքսը։ Ստուգեք failed services-ը և reboot-ի պահանջի marker-ը․ դրա բացակայությունը լիովին թարմացված համակարգ չի ապացուցում։ Maintenance window-ում հաշվի առեք ծառայությունների restart-ը։

Release upgrade-ը նախ փորձարկեք պատճենում՝ runtime, database, extensions, repositories և data migration։ Պլանավորեք վերջնական sync-ը և rollback-ը։ Upgrade-ից առաջ snapshot-ը չի վերականգնում դրանից հետո ստացված պատվերները։

Պահեք կրկնելի գրառում

Գրանցեք OS release-ը, architecture-ը, kernel-ը և provider image-ը․ հավելվածի build-ը, runtime-ը, lockfiles-ը և repositories-ը․ provisioning քայլերը՝ առանց secrets-ի։

Պահեք թեստերի արդյունքներն ու չլուծված խնդիրները, updates-ի պատասխանատուին, սպասարկման ժամն ու alerts-ը։ Նշեք backup-ի տեղադրությունը, վերականգնման ընթացքը և վերջին հաջող փորձի ամսաթիվը։ Հետո անցեք Ubuntu VPS-ի կարգավորմանը։

Հաճախ տրվող հարցեր

Ubuntu 24.04-ը մի՞շտ է լավագույն տարբերակը։

Ոչ։ Ընտրեք աջակցվող թողարկում, որը համապատասխանում է հավելվածին, պանելին ու կախվածություններին։

Reinstall-ը և release upgrade-ը նո՞ւյնն են։

Ոչ։ Reinstall-ը կարող է վերագրել գործող սկավառակը, իսկ in-place upgrade-ը փոխում է գոյություն ունեցող համակարգը։ Երկուսին էլ պետք են ստուգված պատճեն և վերականգնման պլան։

Հրամանները իմիջի և փաթեթների ստուգման համար են։ Թողարկման ընտրությունը հիմնեք ամբողջ հավելվածի փորձարկման և գործող աջակցության վրա։

Պաշտոնական աղբյուրներ

  1. Փաստաթուղթ 1․ discourse.ubuntu.com
  2. Փաստաթուղթ 2․ ubuntu.com
  3. Փաստաթուղթ 3․ docs.cloud-init.io
  4. Փաստաթուղթ 4․ manpages.ubuntu.com
  5. Փաստաթուղթ 5․ docs.python.org
  6. Փաստաթուղթ 6․ ubuntu.com

Առնչվող ուղեցույցներ