POČETNA

CRO DOKUMENTACIJA
O ARCH-U


Sadržaj treće stranice:


Paketni mehanizam

Pacman

    pacman je paketni upravitelj koji prati sav softver instaliran na vašem sustavu. Ima jednostavnu podršku za međuovisnosti paketa i koristi standardni tar-gz format arhiviranja za sve pakete. Neke uobičajne zadaće su objašnjene u narednim retcima s odgovarajućim naredbama i njihovim opcijama. Za više informacija pročitajte man pacmanOvo vam može poslužiti kao uvod u njegove mogućnosti.

Tipične radnje:

Dodavanje novog paketa s paketnom datotekom

# pacman --add foo.pkg.tar.gz
# pacman -A foo.pkg.tar.gz

Ovo će instalirati foo.pkg.tar.gz paket na vaš sustav. Ako nedostaju neki paketi potrebni za instalaciju ovog paketa, pacman će izaći iz procedure s pogreškom i javiti što nedostaje, ali neće automatski pokušati instalirati što nedostaje. Pogledajte --sync opciju ako očekujete ovu mogućnost.

Nadogradnja paketa s paketnom datotekom

# pacman --upgrade foo.pkg.tar.gz
# pacman -U foo.pkg.tar.gz

Ovo radi uglavnom što i --add operacija, ali će dodatno nadograditi već instaliran paket.

Uklanjanje paketa

# pacman --remove foo
# pacman -R foo

Ovo će ukloniti sve datoteke koje pripadaju paketu imena foo, osim konfiguracijskih datoteka koje su bile uređivane. Ovoj naredbi dodajte samo ime paketa, bez pkg.tar.gz sufiksa.

Kako bi obrisali sve tragove paketa, dodajte --nosave opciju ovoj naredbi.

Osvježavanje liste paketa

# pacman --sync --refresh
# pacman -Sy

Ovo će dohvatiti svježu listu glavnih paketa iz repozitorija definiranih u /etc/pacman.conf datoteci i dekompresirati ju u područje baza podataka. Trebali bi koristiti ovo prije --sysupgrade kako bi bili sigurni da ćete dobiti najnovije pakete. Ovisno o vašim pacman.conf postavkama, ova naredba može trebati radnu internet vezu kako bi pristupila FTP-baziranim repozitorijima. Ova opcija je vrlo slična Debian-voj apt-get update naredbi.

Nadogradnja sustava

# pacman --sync --sysupgrade
# pacman -Su

Ova naredba će nadograditi sve pakete koji su stariji u usporedbi sa određenim repozitorijem. Dobra je ideja pokrenuti ovu naredbu s vremena na vrijeme kako bi vaš sustav ostao svjež. Zapamtite da ova naredba NE ne osvježava implicitno glavnu listu paketa, pa je mudrije koristiti ove naredbe zajedno:

# pacman --sync --refresh --sysupgrade
# pacman -Syu

S ovim opcijama pacman će automatski primiti trenutnu listu glavnih paketa i napraviti punu nadogradnju sustava sa svim međuovisnostima automatski rješenima.

Dodavanje/nadogradnja paketa iz repozitorija

# pacman --sync foo
# pacman -S foo

Dobavlja i instalira paket foo, zajedno sa svim međuovisnostima koje zahtjeva. Prije korištenja sync opcije, budite sigurni da ste osvježili listu paketa, ili dodajte --refresh ili -y opciju prije nego pokušate instalirati paket. Naspram --add opcije, --sync opcija ne razlikuje instalaciju i nadogradnju paketa. Ovisno o vašim pacman.conf postavkama ova funkcija traži radnu internet vezu.

Lista instaliranih paketa

# pacman --query
# pacman -Q

Prikazuje listu svih instaliranih paketa na vašem sustavu.

Provjeravanje je li određeni paket instaliran

# pacman --query foo
# pacman -Q foo

Umjesto da izlistavate punu listu ako tražite jedan paket, možete dodati ime paketa koji tražite query naredbi. Ova naredba će prikazati ime i verziju foo paketa ako je instaliran, inače ništa.

Prikazivanje određenog paketnog info-a

# pacman --query --info foo
# pacman -Qi foo

Prikazuje informacije o instaliranom paketu foo (veličinu, datum instalacije, datum izgradnje, ovisnosti, konflikte, itd.). Kako bi prikazali informacije o paketu koji još nije instaliran, dodajte --file ili -p opciju:

# pacman --query --info --file foo.pkg.tar.gz
# pacman -Qip foo.pkg.tar.gz

Prikazivanje liste datoteka koje sadrži paket

# pacman --query --list foo
# pacman -Ql foo

Prikazuje sve datoteke koje pripadaju paketu foo.

Pronalaženje kojem paketu pripada određena datoteka

