You are on page 1of 48

OPERÁCIÓS

RENDSZEREK
3.EA
Nemes Teréz
nemes.terez@uni-bge.hu
Linux csomagkezelés alapjai

Csomagtípusok
Hálózati csomag források
Csomagok tulajdonságai, keresése, kezelése
Kompatibilitási kérdések, csomagok konvertálása

2
Mit nevezünk csomagkezelésnek
• A legtöbb Linux operációs rendszer központosított mechanizmust kínál
a szoftverek keresésére és telepítésére
• A szoftvereket általában csomagokként szolgáltatják
• Ezeket a csomagokat repository-ban – tároló - tárolják
• A csomagokkal való munkát hívjuk csomagkezelésnek
• A csomagok gondoskodnak
• az operációs rendszer alap komponenseiről
• az osztott könyvtárakról (shared libraries)
• alkalmazásokról
• szolgáltatásokról
• dokumentációkról

3
Csomagkezelők alapszolgáltatásai
• A csomagkezelő rendszer többet nyújt, mint egy szoftver
egyszerű telepítése
• Lehetőséget nyújt a már feltelepített csomagok frissítésére
• Arra, hogy biztosak lehessünk benne, hogy adott program kódját
átvizsgálták a rendszeren való használathoz
• A feltöltött szoftver jóváhagyásra került a fejlesztők és a csomag
karbantartói által
• A csomagkezelés egy részéhez superuser jogosultságok kellenek

4
Mit nevezünk csomagnak
• A legtöbb csomagkezelő rendszer csomagok gyűjteménye
• A csomagfile általában önmagában egy archívum, ami tartalmazza
• lefordított binárisokat, a program file-okat és más forrásokat
• A gyári alapbeállításokat
• Ha kellenek library-k, akkor a lib-eket
• A függőségek listáját, ami tartalmazza a telepítéshez szükséges
egyéb csomagok vagy file-ok nevét
• (deb: csomag, rpm: file)
• De az is előfordulhat, hogy egy csomagban több program
van

5
Csomagok függősége
• A különböző dolgok gyakran külön csomagokba kerülnek
• Külön csomagba kerül a bináris és a beállító file-ok
• Külön csomagba a lib-ek, amiket esetleg más csomagok
binárisai is használnak
• Külön esetleg a kliens és szerver rész
• Külön az egyéb, a használatot segítő programok, pl. frontend…
• A függőségek azt mondják meg, hogy a kiválasztott csomaghoz
milyen egyéb csomagokat kell még telepíteni a működéséhez

6
Csomagtípusok
• Többféle alaprendszer létezik
• dpkg + apt (Debian, Ubuntu és mások)
• rpm + yum (openSUSE, Fedora, RedHat, CentOS)
• pacman (Arch és mások)
• portage (gentoo és klónjai)
• Lehetnek grafikus felületű csomagkezelők, szöveges és szöveges, menüs
rendszerűek
• Fontosabbak:
• Synaptic, Kpackage,…

7
Alapvető csomagformátumok
• deb
• rpm
• tgz
• ebuild
• Virtuális csomagok
• Bizonyos szolgáltatásokat adnak meg, pl. smtp szerver (lehet exim4, postfix)
• Ha egy csomagnak ez a függősége, kell egy levelező szerver, akkor a rendszer kiválasztja
az alapértelmezettet, ha nincs fenn egyik sem, de ha van, nem tesz fel másikat
Alapvető csomagkezelők
• APT - Advanced Packaging Tool
• dpkg- Debian package röviden
• RPM - RPM Package Manager
• Yast - Yet another Setup Tool
• Pacman - Arch Linux Package Management
• Yum - Yellowdog Updater, Modified
• Portage – Eredetileg Gentoo
• opkg – beágyazott rendszerek

9
deb csomagok
• Debian, Ubuntu, Knopix, Linux Mint…
• Az egyik legelterjedtebb csomagformátum
• .deb kiterjesztés
• csomagnevek
• ls –lh /var/cache/apt/archives
• Itt vannak a letöltött csomagok
• Csomag neve_verzió_release-információk-csomagolás-
verziója_architektura

