Upravljanje Linux paketima s Yum, RPM, Apt, Dpkg, Aptitude i Zypper - 9. dio


Prošlog avgusta, Linux fondacija je objavila LFCS certifikaciju (Linux Foundation Certified Sysadmin), sjajnu priliku za sistemske administratore svuda da pokažu, kroz ispit zasnovan na performansama, da su sposobni su uspjeti u cjelokupnoj operativnoj podršci za Linux sisteme. Linux Foundation Certified Sysadmin ima stručnost da osigura efikasnu sistemsku podršku, prvostepeno rješavanje problema i nadgledanje, uključujući konačno eskalaciju problema, kada je to potrebno, timovima za inženjersku podršku.

Pogledajte sljedeći video koji objašnjava program sertifikacije Linux Foundation.

Ovaj članak je 9. dio duge serije od 10 tutorijala, danas ćemo vas u ovom članku voditi o upravljanju Linux paketima, koji su potrebni za LFCS ispit za sertifikaciju.

Upravljanje paketima

U nekoliko riječi, upravljanje paketima je metoda instaliranja i održavanja (što uključuje ažuriranje i vjerovatno uklanjanje) softvera na sistemu.

U ranim danima Linuxa, programi su se distribuirali samo kao izvorni kod, zajedno sa potrebnim man stranicama, potrebnim konfiguracijskim datotekama i još mnogo toga. Danas većina distributera Linuxa po defaultu koristi unaprijed izgrađene programe ili skupove programa koji se nazivaju paketi, koji su predstavljeni korisnicima spremni za instalaciju na toj distribuciji. Međutim, jedno od čuda Linuxa je i dalje mogućnost da se dobije izvorni kod programa koji treba proučavati, poboljšati i kompajlirati.

Kako funkcionišu sistemi za upravljanje paketima

Ako određeni paket zahtijeva određeni resurs kao što je dijeljena biblioteka ili drugi paket, kaže se da ima ovisnost. Svi moderni sistemi za upravljanje paketima pružaju neki način rješavanja ovisnosti kako bi se osiguralo da kada je paket instaliran, instaliraju se i sve njegove ovisnosti.

Packaging Systems

Gotovo sav softver koji je instaliran na modernom Linux sistemu naći će se na Internetu. Može ga ili obezbijediti dobavljač distribucije kroz centralna spremišta (koja mogu sadržavati nekoliko hiljada paketa, od kojih je svaki posebno napravljen, testiran i održavan za distribuciju) ili biti dostupan u izvornom kodu koji se može preuzeti i instalirati ručno .

Budući da različite distribucijske porodice koriste različite sisteme pakiranja (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm napravljen posebno za openSUSE), paket namijenjen jednoj distribuciji neće biti kompatibilan s drugom distribucijom. Međutim, većina distribucija će vjerovatno spadati u jednu od tri distribucijske porodice obuhvaćene LFCS certifikatom.

Paketni alati visokog i niskog nivoa

Da biste efikasno obavljali zadatak upravljanja paketima, morate biti svjesni da ćete imati dvije vrste dostupnih uslužnih programa: alate niskog nivoa (koji u pozadini obrađuju stvarnu instalaciju, nadogradnju i uklanjanje fajlova paketa), i alate visokog nivoa (koji su zaduženi da obezbede izvršavanje zadataka rešavanja zavisnosti i pretraživanja metapodataka - ”podaci o podacima”).

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

Pogledajmo opis alata niskog i visokog nivoa.

dpkg je upravitelj paketa niske razine za sisteme bazirane na Debianu. Može instalirati, ukloniti, pružiti informacije i izgraditi *.deb pakete, ali ne može automatski preuzeti i instalirati njihove odgovarajuće ovisnosti.

Pročitajte više: 15 dpkg primjera naredbi

apt-get je upravitelj paketa visoke razine za Debian i derivate, i pruža jednostavan način za dohvaćanje i instalaciju paketa, uključujući rješavanje ovisnosti, iz više izvora pomoću naredbenog retka. Za razliku od dpkg, apt-get ne radi direktno sa *.deb datotekama, već sa pravim imenom paketa.

Pročitajte više: 25 primjera naredbi apt-get

aptitude je još jedan upravitelj paketa visoke razine za sisteme bazirane na Debianu i može se koristiti za obavljanje zadataka upravljanja (instalacija, nadogradnja i uklanjanje paketa, također automatsko rukovanje rješavanjem ovisnosti) na brz i jednostavan način . Pruža istu funkcionalnost kao apt-get i dodatne, kao što je nuđenje pristupa nekoliko verzija paketa.

rpm je sistem za upravljanje paketima koji koriste distribucije kompatibilne sa Linux Standardnom bazom (LSB) za rukovanje paketima na niskom nivou. Baš kao i dpkg, može da postavlja upite, instalira, verifikuje, nadogradi i uklanja pakete, a češće ga koriste distribucije zasnovane na Fedora, kao što su RHEL i CentOS.

