Yum i RPM su odlični alati za upravljanje paketima, ali imaju neke malo poznate opcije i karakteristike koje vam omogućavaju da radite neke vrlo zanimljive stvari. Ne morate ih nužno koristiti, ali možda će vam jednog dana dobro doći.
1. Prikaz tipa arhitekture u rezultirajućem RPM-u
Ovu jednostavnu malu stvar je prilično lako napraviti i bit će vrlo korisna za ljude koji koriste x86_64 sisteme. Jedan red u ~/.rpmmacros će vam kasnije uštedjeti mnogo problema.
echo "%_query_all_fmt %%(name)-%%(verzija)-%%(izdanje).%%(arch)" >> ~/.rpmmacros
2. Zatražite pakete koji nisu iz CentOS-a
Želite da dobijete listu paketa instaliranih iz repozitorijuma trećih strana koji nisu CentOS?
Rpm -qa --qf "%(NAME) %(VENDOR)\n" | grep -v CentOS
3. Resetirajte dozvole fajla
Imate li potpunu zbrku s dozvolama za datoteke u paketu? Ne brinite, RPM će se pobrinuti za to.
Rpm --setperms
4. Pregledajte promjene
Budući da CentOS i dobavljač originalnog koda objavljuju sigurnosna ažuriranja, brojevi verzija mogu biti pogrešni kada pogledate CVE-ove za popravke. Provjera promjena u paketu je dobar način da vidite da li su popravci napravljeni ili ne. Još jednom, RPM dolazi u pomoć.
Rpm -q --promjena | manje
Upotreba "manje" je opciona, ali za neke pakete, kao što je kernel, promjene mogu biti prilično opsežne. Stoga ovaj dodatak čini izlaz čitljivijim.
5. Gdje je dokumentacija?
Da biste brzo dobili dokumentaciju povezanu s paketom, možete koristiti sljedeće dvije opcije:
- Ovo će vam pokazati dokumentaciju sadržanu u tom rpm. Ako imate samo ime datoteke onda:
- i rpm će vam pokazati dokumentaciju u paketu koji posjeduje tu datoteku.
6. Porijeklo paketa
Ponekad želite da znate gde ste dobili paket ili pakete, koliko paketa imate na svom sistemu od određenog spremišta ili dobavljača. Postoji nekoliko opcija pretraživanja koje možete koristiti. Iako nisu 100% savršeni, ipak mogu pomoći. Većina paketa iz spremišta ima oznake sa ID-om u redu Izdanje. Na primjer, rpmforge koristi rf kao identifikator. Možete koristiti ovo da vidite šta ste instalirali odatle:
Rpm -q release="*rf*"
i ako želite vidjeti koliko paketa Johnny Hughes ste instalirali možete koristiti:
Rpm -qa packager="Johnny*"
Ova metoda radi na većini kategorija kao što je rpm -qi
Ova komanda će prikazati cijelu listu instaliranih paketa.
7. Izvucite samo jednu datoteku
Ako trebate izdvojiti samo jednu datoteku iz rpm-a bez ponovnog instaliranja cijelog paketa, to možete učiniti pomoću rpm2cpio. Na primjer, da izdvojite samo jednu datoteku iz logrotate rpm, koristite sljedeće:
Rpm2cpio logrotate-1.0-1.i386.rpm |cpio -ivd etc/logrotate.conf
8. Zatražite datum instalacije paketa
Korisno nakon nadogradnje za pronalaženje starih paketa koji nisu nadograđeni.
Rpm -qa --zadnji >~/RPMS_by_Install_Date
Možete koristiti "manje" za izlaz da biste pronašli sve RPMS starije od datuma instalacije. Koristeći također grep - navedite pakete i datum instalacije.
9. Zatražite dostupne pakete iz spremišta
Pronađite sve pakete dostupne iz određenog spremišta, kao što je RPMforge. Paketi koji su već instalirani iz ovog spremišta neće biti prikazani.
Yum --onemogućite "*" --omogućite "rpmforge" listu koja je dostupna
10. Pretražujte koristeći YUM u spremištu paketa za dati niz
Potražite pakete koji sadrže željeni niz u nazivu ili opisu paketa.
yum search buildrpmtree | manje
11. Korištenje Yum-a sa proxy serverom
Da bi Yum radio preko proxy servera, potrebno je da dodate sljedeći parametar u /etc/yum.conf:
Proxy=http://yourproxy:8080/
gdje - vašproxy je ime proxy servera, a 8080 je port proxy servera. Ako server zahtijeva autentifikaciju, možete navesti prijavu kao:
proxy=http://korisničko ime: [email protected]:8080/
RPM Package Manager vam omogućava da koristite proxy promenljive okruženja. Ovo se može postaviti u /etc/profile ili specifično za korisnika u ~/.bash_profile::
Izvezi http_proxy=http://yourproxy:8080/ export ftp_proxy=http://yourproxy:8080/
Da biste koristili wget kroz proxy, dodajte sljedeće redove u /etc/wgetrc
http://yourproxy:8080/ ftp_proxy=http://yourproxy:8080/
U oba slučaja, login i lozinka se mogu postaviti kao u gornjem primjeru.
12. Korištenje Yum-a za instaliranje lokalnog paketa, automatska provjera i zadovoljavanje ovisnosti
yum --nogpgcheck localinstall ime paketa.arch.rpm13. Dobivanje i ponovna izgradnja paketa bez root-a
Ponekad samo trebate ponovo izgraditi određeni paket - možda samo dodati opcije konfiguracije koje jednostavno ne postoje u glavnom paketu. Ili zato što ste pronašli traženi paket koji nije u spremištu, već na RPMs developer stranici za drugu distribuciju. Dakle, trebali biste dobiti src.rpm i vratiti ga po svom ukusu. Ali ne želite to da radite kao superkorisnik. Dakle, kako ponovo izgraditi svoje pakete u vašem kućnom direktoriju pod vašim vlastitim računom.
13.1 Metoda A
Prvo morate postaviti direktorij za rad. Ima prilično potpunu sličnost u strukturi sa /usr/src/redhat direktorijumom:
$ cd $ mkdir -p redhat/(SRPMS,RPMS,SPECS,BUILD,SOURCES) $ ls redhat/ IZGRADNJA RPMS IZVORI SPECS SRPMS $
Koristeći rpm makro, napravit ćemo zamjenu tako da rpmbuild sazna o nama i šta treba izgraditi:
$ echo "%_topdir /home/testuser/redhat" >> .rpmmacros $ echo "%packager Test korisnik " >> .rpmmacros $ cat .rpmmacros %_topdir /home/testuser/redhat %packager Test korisnik $
Upravo. Sljedeći korak je postavljanje rpmbuild --rebuild foo.src.rpm , rezultat rada će biti u datoteci ~/redhat/RPMS/i386 (ili arhitekturi sa kojom ste napravili paket).
13.2 Metoda B
Za CentOS-4, postavite kbs-Extras repo (opciono dodajte kbs-Misk) sa stranice i "yum install fedora-rpmdevtools" kao root koristeći "sudo" ili "su -". Nabavite korisnika (možda ćete želeti da koristite poseban nalog da biste izbegli probleme u svom normalnom kućnom direktorijumu) i pokrenite "fedora-buildrpmtree" i ~/rpmbuild/... u stablu direktorijuma i datoteka ~/.rpmmacros će biti automatski kreiran. (Napomena "rpmbuild" naspram "RedHat" u metodi A.)
Za CentOS-5, paket rpmdevtools nije dostupan. U FC6 SRPM rpmdevtools-5.3-1.fc6.src.rpm se gradi i radi.
Ispod je makro za dobivanje pravih imena nekih paketa (zamijenite odgovarajuću verziju distribucije za "el4" svojom):
$ echo "%dist .el4" >> .rpmmacros
14. Prikaži prioritete za sva instalirana spremišta
Možete dobiti listu svih repozitorija koje ste instalirali - yum repolist all. Međutim, ne prikazuje indeks prioriteta. Evo linije potrebne za ovo. Ako broj nije definiran, zadano je najniži prioritet (99).
Cat /etc/yum.repos.d/*.repo | sed -n -e "/^\# yum lista "vim*" Instalirani paketi vim-minimal.i386 2:7.0.109-7.el5 instalirani Dostupni paketi vim-X11.i386 2:7.0.109-7.el5 base vim-augeas.i386 0.9.0-2.el5.rf rpmforge vim-clustershell.noarch 1.5.1-1.el5 epel vim-common.i386 2:7.0.109-7.el5 base vim-enhanced.i386 2: 7.0.109-7.el5 baza vim-halibut.i386 1.0-2.20100504svn8934.el5.1 epel vim-puppet.noarch 2.7.9-1.el5.rf rpmforge
16. Prikaži sve instalirane GPG ključeve
Prikaži listu svih ključeva sa odgovarajućim informacijama o spremištu:
Rpm -q gpg-pubkey --qf "%(ime)-%(verzija)-%(izdanje) --> %(sažetak)\n"
17. Potpisivanje paketa
Želite li potpisati svoj paket koji ste sastavili kako bi drugi mogli provjeriti njegovu autentičnost? Možete to učiniti vrlo jednostavno. Provjerite dokumentaciju.
Napomena: Za CentOS 5 i 4, bolje je da koristite DSA ključ za potpisivanje (pošto je verzija 4 RSA imala problema s validacijom).
18. YUM metapaket
Metapaket je poseban paket koji ne sadrži nikakav softver, ali ima određeni skup softvera kao zavisnosti. Na primjer: instaliranje X na server.
Da biste vidjeli listu svih metapaketa, trebate pokrenuti naredbu: yum grouplist. Ali ako imate rusku lokaciju, tada će lista biti prikazana na ruskom. Da biste dobili listu pogodnu za instalaciju (na engleskom), postavite izlazni jezik naredbe na engleski:
LANG=C yum grupna lista
19. Kako prikazati listu instaliranih paketa
Instalirani paketi mogu prikazati komande
Yum lista je instalirana
Na primjer, preuzmite listu instaliranih paketa iz spremišta:
# instalirana yum lista | grep ius php71u-cli.x86_64 7.1.17-1.ius.el6 @ius php71u-common.x86_64 7.1.17-1.ius.el6 @ius php71u-embedded.x86_64 @ius 7.1.17-6. php71u-fpm.x86_64 7.1.17-1.ius.el6 @ius 7.1.17-1.ius.el6 @ius php71u-gd.x86_64 7.1.17-1.ius.el6 @ius php71u-intl.x71.el6 17-1.ius.el6 @ius php71u-json.x86_64 7.1.17-1.ius.el6 @ius php71u-mbstring.x86_64 7.1.17-1.ius.el6 @ius php71u-pdo.x86_.17- 1.ius.el6 @ius 3.4.3-2.ius.el6 @ius php71u-pgsql.x86_64 7.1.17-1.ius.el6 @ius php71u-xml.x86_64 7.1.17-1.ius.el6 @ius php71u-xmlrpc.x86_64 7.1.17-1.ius.el6 @ius
|Većina modernih operativnih sistema sličnih Unixu nudi centralizovane mehanizme za pronalaženje i instaliranje paketa. Softver se obično distribuira u obliku paketa koji se čuvaju u repozitorijumima. Paketi sadrže osnovne komponente operativnog sistema, kao i zajedničke biblioteke, aplikacije, usluge i dokumentaciju.
Sistem za upravljanje paketima, pored instaliranja softvera, pruža mnoge druge mogućnosti i alate za nadogradnju već instaliranih paketa. Repozitorijumi paketa osiguravaju da je kod prošao potrebnu validaciju za korištenje u sistemu i da su instalirane verzije softvera odobrene od strane programera.
Kada postavljate serversko ili razvojno okruženje, najbolje je potražiti pakete u službenim spremištima. Paketi u stabilnoj distribuciji mogu biti zastarjeli, posebno ako se softver brzo ažurira.
Upravljanje paketima je vitalna vještina za sistemske administratore i programere.
Ovaj vodič pokriva osnove upravljanja paketima: pronalaženje, instaliranje i ažuriranje paketa za različite distribucije.
Sistemi za upravljanje paketima: Kratak pregled
Većina sistema za upravljanje paketima izgrađena je oko skupova datoteka paketa. Datoteka paketa je obično arhiva koja sadrži kompajlirane binarne datoteke, instalacione skripte i druge resurse koji čine program. Paketi takođe sadrže vredne metapodatke, uključujući njihove zavisnosti (lista paketa potrebnih za pokretanje programa).
Operativni sistem | Format |
Debian | .deb |
ubuntu | .deb |
CentOS | .rpm |
Fedora | .rpm |
FreeBSD | portovi, .txz |
CentOS, Fedora i drugi Red Hat sistemi koriste RPM datoteke. CentOS koristi yum manager za interakciju sa paketima i repozitorijumima. U novijim verzijama Fedore, yum je zamijenjen moderniziranim dnf managerom.Debian sistem i sistemi bazirani na njemu (Ubuntu, Linux Mint, Raspbian) koriste .deb format. APT (Advanced Packaging Tool) menadžer paketa pruža komande koje se koriste za najčešće operacije: pronalaženje spremišta, upravljanje ažuriranjima, instaliranje skupa paketa i njihovih zavisnosti. APT komande rade kao prednji dpkg uslužni program niskog nivoa koji upravlja instalacijom pojedinačnih .deb paketa na lokalnom sistemu; ako je potrebno, ovaj uslužni program se može eksplicitno pozvati.
FreeBSD binarnim sistemom upravlja naredba pkg. Osim toga, FreeBSD pruža kolekciju portova, strukturu lokalnog direktorija i alate koji vam omogućavaju da izvučete, kompajlirate i instalirate pakete iz izvora koristeći makefile. Obično je zgodnije koristiti pkg manager, ali ponekad prethodno kompajlirani paketi nisu dostupni.
Ažuriranje liste paketa
Većina sistema održava lokalnu bazu podataka o paketima dostupnim iz udaljenih spremišta. Preporučuje se da ažurirate ovu bazu podataka prije instaliranja ili nadogradnje paketa. Djelomični izuzeci ovog obrasca su yum i DNF, koji provjeravaju ažuriranja paketa prije izvođenja nekih operacija.
Operativni sistem | Tim |
Debian/Ubuntu | sudo apt-get update |
CentOS | yum check-update |
Fedora | dnf check-update |
FreeBSD paketi | sudo pkg ažuriranje |
FreeBSD portovi | sudo portsnap dohvati ažuriranje |
Nadogradnja instaliranih paketa
Održavanje instaliranog softvera ažurnim bez pomoći sistema za upravljanje paketima je prilično dugotrajan zadatak. Morat ćete sami pratiti ažuriranja paketa i sigurnosna obavještenja za stotine različitih paketa. Naravno, menadžer paketa neće riješiti svaki problem na koji možete naići prilikom ažuriranja softvera, ali će pomoći da većina komponenti sistema bude ažurirana sa samo nekoliko naredbi.
Na FreeBSD sistemu, ažuriranje instaliranih portova može zahtijevati ručnu konfiguraciju. Preporučuje se da pregledate /usr/ports/UPDATING prije ažuriranja portmastera.
Sistem | Tim |
Debian/Ubuntu | sudo apt-get upgrade |
sudo apt-get dist-upgrade | |
CentOS | sudo yum update |
Fedora | sudo dnf upgrade |
FreeBSD paketi | sudo pkg upgrade |
FreeBSD portovi | manje /usr/ports/UPDATING |
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a |
Potražite pakete
Većina distribucija obezbjeđuje grafički interfejs ili interfejs vođen menijem za kolekcije paketa. Omogućava vam da pretražujete kategorije i tražite novi softver. Međutim, najčešće najbrži i najefikasniji način pronalaženja paketa je pretraživanje pomoću alata komandne linije.
Sistem | Tim |
Debian/Ubuntu | apt-cache pretraga search_string |
CentOS | yum search search_string |
yum pretraži sve search_string | |
Fedora | dnf pretraga search_string |
dnf pretraži sve search_string | |
FreeBSD (paketi) | pkg pretraga search_string |
pkg pretraga -f string_pretraga | |
pkg pretraga -D string_pretraga | |
FreeBSD (portovi) | cd /usr/ports && izvrši pretragu ime=paket |
cd /usr/ports && napravi ključ za pretragu=string_pretraživanja |
Informacije o paketu
Kada odlučujete kako da instalirate paket, pogledajte detaljne opise paketa za pomoć. Ovaj čitljivi tekst često sadrži korisne metapodatke kao što su brojevi verzija, lista zavisnosti i tako dalje.
Sistem | Tim |
Debian/Ubuntu | apt-cache show paket |
dpkg -s paket | |
CentOS | yum info paket |
yum deplist paket | |
Fedora | dnf info paket |
dnf repoquery --zahtijeva paket | |
FreeBSD (paketi) | pkg info paket |
FreeBSD (portovi) | cd /usr/ports/category/port && cat pkg-descr |
Instaliranje paketa iz spremišta
Znajući naziv potrebnog paketa, možete ga vrlo brzo instalirati jednom naredbom. Također možete navesti sve pakete koje je potrebno instalirati u jednoj komandi.
Sistem | Tim |
Debian/Ubuntu | sudo apt-get instalacioni paket |
sudo apt-get install paket1 paket2 ... | |
sudo apt-get install -y paket | |
CentOS | sudo yum instalacioni paket |
sudo yum instaliraj paket 1 paket 2 ... | |
sudo yum install -y paket | |
Fedora | sudo dnf instalacioni paket |
sudo dnf instaliraj paket 1 paket 2 ... | |
sudo dnf install -y paket | |
FreeBSD (paketi) | sudo pkg instalacioni paket |
sudo pkg instaliraj paket 1 paket 2 ... | |
FreeBSD (portovi) | cd /usr/ports/category/port && sudo make install |
Instaliranje paketa sa lokalnog sistema datoteka
Ponekad programeri ili dobavljači nude paketna preuzimanja čak i ako aplikacija nije službeno upakovana za taj operativni sistem.
Obično se ovi paketi mogu preuzeti pomoću web pretraživača ili uslužnog programa curl na komandnoj liniji. Kada se paket preuzme, može se instalirati jednom naredbom.
Na sistemima sličnim Debianu, dpkg upravlja pojedinačnim datotekama paketa. Ako paket ima zavisnosti koje nisu instalirane na sistemu, gdebi ih može preuzeti iz zvaničnog spremišta.
Na CentOS i Fedora sistemima, yum i dnf se koriste za instaliranje pojedinačnih datoteka i rukovanje potrebnim zavisnostima.
Sistem | Tim |
Debian/Ubuntu | sudo dpkg -i paket.deb |
sudo apt-get install -y gdebi&& sudo gdebi package.deb | |
CentOS | sudo yum install package.rpm |
Fedora | sudo dnf install package.rpm |
FreeBSD (paketi) | sudo pkg add package.txz |
sudo pkg add -f paket.txz |
Uklanjanje paketa
Upravitelj paketa tačno zna koje datoteke svaki paket nudi, tako da se može koristiti za jednostavno uklanjanje svih nepotrebnih programa.
Odredište Yum
Yum je kreiran da riješi sljedeće probleme:
- Pronalaženje paketa u spremištima
- Instaliranje paketa iz spremišta
- Instaliranje paketa iz .rpm datoteka, rješavanje ovisnosti korištenjem spremišta
- Ažuriranje sistema
- Uklanjanje neželjenih paketa
- U stvari, yum je omot za rpm koji omogućava rad sa repozitorijumima.
Osnovne operacije paketa
Traži u spremištima
Tri komande se koriste za pretraživanje spremišta sa yumom: list , search i provide .
Najlakši način pretraživanja je korištenje naredbe list. Naredba list gleda imena paketa i verzije tražeći podudaranja. Na primjer, da vidite pakete pod nazivom tsclient, koristite:
Yum lista tsclient
Naredba pretraživanja pretražuje ime paketa i opis za navedeni niz. Na primjer, da biste tražili PalmPilot povezane pakete, upišite:
Yum search PalmPilot
Naredba provide vam omogućava da tražite pakete koji sadrže navedenu datoteku. Na primjer, da tražite pakete koji sadrže libneon, upišite:
Yum pruža libneon
Da li sve naredbe pretraživanja podržavaju zamjenske znakove? i * (izbjeći ih sa \ za bash da ih ispravno raščlanim). Na primjer, kada tražite pakete koji počinju sa tsc, upišite:
Yum lista tsc\*
za traženje paketa koji sadrže datoteke u /etc/httpd direktoriju
Yum pruža /etc/httpd\*
ili za traženje određenih naredbi/programa, na primjer, za traženje mc (ponoćni komandant)
Yum pruža \*/mc
kao rezultat dobijamo sledeći izlaz
1:mc-4.7.4-1.fc14.i686: Upravljač datotekama tekstualne konzole i vizualna ljuska prilagođen korisniku Spremište: base Podudaranja: Ime datoteke: /usr/share/mc Ime datoteke: /usr/libexec/mc Ime datoteke: /etc/ mc Ime datoteke: /usr/bin/mc
Instaliranje paketa sa Yum
Da biste instalirali pakete sa yumom, koristite opciju instalacije
Za instaliranje tsclient tipa:
Yum install tsclient
Yum će automatski riješiti (ako može) ovisnosti i ponuditi da ih instalira:
Instaliranje paketa iz .rpm datoteka
Za instaliranje .rpm paketa s automatskom razlučivanjem ovisnosti, koristila se naredba localinstall. Sada možete koristiti uobičajenu instalaciju. Dakle komanda:
Yum install foo.rpm
će automatski pronaći zavisnosti foo.rpm paketa u spremištima (ako može) i ponuditi da ih instalira.
Može postojati problem u odsustvu ili nepoznatom GPG potpisu RPM paketa, što će rezultirati neuspjehom instaliranja i, kao rezultatom, sljedećom greškom
Javni ključ za foo.rpm nije postavljen
Da biste ovo zaobišli (ako vjerujete izvoru koji pruža paket) morate isključiti provjeru GPG ključeva dodavanjem opcije --nogpgcheck na kraj naredbe
Ažuriranje sistema
Ažuriranje sistema se vrši jednom komandom - ažuriranje. ovako:
Yum update
će ažurirati cijeli vaš sistem. Tim
Yum update foo
Kada se koriste obje metode, performanse su očuvane.
Korištenje Yum-a sa proxy serverom
Da bi Yum radio preko proxy servera, potrebno je da dodate sljedeći parametar u /etc/yum.conf:
Proxy=http://yourproxy:8080/
gdje - vašproxy je ime proxy servera, a 8080 je port proxy servera. Ako server zahtijeva autentifikaciju, možete navesti prijavu kao:
proxy=http://korisničko ime: [email protected]:8080/
RPM Package Manager vam omogućava da koristite proxy promenljive okruženja. Ovo se može postaviti u /etc/profile ili specifično za korisnika u ~/.bash_profile::
Izvezi http_proxy=http://yourproxy:8080/
izvoz ftp_proxy=http://yourproxy:8080/
Da biste koristili wget kroz proxy, dodajte sljedeće redove u /etc/wgetrc
Http_proxy = http://vašproxy:8080/
ftp_proxy = http://vašproxy:8080/
U oba slučaja, login i lozinka se mogu postaviti kao u gornjem primjeru.
Korištenje Yum-a za instalaciju lokalnog paketa, automatski provjeravajući i zadovoljavajući ovisnosti
yum --nogpgcheck localinstall ime paketa.arch.rpmPrikaz prioriteta za sva instalirana spremišta
Možete dobiti listu svih repozitorija koje ste instalirali - yum repolist all. Međutim, ne prikazuje indeks prioriteta. Evo linije potrebne za ovo. Ako broj nije definiran, zadano je najniži prioritet (99).
Cat /etc/yum.repos.d/*.repo | sed -n -e "/^\)