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
pacman . Ovo 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:
- Sinkronizirajte vaše ABS stablo sa serverom (pokrenite
abs kao root korisnik)
- Kreirajte novi direktorij u
/var/abs/local/ imenovan nakon paketa kojeg krećete kreirati
- Kopirajte
PKGBUILD.proto
prototip iz /var/abs/ u vaš novokreiran direktorij, uklonite proto, sufiks i uredite ga za novi paket.
- Pokrenite
makepkg u radnom
direktoriju sa PKGBUILD datotekom.
- Instalirajte novoizgrađen paket sa
pacman naredbom.
- 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.arch . Standardno 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:
- Provjerava jesu li instalirani svi paketi o kojima vaš paket ovisi
- Doprema datoteke sa izvornim kodom sa servera
- Raspakira datoteke sa izvornim kodom
- Napravi sve potrebne popravke
- Izgradi software i
instalira ga kao fake root
- Uklanja
/usr/doc ,
/usr/info , /usr/share/doc i /usr/share/info iz paketa
- Povlači simbole iz binarnih datoteka
- Povlači debugging simbole iz biblioteka
- Generira meta datoteke paketa koje su uključene sa svim paketima
- Kompresira fake root-a u datoteku paketa
- 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:
- Dodajte liniju komentara na vrh vaše
PKGBUILD datoteke koja slijedi ovaj format:
# Contributor: Your Name <your.email>
- 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 jason@archlinux.org, 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 .
- Svi paketi trebaju dolaziti kao kompresirane
tar datoteke koje sadržavaju datoteke paketa,
PKGBUILD , filelist i dodatne datoteke unutar te tar datoteke. Ime arhive treba barem sadržavati ime paketa.
- 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.
|