Szerkesztő:Aldum/Csomagkezelés

A Unix/Linux szerverek üzemeltetése wikiből
< Szerkesztő:Aldum(Változatok közti eltérés)
(Új oldal, tartalma: „=== Alapfogalmak === ==== Csomag (package) ==== Egy csomag programok, programkönyvtárak és az installáláshoz, konfigurációhoz szükséges metaadatok összessége. …”)
 
1. sor: 1. sor:
=== Alapfogalmak ===
+
== Alapfogalmak ==
==== Csomag (package) ====
+
=== Csomag (package) ===
 
Egy csomag programok, programkönyvtárak és az installáláshoz, konfigurációhoz szükséges metaadatok összessége.
 
Egy csomag programok, programkönyvtárak és az installáláshoz, konfigurációhoz szükséges metaadatok összessége.
==== Függőség (dependency) ====
+
=== Függőség (dependency) ===
 
Egy adott csomag függőségei olyan további csomagok, amikre szükség van a működéséhez.
 
Egy adott csomag függőségei olyan további csomagok, amikre szükség van a működéséhez.
 
Függőség lehet:
 
Függőség lehet:
8. sor: 8. sor:
 
* opcionális (csak egyes funkciók használatához van rá szükség, így a felhasználó eldöntheti, hogy telepíti-e)
 
* opcionális (csak egyes funkciók használatához van rá szükség, így a felhasználó eldöntheti, hogy telepíti-e)
 
* rejtett (ilyen akkor fordul elő, ha a csomagkezelő rosszul van beállítva, és bizonyos többé vagy kevésbé opcionális függőségekről nem tud, a hiány hatására az adott program hibásan, vagy egyáltalán nem működik)
 
* rejtett (ilyen akkor fordul elő, ha a csomagkezelő rosszul van beállítva, és bizonyos többé vagy kevésbé opcionális függőségekről nem tud, a hiány hatására az adott program hibásan, vagy egyáltalán nem működik)
==== Csomagkezelő rendszer (package manager) ====
+
=== Csomagkezelő rendszer (package manager) ===
 
Az operációs rendszeren programcsomagok telepítését, frissítését, konfigurációját megkönnyítő-automatizáló softwareeszköz. Tágabb értelemben ide tartozhatnak különféle segédprogramok, amik függőségek, csomagközi viszonyok felderítésére, vagy csomaghoz tartozó file-ok, esetleg adott programot tartalmazó csomag keresésére használhatók. Disztribúciónként jelentősen eltérhet, hogy mi tartozik az alap csomagkezelőhöz, és mi kerül külön csomagba.
 
Az operációs rendszeren programcsomagok telepítését, frissítését, konfigurációját megkönnyítő-automatizáló softwareeszköz. Tágabb értelemben ide tartozhatnak különféle segédprogramok, amik függőségek, csomagközi viszonyok felderítésére, vagy csomaghoz tartozó file-ok, esetleg adott programot tartalmazó csomag keresésére használhatók. Disztribúciónként jelentősen eltérhet, hogy mi tartozik az alap csomagkezelőhöz, és mi kerül külön csomagba.
   
25. sor: 25. sor:
 
