pacman (Српски)
| Summary |
|---|
| pacman je Arch Linux paket menadzer. Paket menadzeri se koriste za instaliranje, osvezavanje i uklanjanje softvera. Ovaj clanak pokriva osnovnu upotrebu i savete za resavanje eventualnih problema. |
| Related |
| Unazadjivanje paketa |
| Unapredjivanje pacman performansi |
| pacman frontendovi sa GUI-jem |
| pacman Rosetta |
| pacman saveti |
| Izvori |
| libalpm(3) Manual Page |
| pacman(8) Manual Page |
| pacman.conf(5) Manual Page |
| repo-add(8) Manual Page |
pacman paket menadzer je jedan od glavnih funkcija Arch Linux-a. On kombinuje jednostavni formati binarnih paketa sa jednostavnim sistemom za izgradnju paketa (pogledajte makepkg (Српски) i Arch Build System (Српски). Cilj pacman-a je da ucini mogucim jednostavno upravljanje paketima, bez obzira da li su oni iz oficijalnih Arch repozitorijuma ili ih je korisnik sam napravio.
pacman zadrzava sistem aktuelnim tako sto sinhronizuje paket liste sa master serverom. Ovaj server/klijent model takodje pruza mogucnost da preuzmete/instalirate pakete sa jednostavnom komandom, zajedno sa svim neophodnim zavisnostima.
pacman je napisan u C programskom jeziku i koristi .pkg.tar.xz paket format.
Podesavanje
pacman podesavanja se nalaze u /etc/pacman.conf. To je mesto gde korisnik moze da podesi program na nacin kako njemu odgovara. Detaljne informacije o ovom fajlu i podesavanjima se mogu naci u man pacman.conf.
Opste opcije
Opste opcije su u [options] delu. Procitajte man stranicu ili pogledajte u difoltu pacman.conf za informacije o tome sta sve mozete da podesite u njemu.
Preskakanje odredjenog paketa prilikom osvezavanja sistema(apgrejdovanja)
Da preskocite osvezavanje odredjenog paketa, zadajte to na sledeci nacin:
IgnorePkg=kernel26
Za vise paketa upotrebite prazan prostor.
Preskakanje grupe paketa prilikom osvezavanja sistema(apgrejdovanja)
Kao sa paketima, preskakanje cele grupe paketa je isto moguce:
IgnoreGroup=gnome
Repozitorijumi
Ovaj deo opisuje repozitorijume koje mozete da koristite, kao sto je naznaceno u pacman.conf. Mogu se zadati u tom fajlu direktno ili se uvesti (includovati ili sadrzati) iz drugog fajla.
Svi oficijalni repozitorijumi koriste isti /etc/pacman.d/mirrorlist fajl koji sadrzi varijablu, '$repo', sto je neophodno da se odrzi samo jedna lista.
Sledece je primer za oficijalne repozitorijume koji odlazu mirore u miror listu.
[core] # Add your preferred servers here, they will be used first Include=/etc/pacman.d/mirrorlist [extra] # Add your preferred servers here, they will be used first Include=/etc/pacman.d/mirrorlist [community] # Add your preferred servers here, they will be used first Include=/etc/pacman.d/mirrorlist
Upotreba
Da procitate druge primere u vezi mogucnosti pacman-a, pogledajte man pacman. Primeri ispod su samo mali uzorak operacija koje se mogu izvrsiti.
Instaliranje paketa
Da instalirate jedan paket ili listu paketa (ukljucujuci zavisnosti), izvrsite sledecu komandu:
# pacman -S ime_paketa1 ime_paketa2
Ponekad postoji vise verzija paketa u razlicitim repozitorijumima (npr. extra i testing). Zadajte koji zelite da instalirate:
# pacman -S extra/package_name # pacman -S testing/package_name
Uklanjanje paketa
Da uklonite jedan paket, ostavljajuci sve njegove zavisnosti instalirane:
# pacman -R ime_paketa
Da uklonite paket i sve njegove zavisnosti koje nisu neophodne od strane drugih instaliranih paketa:
# pacman -Rs ime_paketa
pacman cuva vazne konfiguracione fajlove kada uklanja odredjene aplikacije i imenuje ih sa ekstenzijom: .pacsave. Da obrisete ove bekapovane fajlove upotrebite -n opciju:
# pacman -Rn ime_paketa # pacman -Rns ime_paketa
Osvezavanje paketa
pacman moze da osvezi sve pakete na sistemu sa samo jednom komandom. To moze da potraje u zavisnosti od toga u koliko meri je Vas sistem neosvezen, tj. kada ste ga zadnji put osvezili. Ova komanda moze da sinhronizuje baze repozitorijuma i osvezi pakete sistema:
# pacman -Syu
pacman je mocni paket menadzer, ali ne pokusava da "ucini sve". Procitajte The Arch Way (Српски) ako Vas ovo zbunjuje. Pre svega, korisnici moraju biti na oprezu i preuzeti odgovornost za odrzavanje njihovih sistema. Kada obavljate osvezavanje sistema (pacman -Syu), naprimer, od kljucnog znacaja je da korisnik procita sav izlaz od pacman-a i koristi se zdravim razumom.
Umesto da odmah osvezi sistem cim su novi paketi dostupni, korisnik mora da shvati da jedno osvezenje za kriticni paket moze imati nepredvidjene posledice. Ovo znaci da nije pametno osveziti xorg-server ako on trenutno isporucuje vaznu prezentaciju, naprimer. Umesto toga, osvezite tokom slobodnog vremena i pripremite se za razresavanje eventualnih problema koji se mogu pojaviti prilikom samog procesa.
Sledece, posecivanje Arch Linux home stranicu se uvek preporucuje. Cesto kada osvezenja zahtevaju intervenciju korisnika, odgovarajuci post na https://archlinux.org ce se pojaviti. Obicno postoje i postovi na forumu koji opisuju isti problem i to ukratko nakon sto zakrpa postane dostupna preko mirora, detaljisuci resenje za taj problem.
Kada osvezite, obavezno procitajte poruke u izlazu pacman-a. Ljudi koji prave pakete obicno opisu promene i ocekivane probleme, i upucuju korisnike na odgovarajucu wiki stranicu ili izvor. Konacno, uvek procitajte sve informacije u izlazu pacman-a!
Izdavanje upita bazama paketa
pacman izdaje upite lokalnoj bazi paketa sa -Q zastavom; pogledajte:
$ pacman -Q --help
a upite za sinhronizaciju baza podataka sa -S zastavom; pogledajte:
$ pacman -S --help
pacman moze da izvrsi pretragu za paketima u bazama, pretrazujuci i imena paketa i opise paketa:
$ pacman -Ss paket
Da pretrazite za vec instaliranim paketima:
$ pacman -Qs package
Da prikazete detaljne informacije za dati paket:
$ pacman -Si paket
za lokalno instalirane pakete:
$ pacman -Qi package
Da biste preuzeli spisak datoteka instaliranih od strane paketa:
$ pacman -Ql package
Takodje mozete da pitate bazu kom paketu pripada odredjeni fajl u fajl sistemu:
$ pacman -Qo /staza/do/fajla
Da izlistate sve pakete koji nisu vise neophodni kao zavisnosti (sirocici):
$ pacman -Qdt
Dodatne komande
Preuzmite paket bez njegovog instaliranja:
# pacman -Sw paket
Instalirajte 'lokalni' paket koji nije iz repozitorijuma:
# pacman -U /staza/do/paketa/ime_paketa-verzija.pkg.tar.xz
Instalirajte 'udaljeni' paket (ne iz repozitorijuma):
# pacman -U http://www.primer.com/repo/primer.pkg.tar.xz
Ocistite kes paketa koji nisu trenutno instalirani (/var/cache/pacman/pkg):
# pacman -Sc
Ocistite ceo paket kes:
# pacman -Scc
Resavanje problema
Q: Zakrpa za paket XYZ je razbila moj sistem!
Najvazniji savet koji treba da zapamtite je da ne osvezavate vas sistem "slepo". Uvek procitajte listu paketa koji osvezavate. Proverite da li ce "kriticni" paketi biti osvezeni (kernel26, xorg-server, i tako dalje). Ako je to slucaj, obicno je dobra ideja da proverite vesti na https://archlinux.org i skenirate najskorije postove na forumu da vidite da li ostali korisnici imaju eventualne probleme kao rezultat osvezenja sistema.
Ako ocekujete/znate da ce zakrpa paketa uzrokovati probleme, ljudi koji obezbedjuju pakete ce obezbediti da pacman prikaze odgovarajucu poruku kada se paket osvezi. Ako imate probleme nakon osvezenja, proverite dva puta tekstualni izlaz pacman-a tako sto cete proveriti log u (/var/log/pacman.log).
U ovom momentu, samo nakon sto ste se uverili da nema informacija dostupnih preko pacman-a, ne postoje vesti u vezi problema na https://archlinux.org, i nema postova na forumu u vezi te zakrpe, mozete uzeti u obzir da zatrazite pomoc na forumu, preko IRC-a, ili unazadjivanje problematicnih paketa.
Ponovo procitajte zadnji paragraf.Q: Znam da je izbacena zakrpa za paket ABC, ali pacman kaze da je moj sistem tekuci(nema novih zakrpa)!
Q: Dobijam gresku prilikom osvezavanja: "fajl postoji u fajlsistemu"!
error: could not prepare transaction error: failed to commit transaction (conflicting files) package: /path/to/file exists in filesystem Errors occurred, no packages were upgraded.
Zasto se ovo desava: pacman je detektovao konflikt fajlova, i po dizajnu, nece prepisati fajlove za vas. Ovo je odlika dizajna, a ne mana.
Odgovornost je korisnika da odrzava svoj sistem, ne paket menadzera. (pacman -Qo se moze izvrsiti da proverite koji paket poseduje odredjeni fajl, ako postoji.)
pacman -Qo /staza/do/fajla). Ako drugi paket poseduje fajl, fajl bag izvestaj. Ako fajl nije u posedstvu drugog paketa, preimenujte fajl koji 'vec postoji u fajlsistemu' i ponovo izvrsite update komandu. Ako sve prodje kako treba, mozete ukloniti fajl.Q: Dobijam gresku kada instaliram paket: "not found in sync db"
pacman -Syy da forsirate osvezenje svih lista paketa.Q: pacman stalno osvezava isti paket!
/var/lib/pacman/local/, kao dve kernel26 instance. pacman -Qi daje izlaz sa ispravnom verzijom, ali pacman -Qu prepoznaje staru verziju i zbog toga ce pokusati da ga osvezi.
Solution: obrisite unos koji ometa proces /var/lib/pacman/local/.
Q: pacman puca tokom osvezavanja sistema!
- Startujte sa Arch live CD-om
- Nasadite vas root fajlsistem
- Osvezite pacman bazu sa
pacman -Syy - Reinstalirajte pokvareni paket sa
pacman -r /path/to/root -S package
Q: Instalirao sam softver sa make install; ovi fajlovi ne pripadaju ni jednom paketu!
--force prekidacem (pacman -S --force).
Pogledajte preuzimanje liste fajlova koje nisu u posedu ni jednog paketa za skriptu koja vrsi pretragu fajlsistema za fajlove koji nisu u posedu.