10
Névadási szabályok

11
Online tárolók
• A tárolók – repository olyan speciális könyvtárstruktúrák, ahol
csomagok vannak, kezdőbetűk szerint csoportosítva, egy indexfájllal
(Packages.gz) kategorizálva.
• Ilyen tárolót egyszerre többet is lehet használni.
• Csak olyan tárolókat érdemes használni amelyekben meg lehet bízni –
komoly biztonsági kockázat
• sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com kulcs-
ujjlenyomat
• Deb tárolóit alapvetően kétféleképpen tudjuk kezelni:
• /etc/apt/sources.list fájl
• Grafikus felületű menedzseléshez Synaptic

12
13
Legfontosabb tárolók Ubuntu
Hivatalos tárolók
• main
• A hivatalosan támogatott csomagokat tartalmazza. Ez teljes egészében
rajta van a cd-s kiadáson. Csak szabad szoftvert tartalmaz. Synapticban
egy Ubuntu logó jelenik meg a main csomagok neve mellett
• restricted
• Szerzői jogi korlátozás alá eső csomagok (tipikus példa videokártyák
meghajtóprogramjai). Ezek a csomagok is rajta vannak a cd-n és
támogatottak

14
Legfontosabb tárolók Ubuntu folyt.
Hivatalos tárolók
• universe
• A közösség által támogatott csomagokat tartalmazza, csak interneten
keresztül érhető el. Az alapértelmezett telepítésben ez a tároló nincs
mindig engedélyezve. Ezeknek a csomagoknak egy része a debianból
minimális módosítással került át, nincsenek túltesztelve
• multiverse
• Olyan csomagokat tartalmaz, melyeknek licence nem kompatibilis a nyílt
forráskódúakéval, például egyes kodekek vagy az Mplayer
• backports, extras

15
Legfontosabb tárolók Ubuntu folyt.
Nem hivatalos tárolók
• Sun Java, nem szabad RAR kicsomagoló és DVD lejátszási képesség,
Open office
Partner tárolók
• Ezek a programok - mint a Flash és a Skype - a hivatalos
szoftverforrásoknál az Ubuntu Linux rendszerben alapértelmezetten tiltva
vannak
Személyes tárolók - PPA
• Olyan szoftverek forrásai/frissítései jelentik, mint pl. VLC, Skype
• Ezeket a ppa-kat nem az Ubuntu fejlesztői tartják karban, ezért
használatuknál nem árt némi óvatosság

16
Tárolók hozzáadása
• /etc/apt/sources.list konfigurációs file szerkesztése.
• Ebben találhatók adatok arról, hogy a frissítésekkor milyen csomagokat és honnan
vegyen figyelembe a rendszer
• A szerkesztéséhez rendszergazdai jog kell
• A fájl sorai a következőképpen épülnek fel:
• deb|deb-src] [szerver/elérési/út] [kiadás] [tároló(k) neve(i)]
• Pl: deb http://hu.archive.ubuntu.com/ubuntu bionic main restricted universe
• Jelentése: a magyar Ubuntu tükrön található main (hivatalosan támogatott), restricted (nem szabad
felhasználású) és universe (közösség által támogatott) bináris csomagokat tartalmazó tárolók a
Bionic Beaver kiadásból.
• Az /etc/apt/sources.list file módosítása után
• sudo apt update
• /etc/apt/sources.list.d
• .list kiterjesztésű file-okba

17
deb csomagok kezelése

• dpkg és apt, aptitude, (dselect – ma már elavult)


• apt - Advanced Packaging Tool biztosítja a parancsokat a
leggyakrabban használt műveletekre
• keresés a tárolóban
• csomagok telepítése a hozzájuk tartozó függőségekkel együtt
• a frissítések kezelése
• csomagok eltávolítása
• Az APT parancsok úgy működnek, mint egy front-end az alacsonyabb szintű
dpkg utility-hez ami kezeli a telepítését a különböző .deb fájloknak a helyi
rendszeren
• Az apt és a dpkg együttműködik

