Tartalom
- oldal: Frissítések előtt elvégzendő teendők - Felkészülés a frissítésre
- oldal: Debian 9 (Stretch) rendszer teljes frissítése Debian 10 (Buster)-re
- oldal: Frissítések után elvégzendő teendők - Rendszer ellenőrzése
Az 1. oldal tartalma
Bevezető
Debian szervereink hosszú időn át gond nélkül állják a sarat, kiszolgálnak sok millió, vagy akár sok százmillió oldallekérést is az évek alatt - akár egyetlen menetben, leállítás nélkül is -, azonban egyszer ezek felett is eljár az idő, és ilyenkor bizony frissíteni kell a rendszert. Noha nem mintha bármi baja lenne a szervernek, de a rajta futó Operációs rendszer elavulttá válik, így sérülékenyebb lesz a kívülről érkező támadásokkal szemben - amikből kapunk is jócskán az évek alatt -, valamint az idő előrehaladtával a rendszer újabb kiadásai már sokkal modernebb összetevőket tartalmaznak, amitől a működése gyorsabb és hatékonyabb is lesz. Ezért amikor kijön egy újabb főverzió a használt disztribúciónkból, ajánlott a frissítése.
Egy webszerver rengeteg szoftvert és különösen sok konfigurációt, beállítást tartalmaz, ami megannyi befektetett munkát és időt jelent, ezért a szerver teljes újratelepítése nem járható út: a hosszas telepítés és konfigurálás közben kiszolgálónk webes és egyéb szolgáltatásai sok ideig nem lesznek elérhetők felhasználóink számára, így látogatókat, ügyfeleket veszíthetünk, ami bevételkiesést eredményez, és nem utolsó sorban egy huzamosabb kimaradás miatt a keresőkben is romlik weboldalaink helyezése. Szerencsére a legtöbb Linux disztribúció - így a Debian is - rendelkezik azzal a képességgel, hogy menet közben frissíthető rajta a rendszer főverzió szinten, ezzel minimalizáljuk a kiesést a gép egyszeri újraindítására.
Korábban már készítettem egy leírást, amiben Debian 8 (Jessie) rendszert futtató otthoni asztali gép került frissítésre Debian 9-re, most pedig egy Debian 9 (Stretch) alapú webszervert frissítünk Debian 10 (Buster) rendszerre. Ebben a példában én konkrétan a Tökéletes szerver Debian 9 (Stretch) v1.1 változattal fogom ezt bemutatni.
Igaz, ennek a leírásnak a készítésekor már a Debian 11 (Bullseye) a disztribúció legfrissebb kiadása, azonban egyrészt még korábban ígértem egy tökéletes szerveres frissítést - hogy ne csak otthoni asztali géppel láthassunk ilyen műveletet -, valamint egyúttal ezt a kimaradt (Debian 9 - Debian 10) frissítési fázist is pótolhatom ugyanebben a lépésben. Továbbá biztos akadnak olyanok is akik "bentragadtak" szerverükkel még a Debian 9 (Stretch) verzióban, ezért fontolóra vették a frissítést, így nekik is nyújthat segítséget ez az útmutató.
Ezt a frissítési műveletet tehát mindenki saját felelősségre készítse el, és ha van rá lehetősége első körben mindenképpen egy teszt környezetben hajtsa végre!
Elkészült a leírás újabb változata:
Újdonságok a Debian 10 (Buster) rendszerben
Mielőtt nekiállnánk a frissítésnek, előtte ajánlott átnézni a Debian 10 (Buster) újdonságait, hogy mérlegelni tudjunk a frissítés fontossága, és a szerverünkön lévő összetevők egyedisége és összetettsége között.
Frissítés előtt elvégzendő teendők
A frissítés elkezdése előtt még el kell végeznünk pár dolgot, amivel egyrészt ellenőrizzük rendszerünket hogy alkalmas-e a disztribúció frissítésére, másrészt fel is készítjük azt, hogy a frissítés hiba nélkül sikerüljön.
Rendszer áttekintése
Először célszerű átnézni a teljes rendszerünket, és összegyűjteni azokat a funkciókat, szolgáltatásokat, amik sarkalatosak lehetnek a frissítés szempontjából, továbbá összehasonlítás céljából sem árt, ha még vetünk egy utolsó pillantást a dolgainkra frissítés előtt is, hogy utána ellenőrizhessük, hogy valóban minden hibátlanul működik a szerverünkön. Ahogy fentebb is említettem, én itt most a Debian 9 tökéletes szervert fogom frissíteni, így most ezen gyorsan átfutom a főbb dolgokat.
Verzió és kiadási információk lekérdezése
Első körben olvassuk ki a kernel és a Debian verziójával és a disztribúció kiadással kapcsolatos információkat. Ezeket az alábbi parancsokkal tekinthetjük meg:
uname -a
lsb_release -a
hostnamectl
cat /etc/os-release
cat /etc/debian_version
Weboldalak
Mivel webszerverről lévén szó, így biztosan van rajta egy vagy több weboldal. Ezekre ránézünk, hogy minden rendben van-e. Nálam ezen a szerveren van egy csupasz Wordpress telepítés, ami nem tartalmaz semmi különöset, csak egy korábbi telepítős leíráshoz készítettem, így most ezt ellenőrzöm:
Itt most nincs más weboldal. De ha máshol van több weboldal, akkor érdemes végigkattingatni őket, hogy mindegyik működik-e megfelelően.
Webstatisztika
Ezen a szerveren fut egy Matomo webstatisztika is, tehát nem csak egy mérőkód van elhelyezve az oldalon, ami küldi az adatokat egy külső rendszerbe, hanem maga a statisztika rendszer is itt fut, ezért érdemes erre is ránézni:
phpMyAdmin
Van egy phpMyAdmin is:
Itt a jobb oldali paneleken szépen látszanak a szerver szoftvereinek paraméterei is (Debian verzió, MariaDB verzió, stb), amiket majd érdemes újra átnézni a frissítés után.
ISPConfig
És egy ISPConfig:
Roundcube
Egy Roundcube webes levelezőprogram:
Munin
És végül egy Munin szerver erőforrás statisztika:
ami éppen nem működik rendesen: az ezen a szerveren történt legutóbbi kernel frissítés óta nem rajzolja a grafikonokat. Valamivel összeakadhat, vagy esetleg már lehet hogy nem is kompatibilis a Debian 9 rendszerrel, vagy annak bizonyos csomagjaival. Minimális eséllyel még olyan is előfordulhat, hogy a frissítés után a Debian 10-es környezetben újra működni fog, mivel nálam is van egy hibátlanul működő Munin példány a Debian 10-es szerveremen. Mivel éppen egy disztribúció frissítés előtt állunk, így már nem érdemes bíbelődni vele, hanem a hibásan vagy sehogy nem működő dolgokat célszerűbb inkább a frissítés után megjavítani, ezért most nem foglalkozom ezzel.
Ezek lennének tehát a verzióval kapcsolatos információk és a webes alkalmazások, de rajtuk kívül még a motorháztető alatt sok minden működik még, persze szervere válogatja hogy mik vannak még rajta, amiket érdemes lenne még átnézni. Viszont itt már nem húzom ezekkel tovább az időt, hanem folytatjuk a frissítés előkészítését.
Biztonsági mentés
Adataink és a szerver beállításainak biztonsága a legfontosabb, ezért ezt a lépést semmiképpen ne hagyjuk ki. Ha netán rosszul végződne a disztribúció frissítés, akkor legrosszabb esetben egy újratelepítés után visszatöltjetjük adatainkat a friss rendszerbe.
Célszerű a saját személyes adataink és a weboldalak tárhelyei mellett még lementeni a /etc könyvtár tartalmát is, mert ebben kerülnek tárolásra a használt programok beállításai. Persze egy rendszer ha optimálisan van felépítve, akkor többnyire ezek a részek eleve külön merevlemezről vannak becsatolva, így ha bármi gubanc van, akkor egy esetleges újratelepítés során nincs szükség az adataink plusz mozgatására, hanem csak újra be kell csatolni a megfelelő könyvtárakba a többi merevlemez tartalmát.
Az adatok mentésére kiválóan alkalmasak például a tar vagy az rsync parancsok, amikkel hatékonyan lehet tömöríteni vagy szinkronizálni. Én a kettő kombinációjával szoktam biztonsági mentéseket készíteni: először az rsync-el átszinkronizálom például egy webtárhely tartalmát egy másik könyvtárba, ahonnan bármikor vissza is tudom frissíteni egyből, valamint ezután még egy tar+gzip csomagolással elteszem egy harmadik könyvtárba ahol X ideig őrzöm a változatokat. Mindezt természetesen scriptekkel automatizáltan. Így ha például bármelyik weboldal fejreállna, akkor csak egy script futtatással néhány 10 másodperc alatt visszaáll az oldal a kívánt változatból. Persze vannak, akik komplett backup megoldásokat szeretnek inkább, mint scriptekkel bíbelődni, nekik például itt érdemes szétnézni.
Csomagtárak és a csomagok ellenőrzése
A disztribúció frissítés előtti utolsó fő lépés a csomagtárak és a csomagok ellenőrzése és frissítése.
Csomagok frissítése
Először frissítsük csomagtár adatbázisunkat és csomagjainkat a megszokott módon root-ként:
apt-get update
apt-get upgrade
Itt nálam volt néhány frissítendő csomag, többnyire PHP és az ezzel kapcsolatos csomagok.
Visszatartott csomagok keresése
A következő lépésben megkeressük a visszatartott csomagokat. Itt például az előző frissítéskor felsorolt pár visszatartott csomagot, most ezeket újra megnézzük:
apt-get upgrade
Valamint néhány csomagot megnézünk az apt-cache policy <csomagnév> paranccsal, hogy miért vannak visszatartva:
Amint látható, ebben a példában a Sury.org külső csomagtár telepítve van ezen a szerveren, amin jelenleg a kérdéses PHP csomagok frissebb változata érhető el, de a csomagkezelő visszatartotta őket.
Mivel itt konkrétan egy külső csomagtárról van szó, ezért akár hagyhatnánk is őket, de ha precízen mindent szeretnénk frissíteni, akkor futtasuk az alábbi parancsot a visszatartott csomagok frissítéséhez:
apt-get --with-new-pkgs upgrade
Itt természetesen nyomjunk Igent, és frissülnek a csomagok, valamint a rendszer elvégzi a beállításukat is.
Ennek melléktermékeként, ahogy a fentebbi képen is látszik, feleslegessé vált egy csomag, ezt majd ennek a résznek a végén távolítjuk el.
Ezután még megnézzük az apt-mark showhold paranccsal visszatartott csomagokat is:
apt-mark showhold
Vagy akár a dpkg paranccsal is rájuk kereshetünk:
dpkg --get-selections | grep hold
Itt nálam nem talált semmit, tehát nincs ezzel további teendő. Viszont ha itt felsorol csomagokat, akkor azokat az alábbi paranccsal lehet feloldani:
apt-mark unhold <csomagnév>
Majd ezután újra futtassuk a csomagfrissítést, hogy ezek a csomagok is frissüljenek.
Törött csomagok keresése
Ebben a lépésben a törött avagy félig/részben konfigurált csomagokat keressük meg a dpkg paranccsal:
dpkg --audit
A dpkg parancs --audit kapcsolója a manual oldalból:
man dpkg
[...] -C, --audit [package-name...] Performs database sanity and consistency checks for package-name or all packages if omitted (per package checks since dpkg 1.17.10). For example, searches for packages that have been installed only partially on your system or that have missing, wrong or obsolete control data or files. dpkg will suggest what to do with them to get them fixed. [...]
Ha talál hibás csomagokat, akkor a dpkg javasolni fogja, hogy mit kell tenni velük a javítás érdekében.
Nálam nem talált egyetlen ilyen csomagot sem, így továbblépek.
Elavult csomagok keresése
Az elavult csomagok már vagy nem szerepelnek az adott csomagtárban, vagy elavulttá lettek minősítve, vagy nem a Debian szabványos tárolóiból lettek feltelepítve, például forrásból lettek lefordítva, stb. Ezeket is át kell néznünk, hogy vannak-e ilyen csomagjaink, és ha vannak, akkor azok jelenthetnek-e akadályt disztribúció sikeres frissítésre nézve.
Az elavult csomagok keresését az aptitude vagy az apt-show-versions parancsokkal végezhetjük. Mindegyiket telepíteni kell használat előtt, egyik sincs alapból telepítve a Debian rendszereken:
apt-get install aptitude
apt-get install apt-show-versions
Ha már telepítve vannak, akkor az alábbi parancsokkal találhatjuk meg az elavult csomagjainkat (az első két parancs ekvivalens egymással):
aptitude search '~o'
aptitude search ?obsolete
apt-show-versions | grep 'No available version'
Nálam talált is hármat. Ha ezek a parancsok itt kiadnak csomagokat, akkor vegyük fontolóra ezeknek a kézi eltávolítását, valamint az APT csomagkezelő forráslistájából (/etc/apt/sources.list fájlból) történő kapcsolódó csomagtár(ak) eltávolítását is. Ilyenkor a frissítés végeztével újra feltehetjük őket, amennyiben még léteznek a Debian 10-hez is. Ha viszont az itt felsorolt szoftvereket nem szeretnénk eltávolítani, mert ismerjük a funkcióját, például a rendszerünk szerves részét képezik, más programok függőségei, stb, akkor pedig magunk járjunk utána, hogy a Debian 10-ben léteznek-e még, frissültek-e, stb.
Jelen esetben az itt talált Jailkit programot még a szerver telepítésnél tettük fel, de nem csomagtárból telepítettük, hanem a letöltött forrásából állítottuk össze a Debian csomagot, mivel nem volt benne a Debian 9 csomagtárában. Ebben a rendszerben tehát a jailkit 2.20-as változata van meg. A jó hír, hogy ezt nem kell eltávolítanunk, mivel a Debian 10 (Buster) backports csomagtárában már benne van a 2.21-es változat, így majd lesz hozzá frissítés, mivel a backports tárolót már a szerver telepítése óta használjuk.
Ezen kívül még talált itt régebbi kernel csomagokat is, amiket már nem használ a rendszer. Ezek nem fogják zavarni a frissítést, ezért ezeket is hagyhatjuk; a Debian főverzió frissítése után amúgy is lesznek még itt további elavult, nem használt kernelcsomagok, így majd a végén egyben takarítjuk őket.
Ha tehát nincs olyan elavult csomagunk, ami esetleg akadályozhatná a frissítést, akkor léphetünk is tovább. Ha viszont olyan csomagokat látunk itt, aminek a funkciójában, fontosságában nem vagyunk biztosak, nézzünk utána a packages.debian.org oldalon, és szükség esetén távolítsuk el az adott csomagokat.
Harmadik féltől származó csomagok keresése
Ezután keressünk rá a harmadik féltől származó csomagokra. Ezeknek a csomagoknak a frissítése az új Debian főverzióban bizonytalan, ezért gondot okozhatnak. Ellenőrizzük tehát az olyan csomagokat, amiket nem a Debian hivatalos tárolóiből telepítettünk fel. Itt lehetnek átfedések az elavult csomagokkal, például egy forrásból telepített csomag esetén, amihez nincs frissítés az egyrészt elavult jelzőt is kap, és mivel nem a hivatalos csomagtárból telepítettük, ezért harmadik féltől származónak is minősül. A már korábban is használt aptitude parancs segítségével listázhatjuk ezeket a csomagokat:
aptitude search '~i(!~ODebian)'
Nálam a kimenete ennek a parancsnak:
Itt is mérlegelnünk kell, hogy mit kezdjünk ezekkel a csomagokkal. Ebben a példában először előkerül ismét a jailkit csomag, amit már fentebb megvizsgáltunk, hogy szükséges, és frissítés is lesz hozzá, valamint a többi php csomag pedig a Sury.org csomagtárból került fel korábban, ami megbízható forrás, és ahonnan fogunk kapni frissítéseket a Debian 10-ben is. Így tehát most ezekkel sincs semmi teendő. Viszont ha olyan csomagokat használunk, amik szintén más csomagtárakból származik, akkor keressük fel a csomagtár webhelyét, és győződjünk meg róla, hogy a Debian 10 rendszerrel is fog-e működni.
Ha bármikor módosítjuk a /etc/apt/sources.list fájlunkat, például kiveszünk belőle csomagtárakat, vagy hozzáadunk, utána mindig futtassuk a csomagtár adatbázis frissítést, hogy naprakész legyen a csomagkezelésünk:
apt-get update
Feleslegessé vált csomagok eltávolítása
Még távolítsuk el az automatikusan telepített csomagfüggőségeket is, amikre már nincs szüksége egyetlen másik csomagnak sem:
apt autoremove
Itt a rendszer összetevőitől függően akár sok csomag is lehet, így egyrészt tárhelyet is szabadítunk fel, másrészt gyorsabban fog végezni a frissítés ha kevesebb csomaggal kell dolgoznia, tehát tisztább lesz a rendszerünk.
Csomaggyorsítótár kiürítése
A csomaggyorsítótár ürítése előtt érdekességképpen megnézhetjük annak méretét a du parancs segítségével, majd a takarítás után újból megnézve láthatjuk a felszabaduló helyet. Ezekhez futtassuk az alábbi parancsokat:
du -sh /var/cache/apt/archives
apt-get clean
du -sh /var/cache/apt/archives
Nálam körülbelül most 213 Mb hely szabadult fel:
Más rendszereken ennél jóval több helyet is foglalhatnak ezek a tárolt csomagok, ez csak egy alig használt kísérleti szerver.
A következő oldalon folytatjuk a disztribúció Debian 10 (Buster) rendszerre történő frissítésével.
- Hogyan frissítsük otthoni gépünket Debian 8 (Jessie) rendszerről Debian 9 (Stretch)-re
- Hogyan frissítsük Debian 10 (Buster) alapú tökéletes szerverünket Debian 11 (Bullseye) rendszerre
- A Debian 10 (Buster) operációs rendszer újdonságai, változásai
- Tökéletes szerver: Debian 9 (stretch) V1.0
- Tökéletes szerver: Debian 10 (Buster) V1.0
- Enciklopédia - APT (Advanced Packaging Tool)
Lapozó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 176 megtekintés