# pacman (Српски)

Related articles

- Unazadjivanje paketa
- Unapredjivanje pacman performansi
- pacman frontendovi sa GUI-jem
- pacman Rosetta
- pacman saveti

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

Note: Treba biti na oprezu kada koristite `[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

Note: Nemojte da osvezavate listu paketa kada instalirate paket (npr. `pacman -Sy ime_paketa`); ovo moze uzrokovati probleme sa zavisnostima. [1] Osvezavanje[broken link: invalid section] 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

Note: pacman nece ukloniti podesavanja koje sama aplikacija kreira (naprimer `.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

Note: Kao rolling-release distribucija, osvezavanje Vaseg Arch Linux sistema nije uvek jednostavno kao sa drugim distribucijama koje imaju fiksna izdanja. Pored toga, pacman nije "upali-i-zaboravi" paket menadzer. Kao rezultat toga, ispravno odrzavanje Arch Linux sistema sa pacman-om tezi da zbuni nove korsnike (kao sto i povremene diskusije na forumu ukazuju). Molim Vas procitajte sledecu sekciju temeljno pre nego sto nastavite.

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!

Tip: Zapamtite da se pacman-ov izlaz loguje u `/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:

Warning: Uradite ovo samo kad ste sigurni da unazadjivanje paketa nece biti neophodno, jer pacman -Scc uklanja "sve" pakete iz kesa.

    # 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/`.

Note: pacman verzija 3.4 bi trebalo da prikaze gresku u slucaju duplih unosa, sto bi trebalo da ucini ovu napomenu suvisnom.

### 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:

1. Startujte sa Arch live CD-om
2. Nasadite vas root fajlsistem
3. Osvezite pacman bazu sa `pacman -Syy`
4. 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.

## Izvori

- libalpm(3) Manual Page
- pacman(8) Manual Page
- pacman.conf(5) Manual Page
- repo-add(8) Manual Page

Categories:

- Package management (Српски)
- Utilities (Српски)

Hidden category:

- Pages with broken section links