Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • Materijal iz ruske baze znanja projekta Fedora. Savjeti za Yum i RPM

Materijal iz ruske baze znanja projekta Fedora. Savjeti za Yum i RPM

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:
rpm -qdf /putanja/do/datoteke
  • 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.rpm

13. 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:

================================================== = ========================== Paket Arch Verzija Repozitorija Veličina =================== = =================================================== ======= Instaliranje: tsclient i386 0.132-6 base 247 k Instaliranje za zavisnosti: rdesktop i386 1.4.0-2 base 107 k Sažetak transakcije =============== == ================================================ === ========= Instaliraj 2 paketa Ažuriraj 0 paketa Ukloni 0 paketa Ukupna veličina preuzimanja: 355 k Da li je ovo u redu:

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.rpm

Prikaz 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 "/^\)

Top Related Articles