pacman (Српски)
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
[testing]
repozitorijum. On je u aktivnom razvoju i osvezavanje sistema preko njega moze prouzrokovati prestanak rada nekih paketa. Ljudima koji koriste [testing]
repozitorijum se preporucuje da se prijave na arch-dev-public mejling lista za tekuce informacije.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
pacman -Sy ime_paketa
); ovo moze uzrokovati probleme sa zavisnostima. [1] Osvezavanje prvo eksplicitno; pre instaliranja novih paketa.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
.dot
fajlove u home direktorijumu).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!
/var/log/pacman.log
.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
Zakrpa za paket XYZ je razbila moj sistem!
Arch Linux je rolling-release distribucija koja je stalno aktuelna. Zakrpe za pakete su dostupne cim se proglase za dovoljno stabilnim za generalnu upotrebu. Kako god, zakrpe ponekad mogu da zahtevaju intervenciju korisnika: konfiguracioni fajlovi mozda moraju da se osveze, opcione zavisnosti se mogu promeniti, itd.
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.
Znam da je izbacena zakrpa za paket ABC, ali pacman kaze da je moj sistem tekuci(nema novih zakrpa)!
pacman mirori nisu sinhronizovani odmah. Ponekad je neophodno preko 24 casa pre nego sto zakrpa postane dostupna na vasem miroru.
Jedina opcija je da budete strpljivi ili da koristite drugi miror. Stanje mirora moze da vam pomogne da odredite miror koji je aktuelan.
Dobijam gresku prilikom osvezavanja: "fajl postoji u fajlsistemu"!
ASIDE: Preuzeto sa https://bbs.archlinux.org/viewtopic.php?id=56373 by Misfit138.
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.)
Problem je obicno trivijalne prirode. Bezbedan nacin je da prvo proverite da li drugi paket poseduje fajl (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.
Dobijam gresku kada instaliram paket: "not found in sync db"
Prvo, proverite da li paket uopste postoji (i obratite paznju na greske u kucanju!). Ako ste sigurni da paket postoji, vasa lista paketa je mozda neaktuelna ili vasi repozitorijumi mogu biti nepravilno podeseni. Pokusajte sa pacman -Syy
da forsirate osvezenje svih lista paketa.
pacman stalno osvezava isti paket!
Ovo se desava zbog duplog unosa u /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/
.
pacman puca tokom osvezavanja sistema!
U slucaju da pacman puca sa "database error" greskom dok uklanjate pakete, i reinstaliranje ili osvezavanje paketa se ne obavlja uspesno:
- 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
Instalirao sam softver sa make install
; ovi fajlovi ne pripadaju ni jednom paketu!
Ako dobijate "conflicting files" gresku, imajte na umu da ce pacman prepisati rucno instalirani softver ako zadate komandu sa --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.
pacman je potpuno slomljen! Kako da ga instaliram?
U slucaju da je pacman slomljen bez mogucnosti da se popravi, rucno preuzmite i napravite neophodne pakete (openssl, libarchive, libfetch i pacman) i otpakujte ih u root. Pacman binarni kod ce biti obnovljen zajedno sa svojim difolt konfiguracionim fajlom. Nakon toga, reinstalirajte ove pakete sa pacman-om da odrzite integritet baze paketa. Dodatne informacije i primer (zastarele) skripte koja automatizuje proces je dostupna u ovom forum postu.