Ezen felül lehetnek még harmadik személy által írt wrapperek, amik további funkcionalitást biztosítanak, de kézzel kell telepíteni. (pl [[Arch_Linux_csomagkezelés#yaourt|yaourt]])
 
Ezen felül lehetnek még harmadik személy által írt wrapperek, amik további funkcionalitást biztosítanak, de kézzel kell telepíteni. (pl [[Arch_Linux_csomagkezelés#yaourt|yaourt]])
   
==== Repository ====
+
=== Repository ===
 
Központi csomagtároló adatbázis. A csomagkezelő egy vagy több ilyenből tölti le a csomaglistákat, csomagokat és metaadatokat. Ilyet üzemeltethetnek a disztribúció fejlesztői, de független is lehet.
 
Központi csomagtároló adatbázis. A csomagkezelő egy vagy több ilyenből tölti le a csomaglistákat, csomagokat és metaadatokat. Ilyet üzemeltethetnek a disztribúció fejlesztői, de független is lehet.
=== Csomagformátumok ===
+
== Csomagformátumok ==
==== Bináris ====
+
=== Bináris ===
 
Ez az általánosan elterjedt formátum, a csomag az adott architektúrára lefordított változatot tartalmazza.
 
Ez az általánosan elterjedt formátum, a csomag az adott architektúrára lefordított változatot tartalmazza.
===== deb =====
+
==== deb ====
 
A Debian eredeti formátuma. Két esetleg tömörített tar file-t tartalmaz: a program adatait és a csomagkezelőnek szóló információk.
 
A Debian eredeti formátuma. Két esetleg tömörített tar file-t tartalmaz: a program adatait és a csomagkezelőnek szóló információk.
 
Használat: Debian, Ubuntu, bármilyen ezekre épülő egyéb.
 
Használat: Debian, Ubuntu, bármilyen ezekre épülő egyéb.
===== rpm =====
+
==== rpm ====
 
Linux Standard Base [http://en.wikipedia.org/wiki/Linux_Standard_Base] formátum. Mivel ennek célja a disztribúciók közötti kompatibilitás, több, eredetileg különböző változat is ezt használja, teljesség igénye nélkül: Red Hat, Fedora, CentOS, Oracle Linux, Yellow Dog; OpenSUSE; Mandriva; MeeGo. Bizonyos korlátokkal a Debian-variánsok is képesek kezelni.
 
Linux Standard Base [http://en.wikipedia.org/wiki/Linux_Standard_Base] formátum. Mivel ennek célja a disztribúciók közötti kompatibilitás, több, eredetileg különböző változat is ezt használja, teljesség igénye nélkül: Red Hat, Fedora, CentOS, Oracle Linux, Yellow Dog; OpenSUSE; Mandriva; MeeGo. Bizonyos korlátokkal a Debian-variánsok is képesek kezelni.
===== pkg.tar.xz =====
+
==== pkg.tar.xz ====
 
Arch Linux, forkjai, és néhány kisebb (Chakra, DeLi, Manjaro) -később átvett- formátuma.
 
Arch Linux, forkjai, és néhány kisebb (Chakra, DeLi, Manjaro) -később átvett- formátuma.
==== Forráskód (source-based) ====
+
=== Forráskód (source-based) ===
 
Az előzőtől eltérően itt a csomag a forráskódot tartalmazza, a telepítésnek része a teljes fordítás. Ma már kevéssé elterjedt, mert sokkal nehézkesebb, jóval hosszabb a bináris telepítésnél, és a sebességbeli előnyei is marginálisak.
 
Az előzőtől eltérően itt a csomag a forráskódot tartalmazza, a telepítésnek része a teljes fordítás. Ma már kevéssé elterjedt, mert sokkal nehézkesebb, jóval hosszabb a bináris telepítésnél, és a sebességbeli előnyei is marginálisak.
 
Forrásalapú disztribúciók: Gentoo, Gentoo-variánsok és forkok (pl Calculate), Sorcerer, Source Mage, Linux From Scratch (ez kivétel, mert itt az egész rendszert nulláról, forrásból építjük fel, és hagyományos értelemben vett csomagkezelője nincsen), BSD rendszerek.
 
Forrásalapú disztribúciók: Gentoo, Gentoo-variánsok és forkok (pl Calculate), Sorcerer, Source Mage, Linux From Scratch (ez kivétel, mert itt az egész rendszert nulláról, forrásból építjük fel, és hagyományos értelemben vett csomagkezelője nincsen), BSD rendszerek.
===== ebuild =====
+
==== ebuild ====
 
A Gentoo csomagkezelő, a Portage alapeleme. Hagyományos értelemben véve nem csomag, csak egy szöveges file, bash script, ami tartalmazza a forráskód és szükséges patchek címét, illetve konfigurációs információkat.
 
A Gentoo csomagkezelő, a Portage alapeleme. Hagyományos értelemben véve nem csomag, csak egy szöveges file, bash script, ami tartalmazza a forráskód és szükséges patchek címét, illetve konfigurációs információkat.
===== ABS =====
+
==== ABS ====
 
Arch Build System. Ugyan az Arch alapvetően bináris, tartozik hozzá egy ún. User Repository, amiben a csomagok forráskóddal és egy az ebuildhez hasonlo PKGBUILD[https://wiki.archlinux.org/index.php/PKGBUILD] leíróval vannak tárolva, és egy makepkg nevú eszközzel alakíthatóak csomaggá, amit aztán a rendes csomagkezelő tud telepíteni. [https://wiki.archlinux.org/index.php/Arch_Build_System]
 
Arch Build System. Ugyan az Arch alapvetően bináris, tartozik hozzá egy ún. User Repository, amiben a csomagok forráskóddal és egy az ebuildhez hasonlo PKGBUILD[https://wiki.archlinux.org/index.php/PKGBUILD] leíróval vannak tárolva, és egy makepkg nevú eszközzel alakíthatóak csomaggá, amit aztán a rendes csomagkezelő tud telepíteni. [https://wiki.archlinux.org/index.php/Arch_Build_System]
===== BSD Ports =====
+
==== BSD Ports ====
=== Csomagkezelő feladatai, funkciói ===
+
== Csomagkezelő feladatai, funkciói ==
==== ====
+
=== Ellenőrzés ===
==== Ellenőrzés ====
 
 
* Checksumok ellenőrzése, biztosítandó az adatok hibátlanságát
 
* Checksumok ellenőrzése, biztosítandó az adatok hibátlanságát
 
* Csomagok digitális aláírásának ellenőrzése. Erre azért van szükség, hogy ne települjön kétes forrásból származó, esetleg hátsó kaput tartalmazó csomag.
 
* Csomagok digitális aláírásának ellenőrzése. Erre azért van szükség, hogy ne települjön kétes forrásból származó, esetleg hátsó kaput tartalmazó csomag.
==== Telepítés ====
+
=== Telepítés ===
===== Függőségek kezelése =====
+
==== Függőségek kezelése ====
 
A csomagok sokrétű és bonyolult függőségi viszonya az elsődleges ok, amiért szükség van csomagkezelőre. Ez különösen fontos dinamikusan linkelt könyvtárak esetén, amikből a különböző programoknak esetleg különböző verzióra lehet szüksége. Ha ezek nincsenek megfelelően kezelve, az a "dependency hell" nevű, meglehetősen kellemetlen problémához vezet. (Ami ugyan elsősorban Windows rendszerekből lehet ismerős DLL Hell néven, de létezik az RPM Hell kifejezés is [http://linuxdevcenter.com/pub/a/linux/2003/09/11/linux_annoyances.html])
 
A csomagok sokrétű és bonyolult függőségi viszonya az elsődleges ok, amiért szükség van csomagkezelőre. Ez különösen fontos dinamikusan linkelt könyvtárak esetén, amikből a különböző programoknak esetleg különböző verzióra lehet szüksége. Ha ezek nincsenek megfelelően kezelve, az a "dependency hell" nevű, meglehetősen kellemetlen problémához vezet. (Ami ugyan elsősorban Windows rendszerekből lehet ismerős DLL Hell néven, de létezik az RPM Hell kifejezés is [http://linuxdevcenter.com/pub/a/linux/2003/09/11/linux_annoyances.html])
==== Frissítés ====
+
=== Frissítés ===
 
Ez általában két lépésben történik. Először a csomagkezelő frissíti a saját listáját, majd ellenőrzi, hogy a rendszerben a telepített csomagok verzióját.
 
Ez általában két lépésben történik. Először a csomagkezelő frissíti a saját listáját, majd ellenőrzi, hogy a rendszerben a telepített csomagok verzióját.
==== Törlés ====
+
=== Törlés ===
 
Itt is felmerülhet a függőségek kérdése. Ha valamit csak azért települt fel, mert egy másik csomagnak szüksége volt rá, és később ezt eltávolítjuk, "árva" csomagok keletkeznek a rendszerben. Ezek feltakarítása is a csomagkezelő feladata, bár ezt általában nem teszi meg automatikusan.
 
Itt is felmerülhet a függőségek kérdése. Ha valamit csak azért települt fel, mert egy másik csomagnak szüksége volt rá, és később ezt eltávolítjuk, "árva" csomagok keletkeznek a rendszerben. Ezek feltakarítása is a csomagkezelő feladata, bár ezt általában nem teszi meg automatikusan.
==== Csomagkeresés ====
+
=== Csomagkeresés ===
 
A legtöbb esetben létezik erre egy kényelmesebb webes felület, vagy a csomagkezelőhöz tartozó grafikus felület, de a csomagkezelőnek képesnek kell lennie arra is, hogy a csomaglistákban, leírásokban keressen, listázza az elérhető verziókat.
 
A legtöbb esetben létezik erre egy kényelmesebb webes felület, vagy a csomagkezelőhöz tartozó grafikus felület, de a csomagkezelőnek képesnek kell lennie arra is, hogy a csomaglistákban, leírásokban keressen, listázza az elérhető verziókat.
=== Konkrét csomagkezelők ===
+
== Konkrét csomagkezelők ==
==== Debian-variánsok ====
+
=== Debian-variánsok ===
 
A Debian alapértelmezett csomagkezelője a [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#DPKG|dpkg]]. Erre épül egy összetettebb, nagyobb tudású, és nem utolsó sorban kényelmesebb CLI eszköz, az [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#APT_.28Advaced_Packaging_Tool.29|APT]]. Ezeken felül még vannak az APT-t is elsősorban grafikus felülettel bővítő programok.
 
A Debian alapértelmezett csomagkezelője a [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#DPKG|dpkg]]. Erre épül egy összetettebb, nagyobb tudású, és nem utolsó sorban kényelmesebb CLI eszköz, az [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#APT_.28Advaced_Packaging_Tool.29|APT]]. Ezeken felül még vannak az APT-t is elsősorban grafikus felülettel bővítő programok.
 
Az aptitude ncurses[http://en.wikipedia.org/wiki/Ncurses] könyvtár segítségével terminálon (bár parancssorosan is működik, teljesen kiváltva az APT-t), míg a synaptic, és az aptitude újabb verzióiban megjelent aptitude-gtk pedig X felett működik.
 
Az aptitude ncurses[http://en.wikipedia.org/wiki/Ncurses] könyvtár segítségével terminálon (bár parancssorosan is működik, teljesen kiváltva az APT-t), míg a synaptic, és az aptitude újabb verzióiban megjelent aptitude-gtk pedig X felett működik.
==== RPM ====
+
=== RPM ===
 
[[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#RPM|RPM]]
 
[[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#RPM|RPM]]
===== [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#YUM_.28Yellowdog_Updater_Modifier.29|YUM]] =====
+
==== [[Az_apt_%C3%A9s_yum_csomagkezel%C5%91k_%C3%B6sszehasonl%C3%ADt%C3%A1sa#YUM_.28Yellowdog_Updater_Modifier.29|YUM]] ====
 
Az APThez hasonló magasabb szintű csomagoló az RPMhez.
 
Az APThez hasonló magasabb szintű csomagoló az RPMhez.
===== Zypper =====
+
==== Zypper ====
 
Bár az OpenSUSE szintén RPM csomagokkal működik, saját csomagkezelővel rendelkezik, ez a Zypp.
 
Bár az OpenSUSE szintén RPM csomagokkal működik, saját csomagkezelővel rendelkezik, ez a Zypp.
====== Telepítés ======
+
===== Telepítés =====
   
====== Eltávolítás ======
+
===== Eltávolítás =====
   
====== Csomagokkal kapcsolatos lekérdezések ======
+
===== Csomagokkal kapcsolatos lekérdezések =====
   
====== Egyéb hasznos funkciók ======
+
===== Egyéb hasznos funkciók =====
==== [[Arch Linux csomagkezelés|Pacman]] ====
+
=== [[Arch Linux csomagkezelés|Pacman]] ===
==== [[Portage]] ====
+
=== [[Portage]] ===
   
=== Források ===
+
== Források ==
 
* [http://en.wikipedia.org/wiki/Package_management_system enwiki]
 
* [http://en.wikipedia.org/wiki/Package_management_system enwiki]
 
* [http://www.gentoo.org/doc/en/handbook/ Gentoo Handbook]
 
* [http://www.gentoo.org/doc/en/handbook/ Gentoo Handbook]

A lap 2012. december 13., 17:26-kori változata

Tartalomjegyzék

1 Alapfogalmak

1.1 Csomag (package)

Egy csomag programok, programkönyvtárak és az installáláshoz, konfigurációhoz szükséges metaadatok összessége.

1.2 Függőség (dependency)

Egy adott csomag függőségei olyan további csomagok, amikre szükség van a működéséhez. Függőség lehet:

  • explicit (mindenképpen szükséges)
  • opcionális (csak egyes funkciók használatához van rá szükség, így a felhasználó eldöntheti, hogy telepíti-e)
  • rejtett (ilyen akkor fordul elő, ha a csomagkezelő rosszul van beállítva, és bizonyos többé vagy kevésbé opcionális függőségekről nem tud, a hiány hatására az adott program hibásan, vagy egyáltalán nem működik)

1.3 Csomagkezelő rendszer (package manager)

Az operációs rendszeren programcsomagok telepítését, frissítését, konfigurációját megkönnyítő-automatizáló softwareeszköz. Tágabb értelemben ide tartozhatnak különféle segédprogramok, amik függőségek, csomagközi viszonyok felderítésére, vagy csomaghoz tartozó file-ok, esetleg adott programot tartalmazó csomag keresésére használhatók. Disztribúciónként jelentősen eltérhet, hogy mi tartozik az alap csomagkezelőhöz, és mi kerül külön csomagba.

Például meg akarjuk keresni, hogy melyik csomaghoz tartozik az xeyes[1] demo:

  • Red Hat/Fedora/CentOS esetén
yum whatprovides xeyes
  • Debian/Ubuntu/ezekre alapuló rendszereknél
apt-file search xeyes

beépített paranccsal

  • Arch Linuxban
pkgfile xeyes
  • Gentoonál
pfl xeyes

segédprogramokkal tehetjük meg.

Ezen felül lehetnek még harmadik személy által írt wrapperek, amik további funkcionalitást biztosítanak, de kézzel kell telepíteni. (pl yaourt)

1.4 Repository

Központi csomagtároló adatbázis. A csomagkezelő egy vagy több ilyenből tölti le a csomaglistákat, csomagokat és metaadatokat. Ilyet üzemeltethetnek a disztribúció fejlesztői, de független is lehet.

2 Csomagformátumok

2.1 Bináris

Ez az általánosan elterjedt formátum, a csomag az adott architektúrára lefordított változatot tartalmazza.

2.1.1 deb

A Debian eredeti formátuma. Két esetleg tömörített tar file-t tartalmaz: a program adatait és a csomagkezelőnek szóló információk. Használat: Debian, Ubuntu, bármilyen ezekre épülő egyéb.

2.1.2 rpm

Linux Standard Base [2] formátum. Mivel ennek célja a disztribúciók közötti kompatibilitás, több, eredetileg különböző változat is ezt használja, teljesség igénye nélkül: Red Hat, Fedora, CentOS, Oracle Linux, Yellow Dog; OpenSUSE; Mandriva; MeeGo. Bizonyos korlátokkal a Debian-variánsok is képesek kezelni.

2.1.3 pkg.tar.xz

Arch Linux, forkjai, és néhány kisebb (Chakra, DeLi, Manjaro) -később átvett- formátuma.

2.2 Forráskód (source-based)

Az előzőtől eltérően itt a csomag a forráskódot tartalmazza, a telepítésnek része a teljes fordítás. Ma már kevéssé elterjedt, mert sokkal nehézkesebb, jóval hosszabb a bináris telepítésnél, és a sebességbeli előnyei is marginálisak. Forrásalapú disztribúciók: Gentoo, Gentoo-variánsok és forkok (pl Calculate), Sorcerer, Source Mage, Linux From Scratch (ez kivétel, mert itt az egész rendszert nulláról, forrásból építjük fel, és hagyományos értelemben vett csomagkezelője nincsen), BSD rendszerek.

2.2.1 ebuild

A Gentoo csomagkezelő, a Portage alapeleme. Hagyományos értelemben véve nem csomag, csak egy szöveges file, bash script, ami tartalmazza a forráskód és szükséges patchek címét, illetve konfigurációs információkat.

2.2.2 ABS

Arch Build System. Ugyan az Arch alapvetően bináris, tartozik hozzá egy ún. User Repository, amiben a csomagok forráskóddal és egy az ebuildhez hasonlo PKGBUILD[3] leíróval vannak tárolva, és egy makepkg nevú eszközzel alakíthatóak csomaggá, amit aztán a rendes csomagkezelő tud telepíteni. [4]

2.2.3 BSD Ports

3 Csomagkezelő feladatai, funkciói

3.1 Ellenőrzés

  • Checksumok ellenőrzése, biztosítandó az adatok hibátlanságát
  • Csomagok digitális aláírásának ellenőrzése. Erre azért van szükség, hogy ne települjön kétes forrásból származó, esetleg hátsó kaput tartalmazó csomag.

3.2 Telepítés

3.2.1 Függőségek kezelése

A csomagok sokrétű és bonyolult függőségi viszonya az elsődleges ok, amiért szükség van csomagkezelőre. Ez különösen fontos dinamikusan linkelt könyvtárak esetén, amikből a különböző programoknak esetleg különböző verzióra lehet szüksége. Ha ezek nincsenek megfelelően kezelve, az a "dependency hell" nevű, meglehetősen kellemetlen problémához vezet. (Ami ugyan elsősorban Windows rendszerekből lehet ismerős DLL Hell néven, de létezik az RPM Hell kifejezés is [5])

3.3 Frissítés

Ez általában két lépésben történik. Először a csomagkezelő frissíti a saját listáját, majd ellenőrzi, hogy a rendszerben a telepített csomagok verzióját.

3.4 Törlés

Itt is felmerülhet a függőségek kérdése. Ha valamit csak azért települt fel, mert egy másik csomagnak szüksége volt rá, és később ezt eltávolítjuk, "árva" csomagok keletkeznek a rendszerben. Ezek feltakarítása is a csomagkezelő feladata, bár ezt általában nem teszi meg automatikusan.

3.5 Csomagkeresés

A legtöbb esetben létezik erre egy kényelmesebb webes felület, vagy a csomagkezelőhöz tartozó grafikus felület, de a csomagkezelőnek képesnek kell lennie arra is, hogy a csomaglistákban, leírásokban keressen, listázza az elérhető verziókat.

4 Konkrét csomagkezelők

4.1 Debian-variánsok

A Debian alapértelmezett csomagkezelője a dpkg. Erre épül egy összetettebb, nagyobb tudású, és nem utolsó sorban kényelmesebb CLI eszköz, az APT. Ezeken felül még vannak az APT-t is elsősorban grafikus felülettel bővítő programok. Az aptitude ncurses[6] könyvtár segítségével terminálon (bár parancssorosan is működik, teljesen kiváltva az APT-t), míg a synaptic, és az aptitude újabb verzióiban megjelent aptitude-gtk pedig X felett működik.

4.2 RPM

RPM

4.2.1 YUM

Az APThez hasonló magasabb szintű csomagoló az RPMhez.

4.2.2 Zypper

Bár az OpenSUSE szintén RPM csomagokkal működik, saját csomagkezelővel rendelkezik, ez a Zypp.

4.2.2.1 Telepítés
4.2.2.2 Eltávolítás
4.2.2.3 Csomagokkal kapcsolatos lekérdezések
4.2.2.4 Egyéb hasznos funkciók

4.3 Pacman

4.4 Portage

5 Források



Személyes eszközök