# pacman --query --owns /path/to/file
# pacman -Qo /path/to/file

Ovo prikazuje ime i verziju paketa koji sadrži datoteke referencirane sa punom putanjom kao parametrom.

Pristup repozitorijima

    Paketni repozitorij je kolekcija paketa i meta-info datoteka paketa koji mogu biti u lokalnom direktoriju ili na udaljenom FTP/HTTP serveru. Standardni repozitorij za Arch sustav je current repozitorij. To drži Arch svježim sa zadnjim verzijama većine software-a.

Mnogi korisnici također odabiru i extra paketni repozitorij koji sadrži više paketa koji nisu dio baznog paketa Arch-a. Možete aktivirati ovaj repozitorij ako odkomentirate odgovarajuću liniju u datoteci /etc/pacman.conf. Ovaj repozitorij je standardno odmah aktivan.

Također možete izgraditi, održavati i koristiti vaše vlastite paketne repozitorije. Pogledajte pacman man stranicu za više instrukcija.

Ako instalirate sa CD-a i ne možete na Internet, možda ćete trebati instalirati neke dodatne pakete sa CD-a. Možete locirati pakete na cd-u i instalirati ih ručno koristeći pacman -A packagename.pkg.tar.gz Alternativno, možete trenutno postaviti lokalni repozitorij kako bi pristupili CD-u. Montirajte CD na /mnt/cd koristeći naredbu mount /mnt/cd (cd ako je tako prema datoteci fstab). Zatim dodajte sljedeće linije vašoj /etc/pacman.conf datoteci:

[cd]
Server = file:///mnt/cd/arch/pkg


Arch Build System (ABS)

Binary vs. izvorno (izvorni kod)

    pacman je odgovoran za binarnu stranu svijeta paketa, a ABS je odgovoran za source stranu: on vam pomaže izgraditi vaše vlastite pakete iz izvornog (source) koda, te vam također dopušta re-izgradnju Arch Linux paketa s vašim vlastitim podešavanjima. Procedura je obično sljedeća:

  1. Sinkronizirajte vaše ABS stablo sa serverom (pokrenite abs kao root korisnik)
  2. Kreirajte novi direktorij u /var/abs/local/ imenovan nakon paketa kojeg krećete kreirati
  3. Kopirajte PKGBUILD.proto prototip iz /var/abs/ u vaš novokreiran direktorij, uklonite proto, sufiks i uredite ga za novi paket.
  4. Pokrenite makepkg u radnom direktoriju sa PKGBUILD datotekom.
  5. Instalirajte novoizgrađen paket sa pacman naredbom.
  6. Pošaljite paket vašim prijateljima kako bi zadobili prava (ili ga dajte Archeru kako bi ga on/a mogla postaviti u glavno ABS stablo).

Sinkronizacija vašeg ABS stabla

    Možete sinkronizirati sve PKGBUILD datoteke u /var/abs ako pokrenete abs skriptu kao root. To zahtijeva cvsup paket kako bi radilo i "žaliti" će se ako ga nemate instaliranog. Korištenje CVS-a kao transfer medija vam dopušta praćenje različitih verzija stabala unutar ABS-a - ovo možete podesiti u /etc/abs/supfile.archStandardno stablo je current.

ABS podržava višestruke repozitorije, koji mogu biti omogućeni/onemogućeni u /etc/abs/abs.conf. Standardno abs prati current i extra repozitorije, ali ne unstable.

Također ćete vidjeti /etc/abs/supfile.extra datoteku. To će vam dati pristup svim neslužbenim build skriptama koje nisu uključene u glavni ABS repozitorij. Ako ne želite koristiti ovaj repozitorij, možete obrisati datoteku, ali obično ima više smisla urediti abs.conf.

Kako napraviti paket

    Proces izgradnje je podrobnije objašnjen kroz makepkg man stranicu. Pogledajte ju za instrukcije izgradnje vaših vlastitih paketa. Ako vam to ne pomogne, pogledajte vodiče na Wiki stranici ili pitajte za pomoć na forumima ili IRC-u.

Paketni vodič

    Kada gradite paket za Arch Linux,  posebno ako želite doprinjeti Arch Linux-u, držite se sljedećih pravila:

Imenovanje paketa

  • Ime paketa se treba sastojati jedino od alfanumeričkih znakova; sva slova trebaju biti mala.
  • Verzija paketa treba biti ista kao i verzija samog autora paketa. Verzije mogu sadržavati slova ako treba (npr, nmap verzija je 2.54BETA32). Tagovi verzija smiju sadržavati samo slova, brojeve i periode.
  • Izdanja paketa su specifična Arch Linux paketima. Ovo omogućava korisnicima razlikovanje između novije i starije izgradnje paketa. Kada je nova verzija paketa prvi put izdana, brojač izdanja počinje sa 1. Tada, kako se pojavljuju popravci i optimizacije, paket će biti re-izdan AL publici i broj izdanja će se povećati. Kada izađe nova verzija, brojač izdanja se vraća na 1. Tagovi izdanja paketa slijede ista pravila imenovanja kao i tagovi verzija.