18
deb csomagok kezelése - aptitude
• Az Aptitude egy menüvezérlésű szöveges felület APT-hez. Számos
gyakori csomagkezelési feladat, mint például a telepítés,
eltávolítás és frissítés, az Aptitude-ban egybillentyűs parancsokkal
hajtható végre.
• Nem grafikus terminálkörnyezetekben a leghasználhatóbb.
• sudo aptitude

19
deb csomagok kezelése - aptitude

20
deb csomagok kezelése - apt
• A tárolókban lévő információk frissítése
• sudo apt update
• apt list --upgradable
• alaphelyzetben ez jól be van állítva
• A csomagokhoz tartozik egy GPG aláírás
• Hitelesíti a csomagot
• A készítő saját kulcsával van hitelesítve
• Optimista esetben más nem tudja hitelesíteni
• MS-nél https hitelesítés, a szervert hitelesíti
• Linuxnál nem kell dedikált frissítő szerver, bármilyen tükör használható, mert a
letöltött file hitelesíti magát
• Globális frissítés
• sudo apt upgrade

21
deb csomagok kezelése – apt upgrade

• Vannak csomagok, amelyek automatikusan lettek telepítve, de


már nincs rájuk szükség
• sudo apt autoremove

22
deb csomagok kezelése – apt upgrade
• Lehetnek visszatartott csomagok
• apt-mark hold / unhold csomagnév
• Az alábbi csomagok vissza lesznek tartva és nem lesznek frissítve
• apt-mark showhold
• Mert frissítéseknél deb csomagok esetén van egy fontos alapelv, a frissítés
nem eredményezhet csomageltávolítást vagy telepítést, ezek meg
telepítéssel járnának
• Ezeket telepíteni kell
• Kernelt soha sem frissít, azt mindig a régi mellé teszi fel
• sudo full-upgrade
• Itt érdemes vigyázni, nem él a szabály, hogy nem telepíthet, konzisztencia
• Hiba esetén dpkg --reconfigure –a
• Végső eset /usr/share/apt errorfile-ok törlése

23
Milyen csomagok vannak

• apt-cache pkgnames ( more or less)


• cat /var/lib/dpkg/status | more
• Minden, amit egy csomagról csak tudni szeretnénk
• Milyen verziója van fenn most
• Milyen verziója érhető el a tárolóból
• Honnan származik
• Milyen függőségei vannak
• Leírás róla

24
Milyen csomagok vannak telepítve

25
Csomagkeresés

• Ha nem vagyunk biztosak a nevében


• sudo apt-cache search mysql
• Keres a csomagnevekben és a leírásokban is
• Rengeteg sor lehet
• sudo apt-cache search --names-only mysql

26
Csomagkeresés

27
Információ egy csomagról
• sudo apt-cache show csomagnév
• Szerepe
• Mérete
• Melyik tárolón
• Checksum
• Leírás
• Függőségek
• Recommends
• Suggests
• Honlap
• Hibák

28
29
Csomagok telepítése

• sudo apt install csomagnév


• Több is felsorolható
• Hozza a függőségeket
• Lehetnek még javasolt csomagok
• Nélkülük működőképes, de használhatóbb lehet
• Vannak ajánlott programok, azokat felteszi
• Ha biztosan nem kellenek
• sudo apt install – no-install-recommends

30
Csomagok telepítése

31
Letöltött file-ok telepítése

• Ha egy telepítő file-t valahonnan letöltöttünk, pl. böngészővel


• dpkg –i letoltott_file_neve
• Fontos különbség és probléma forrása
• dpkg nem foglalkozik a függőségekkel
• Ha lenne függősége a telepítés hibaüzenettel leáll, hogy milyen
függőségek miatt nem sikerült a telepítés

32
Letöltött file-ok telepítése

33
Letöltött file-ok telepítése hibakezelés

• Vagy eltávolítjuk a csomagot


• Vagy helyrehozni az apt tudja
• apt –f install
• Az összes jelenleg telepített csomag függőségét átnézi
• Mert fent van a csomag, befejezi a telepítést és a konfigurálást
• Két kimenete lehet a dolognak
• Vagy megtalálja a tárolókban a hiányzó függőségeket és befejezi a telepítést
• Vagy eltávolítja a csomagot

