Weboldal keresés

Linux csomagkezelés Yum, RPM, Apt, Dpkg, Aptitude és Zypper segítségével – 9. rész


Tavaly augusztusban a Linux Foundation bejelentette az LFCS tanúsítványt (Linux Foundation Certified Sysadmin), amely remek lehetőség a rendszergazdák számára, hogy egy teljesítményalapú vizsgán keresztül bebizonyítsák, képesek a Linux rendszerek általános működési támogatására. A Linux Foundation Certified Sysadmin rendelkezik azzal a szakértelemmel, hogy hatékony rendszertámogatást, első szintű hibaelhárítást és felügyeletet biztosítson, beleértve a probléma végső eszkalációját, ha szükséges, a mérnöki támogató csoportok felé.

Tekintse meg a következő videót, amely elmagyarázza a Linux Foundation tanúsítási programját.

Ez a cikk egy 10 oktatóanyagból álló sorozat 9. része, ma ebben a cikkben az LFCS-tanúsítási vizsgához szükséges Linux-csomagkezelésről fogunk tájékoztatni.

Csomagkezelés

Néhány szóval a csomagkezelés egy szoftver telepítésének és karbantartásának (amely magában foglalja a frissítést és valószínűleg az eltávolítást is) módszere a rendszeren.

A Linux korai napjaiban a programokat csak forráskódként terjesztették, a szükséges kézikönyvlapokkal, a szükséges konfigurációs fájlokkal és egyebekkel együtt. Napjainkban a legtöbb Linux-terjesztő alapértelmezés szerint előre beépített programokat vagy csomagoknak nevezett programkészleteket használ, amelyeket az adott disztribúcióra telepítésre készen mutatnak be a felhasználóknak. A Linux egyik csodája azonban továbbra is az a lehetőség, hogy egy tanulmányozandó, fejlesztendő és lefordítandó program forráskódját megszerezzük.

Hogyan működnek a csomagkezelő rendszerek

Ha egy bizonyos csomag egy bizonyos erőforrást igényel, például egy megosztott könyvtárat vagy egy másik csomagot, akkor azt mondják, hogy függősége van. Minden modern csomagkezelő rendszer biztosít valamilyen függőségi feloldási módszert annak biztosítására, hogy a csomag telepítése után az összes függősége is telepítve legyen.

Csomagolórendszerek

Szinte az összes szoftver, amely egy modern Linux rendszerre telepítve van, megtalálható az interneten. A disztribúció szállítója biztosíthatja központi tárolókon keresztül (amelyek több ezer csomagot tartalmazhatnak, amelyek mindegyike kifejezetten a terjesztéshez készült, tesztelve és karbantartva), vagy elérhető forráskódban, amely letölthető és manuálisan telepíthető. .

Mivel a különböző terjesztési családok különböző csomagolási rendszereket használnak (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm, kifejezetten openSUSE), az egyik disztribúcióhoz szánt csomag nem lesz kompatibilis egy másik disztribúcióval. A legtöbb disztribúció azonban valószínűleg az LFCS-tanúsítvány által lefedett három terjesztési család valamelyikébe tartozik.

Magas és alacsony szintű csomageszközök

A csomagkezelési feladat hatékony végrehajtásához tisztában kell lennie azzal, hogy kétféle segédprogram áll rendelkezésére: alacsony szintű eszközök (amelyek a háttérben kezelik a tényleges telepítést, frissítést és csomagfájlok eltávolítása), és magas szintű eszközök (amelyek a függőségi feloldás és a metaadat-keresés - ”adat az adatokról ”-) feladatainak elvégzéséért felelnek.

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Lássuk az alacsony és magas szintű eszközök leírását.

A dpkg egy alacsony szintű csomagkezelő a Debian-alapú rendszerek számára. Telepítheti, eltávolíthatja, információkat szolgáltathat azokról és összeállíthatja a *.deb csomagokat, de nem tudja automatikusan letölteni és telepíteni a megfelelő függőségeiket.

További információ: 15 dpkg parancspéldák

Az apt-get egy magas szintű csomagkezelő a Debianhoz és származékaihoz, és egyszerű módot biztosít csomagok lekérésére és telepítésére, beleértve a függőségi feloldást is, több forrásból a parancssor használatával. A dpkg-tól eltérően az apt-get nem közvetlenül a *.deb fájlokkal működik, hanem a csomag megfelelő nevével.

További információ: 25 apt-get parancspélda

Az aptitude egy másik magas szintű csomagkezelő a Debian-alapú rendszerek számára, és felügyeleti feladatok (csomagok telepítése, frissítése és eltávolítása, valamint a függőségek feloldásának automatikus kezelése) gyors és egyszerű végrehajtására használható. . Ugyanazokat a funkciókat kínálja, mint az apt-get és további funkciókat, például hozzáférést biztosít egy csomag több verziójához.

Az rpm a Linux Standard Base (LSB)-kompatibilis disztribúciók által használt csomagkezelő rendszer a csomagok alacsony szintű kezelésére. Csakúgy, mint a dpkg, lekérdezhet, telepíthet, ellenőrizhet, frissíthet és eltávolíthat csomagokat, és gyakrabban használják a Fedora-alapú disztribúciók, például az RHEL és a CentOS.