Pročitajte više: Primjeri naredbi 20 o/min

yum dodaje funkcionalnost automatskih ažuriranja i upravljanja paketima sa upravljanjem zavisnosti sistemima zasnovanim na RPM-u. Kao alat visokog nivoa, poput apt-get ili aptitude, yum radi sa repozitorijumima.

Pročitajte više: 20 primjera naredbi yum

Uobičajena upotreba alata niskog nivoa

Najčešći zadaci koje ćete raditi s alatima niskog nivoa su sljedeći:

1. Instaliranje paketa iz kompajlirane (*.deb ili *.rpm) datoteke

Nedostatak ove metode instalacije je što nije pružena rezolucija ovisnosti. Najvjerovatnije ćete odabrati da instalirate paket iz kompajlirane datoteke kada takav paket nije dostupan u repozitorijumima distribucije i stoga se ne može preuzeti i instalirati putem alata visokog nivoa. Budući da alati niskog nivoa ne izvode rješavanje ovisnosti, oni će izaći s greškom ako pokušamo instalirati paket s neispunjenim ovisnostima.

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

Napomena: Ne pokušavajte da instalirate na CentOS datoteku *.rpm koja je napravljena za openSUSE, ili obrnuto!

2. Nadogradnja paketa iz kompajlirane datoteke

Opet, samo ćete ručno nadograditi instalirani paket kada nije dostupan u centralnim spremištima.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Popis instaliranih paketa

Kada prvi put dobijete u ruke sistem koji već radi, velike su šanse da ćete želeti da znate koji su paketi instalirani.

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

Ako želite znati da li je instaliran određeni paket, možete poslati izlaz gornjih naredbi u grep, kao što je objašnjeno u manipuliranju datotekama u Linuxu – 1. dio ove serije. Pretpostavimo da trebamo provjeriti da li je paket mysql-common instaliran na Ubuntu sistemu.

dpkg -l | grep mysql-common

Drugi način da se utvrdi da li je paket instaliran.

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

Na primjer, hajde da saznamo da li je paket sysdig instaliran na našem sistemu.

rpm -qa | grep sysdig

4. Otkrivanje koji paket je instalirao datoteku
dpkg --search file_name
rpm -qf file_name

Na primjer, koji je paket instalirao pw_dict.hwm?

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

Uobičajena upotreba alata visokog nivoa

Najčešći zadaci koje ćete raditi s alatima visokog nivoa su sljedeći.

1. Traženje paketa

aptitude update će ažurirati listu dostupnih paketa, a aptitude search će izvršiti stvarnu pretragu za package_name.

aptitude update && aptitude search package_name 

U opciji pretraživanja svih, yum će tražiti ime paketa ne samo u nazivima paketa, već iu opisima paketa.

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

Pretpostavimo da nam je potreban fajl čije je ime sysdig. Da bismo znali taj paket koji ćemo morati instalirati, pokrenimo.

yum whatprovides “*/sysdig”

whatprovides govori yum da pretraži paket, a to će dati fajl koji odgovara gore navedenom regularnom izrazu.

zypper refresh && zypper search package_name		[On openSUSE]
2. Instaliranje paketa iz spremišta

Prilikom instaliranja paketa, od vas će možda biti zatraženo da potvrdite instalaciju nakon što upravitelj paketa riješi sve zavisnosti. Imajte na umu da pokretanje ažuriranja ili osvježavanja (prema upravljaču paketa koji se koristi) nije striktno neophodno, ali održavanje instaliranih paketa ažurnim je dobra praksa sistema administratora iz sigurnosnih razloga i razloga ovisnosti.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Uklanjanje paketa

Opcija ukloni će deinstalirati paket ali će ostaviti konfiguracijske datoteke netaknute, dok će čišćenje izbrisati svaki trag programa sa vašeg sistema.
# aptitude ukloni/očisti ime_paketa
# yum erase package_name

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

zypper remove -package_name 

Većina (ako ne i svi) upravitelji paketa će vas, prema zadanim postavkama, pitati da li ste sigurni da nastavite s deinstalacijom prije nego što je izvršite. Stoga pažljivo pročitajte poruke na ekranu kako biste izbjegli nepotrebne probleme!

4. Prikaz informacija o paketu

Sljedeća komanda će prikazati informacije o paketu rođendan.

aptitude show birthday 
yum info birthday
zypper info birthday

Sažetak

Upravljanje paketima je nešto što jednostavno ne možete gurnuti pod tepih kao sistem administrator. Trebali biste biti spremni koristiti alate opisane u ovom članku u trenutku. Nadam se da će vam biti od koristi u pripremi za LFCS ispit i za vaše dnevne zadatke. Slobodno ostavite svoje komentare ili pitanja ispod. Biće nam više nego drago da vam se javimo što je pre moguće.