Direktoriji

    Konfiguracijske datoteke trebaju biti u /etc direktoriju. Ako ima više konfiguracijskih datoteka, treba se koristiti poddirektorij kako bi održali /etc područje čistim. Koritite /etc/{pkgime}/ gdje {pkgime} označava ime vašeg paketa (ili pogodnije rješenje, npr. apache koristi /etc/httpd/).

Datoteke paketa trebaju pratiti ove generalne upute u vezi direktorija:

/etc Sustavske važne konfiguracijske datoteke
/usr/bin Binarne datoteke aplikacije
/usr/sbin Sustavske binarne datoteke
/usr/lib Biblioteke
/usr/include Header datoteke
/usr/lib/{pkg} Moduli i slično
/usr/man Man stranice
/usr/share/{pkg} Podaci aplikacije
/etc/{pkg} Konfiguracijske datoteke za {pkg}
/opt

Paketi koji se potpuno ne uklapaju u Linux-ov izgled datotečnog sustava mogu biti ovdje smješteni.

Npr., acrobat paket ima Browser, Reader i Resource direktorije na istoj razini kao i bin direktorij. To se ne uklapa u normalni izgled Linux datotečnog sustava, pa smještamo sve poddirektorije u /opt.

Jasno?! Fino.

makepkg zadaće

    Kada koristite makepkg kako bi izgradili paket za sebe, on radi sljedeće automatski:

  1. Provjerava jesu li instalirani svi paketi o kojima vaš paket ovisi
  2. Doprema datoteke sa izvornim kodom sa servera
  3. Raspakira datoteke sa izvornim kodom
  4. Napravi sve potrebne popravke
  5. Izgradi software i instalira ga kao fake root
  6. Uklanja /usr/doc, /usr/info, /usr/share/doc i /usr/share/info iz paketa
  7. Povlači simbole iz binarnih datoteka
  8. Povlači debugging simbole iz biblioteka
  9. Generira meta datoteke paketa koje su uključene sa svim paketima
  10. Kompresira fake root-a u datoteku paketa
  11. Pohranjuje datoteku paketa u konfigurirani destinacijski direktorij

Ostalo

    Nemojte dodavati nove varijable u vašu PKGBUILD skriptu za izgradnju paketa, jedino ako to nije nužno potrebno, budući da ovo može stvoriti konflikte sa varijablama korištenima u makepkg-u.

Izbjegavajte koristiti /usr/libexec/ za bilo što. Radije koristite /usr/lib/{pkg}.

Packager polje iz meta datoteke paketa može biti prilagođeno onome koji gradi paket modificiranjem pripadajuće opcije u /etc/makepkg.conf datoteci ili alternativno eksportiranjem PACKAGER varijable okruženja prije izgradnje paketa sa makepkg:

# export PACKAGER="John Doe <your.email>"

Prijava paketa

    Ako želite prijaviti pakete, pogledajte Arch User Repozitorij (AUR) i njegove upute. Novi paketi trebaju biti prijavljeni AUR-u.

Ako prijavljujete paket direktno Arch developerima, tražimo sljedeće:

  1. Dodajte liniju komentara na vrh vaše PKGBUILD datoteke koja slijedi ovaj format:
    # Contributor: Your Name <your.email>
  2. Provjerite (među)ovisnosti paketa (npr. pokrenite ldd na dinamičkim izvršnim datotekama, provjerite alate koji su potrebni skriptama, itd.). Također je dobra ideja koristiti namcap program, koji je napisao Jason Chu , za analizu vašeg paketa. namcap će vam reći o lošim dopuštenjima, međuovisnostima koje nisu zadovoljene i ostalim uobičajnim pogreškama. Možete instalirati namcap paket sa pacman-om.
  3. Svi paketi trebaju dolaziti kao kompresirane tar datoteke koje sadržavaju datoteke paketaPKGBUILD, filelist i dodatne datoteke unutar te tar datoteke. Ime arhive treba barem sadržavati ime paketa.
  4. Pogledajte objave koje prate prijave paketa, budući da su nove implementacije cijele procedure trenutno tema rasprave mnogih developera. Ako mislite da je vaš paket prevažan kako bi čekao, možete naravno pitati Trusted Usera hoće li uključiti vaš paket u svoj repozitorij.

Prethodno
Konfiguracija sustava


Napravio Boljsa s Mozilla-composerom; 2006.