További információ: 20 ford./perc Példák a parancsokra

A yum hozzáadja az automatikus frissítések és a csomagkezelés funkcionalitását a függőségek kezelésével az RPM-alapú rendszerekhez. Magas szintű eszközként, mint például az apt-get vagy az aptitude, a yum tárolókkal működik.

További információ: 20 yum parancspélda

Alacsony szintű eszközök gyakori használata

Az alacsony szintű eszközökkel végzett leggyakoribb feladatok a következők:

1. Csomag telepítése lefordított (*.deb vagy *.rpm) fájlból

Ennek a telepítési módszernek az a hátránya, hogy nincs függőségi feloldás. Valószínűleg úgy dönt, hogy egy lefordított fájlból telepít egy csomagot, ha az ilyen csomag nem érhető el a disztribúció tárolóiban, és ezért nem tölthető le és telepíthető magas szintű eszközzel. Mivel az alacsony szintű eszközök nem hajtanak végre függőségi feloldást, hibával lépnek ki, ha nem teljesített függőséggel rendelkező csomagot próbálunk telepíteni.

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Megjegyzés: Ne próbáljon meg olyan *.rpm fájlt telepíteni a CentOS rendszerre, amely openSUSE-hoz készült, és fordítva!

2. Csomag frissítése lefordított fájlból

A telepített csomagot ismét csak akkor frissítheti manuálisan, ha az nem érhető el a központi tárolókban.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. A telepített csomagok listázása

Amikor először talál kézbe egy már működő rendszert, valószínűleg tudni fogja, milyen csomagok vannak telepítve.

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Ha meg szeretné tudni, hogy egy adott csomag telepítve van-e, a fenti parancsok kimenetét a grep-be írhatja, amint azt a Linux fájlok kezelése című részben ismertetjük – a sorozat 1. része. Tegyük fel, hogy ellenőriznünk kell, hogy a mysql-common csomag telepítve van-e egy Ubuntu rendszeren.

dpkg -l | grep mysql-common

Egy másik módszer annak meghatározására, hogy a csomag telepítve van-e.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Például nézzük meg, hogy a sysdig csomag telepítve van-e a rendszerünkön.

rpm -qa | grep sysdig

4. Annak megállapítása, hogy melyik csomag telepített egy fájlt
dpkg --search file_name
rpm -qf file_name

Például melyik csomag telepítette a pw_dict.hwm fájlt?

rpm -qf /usr/share/cracklib/pw_dict.hwm

Magas szintű eszközök általános használata

A leggyakrabban végzett feladatok, amelyeket magas szintű eszközökkel végeznek, a következők.

1. Csomag keresése

Az aptitude update frissíti az elérhető csomagok listáját, az aptitude search pedig a package_name tényleges keresését hajtja végre.

aptitude update && aptitude search package_name 

Az összes keresése opcióban a yum nem csak a csomagnevekben, hanem a csomagleírásokban is keresni fogja a package_name kifejezést.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

Tegyük fel, hogy szükségünk van egy fájlra, amelynek a neve sysdig. Ha tudni szeretné, hogy a csomagot telepítenünk kell, futtassuk.

yum whatprovides “*/sysdig”

A whatprovides megmondja a yum-nak, hogy keressen a csomagban, és a fenti reguláris kifejezésnek megfelelő fájlt ad.

zypper refresh && zypper search package_name		[On openSUSE]
2. Csomag telepítése lerakatból

Egy csomag telepítése közben előfordulhat, hogy a rendszer felkéri a telepítés megerősítésére, miután a csomagkezelő minden függőséget feloldott. Ne feledje, hogy a frissítés vagy a frissítés futtatása (a használt csomagkezelőtől függően) nem feltétlenül szükséges, de a telepített csomagok naprakészen tartása egy jó rendszergazdai gyakorlat biztonsági és függőségi okokból.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Csomag eltávolítása

Az eltávolítás opció eltávolítja a csomagot, de a konfigurációs fájlok érintetlenek maradnak, míg a törlés a program minden nyomát törli a rendszerről.
# aptitude remove/purge package_name
# yum törölje a csomag_nevet

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

A legtöbb (ha nem az összes) csomagkezelő alapértelmezés szerint rákérdez, ha biztos benne, hogy folytatja-e az eltávolítást, mielőtt ténylegesen végrehajtaná. Ezért figyelmesen olvassa el a képernyőn megjelenő üzeneteket, hogy elkerülje a felesleges problémákat!

4. Információk megjelenítése egy csomagról

A következő parancs információkat jelenít meg a születésnapi csomagról.

aptitude show birthday 
yum info birthday
zypper info birthday

Összegzés

A csomagkezelés olyan dolog, amit rendszergazdaként egyszerűen nem söpörhet a szőnyeg alá. Fel kell készülnie a cikkben leírt eszközök azonnali használatára. Reméljük, hasznosnak találja az LFCS vizsgára való felkészülésben és a napi feladataiban. Nyugodtan hagyja meg észrevételeit vagy kérdéseit alább. Örülünk, ha a lehető leghamarabb visszakeresünk.