34
Letöltött file-ok telepítése hibakezelés

35
Lekérdezések a csomag adatbázisban

dpkg -l
• Kilistázza a valaha is telepített csomagokat
• Eleje állapot és státus (tetején látszik a betűk jelentése)
• Teljesen telepítettnél ii
• Név, verzió, info (csak az első karakterek)
• Ha szűrni akarjuk
• dpkg –l ’*abc*’
• sudo apt list (1661)
• sudo apt list --installed (61530)

36
Lekérdezések a csomag adatbázisban

37
Lekérdezések a csomag adatbázisban

38
Milyen file-ok tartoznak egy csomagba

• Két különböző csomaghoz nem tartozhat ugyanaz a file


• Ha olyan csomagot akarunk telepíteni, amely tartalmaz olyan file-
t, amilyen már van egy feltelepített csomagban is, akkor nem
települ fel
• Általában a több csomagban is szükséges file-ok ezért külön
csomagba szoktak kerülni
• Csomag tartalma
• dpkg –L csomagnév

39
Csomag tartalma

40
Adott file melyik csomagba tartozik
dpkg –S teljes_eleresi_ut/file_nev
• Egész köyvtárt is le lehet kérdezni, ad egy listát
• Meg lehet tudni, milyen file-ok vannak még ugyanabban a
csomagban

dpkg –c egy letöltött deb file-nak mi a tartalma


• Még telepítés előtt

41
Csomagok eltávolítása

• A rendszer mindig pontos információkkal rendelkezik, hogy mi


van feltelepítve és melyik file milyen csomaggal került fel
• Ha eltávolítunk egy csomagot, annak minden file-ja el lesz távolítva
• Ez nyilván nem vonatkozik a program által létrehozott file-okra
• De egy szoftver akár meg is kérdezheti eltávolítás közben
• sudo apt remove csomagnév
• Figyelmeztet, hogy a függőségeket is eltávolítja, folytassa-e
• Konfig file-okat fennhagyja
• Vagy dpkg --remove csomagnév
• De ez a függőségeknél hibába fut

42
Csomagok eltávolítása II.

• Ha mindent el akarunk távolítani, a konfigurációs file-okat is


• sudo apt purge csomagnév
• Régen a remove után a purge hibát adott
• dpkg - -purge kellett
• Ma leszedi a maradékot
• Ha marad függőség feleslegesen
• sudo apt autoremove
• sudo apt – purge autoremove
• Azért ezt alaposan megfontolva, jó lesz-e a rendszernek

43
Csomagok eltávolítása II.

44
Felesleges helyfoglalás felszabadítása

• ls –lh /var/cache/apt/archives | wc –l
• Ezek már nem kellenek
• sudo apt autoclean
• Eltávolít minden olyan csomagot, amelyik nincs telepítve
• sudo apt clean
• Teljes tartalmat törli
• partial
• Töltési állapotban lévő csomagok

45
rpm alapú csomagkezelés

• Red Hat Enterprise Linux, Fedora, Suse, CentOS…


• rpm csomag archívum, kicsit más felépítés
• itt file alapú függőség van és nem csomag alapú
• kibogarássza magának, hogy melyik csomagban van
• yum, rpm
• Yum csinál majdnem mindent
• Szószátyárabb, mint az apt
• yum check-update
• yum update
46
rpm alapú csomagkezelés II.
• yum install csomag_neve
• yum update-minimal
• rpm tranzakció alapú
• hiba esetén rollback
• yum search nev
• Cak a névben és a leírásban keres
• yum info csomagnev
• yum install letöltött_file_neve
• yum list
• yum remove csomagnev
• yum autoremove csomagnev
• függőségeket is leszedi

47
Kompatibilitási kérdések, csomagok konvertálása

• Ha nem elkerülhetetlen ne használj más csomagformátumú


csomagot
• apt és yum is telepíthető
• de külön adatbázis fognak fenntartani
• Ha mindenképp szükséges, az .rpm fájlok átalakíthatók .deb
csomagokká az alien alkalmazás segítségével
• sudo alien csomagfájl.rpm

48

You might also like