Gentoo Logo

Pastaba : Šis dokumentas negalioja ir nebėra daugiau palaikomas.


[ << ] [ < ] [ Pagrindinis ] [ > ] [ >> ]


3. „Portage“ funkcijos

Turinys:

3.a. „Portage“ funkcijos

„Portage“ turi keletą papildomų funkcijų, kurios gali palengvinti jūsų darbą su ja. Daugeliui šių funkcijų reikalinga tam tikra papildoma programinė įranga, kuri gali pagerinti sistemos saugumą, darbą, patikimumą ir t.t.

Naudojamos „Portage“ funkcijos yra nurodomos rinkmenos /etc/make.conf kintamuoju FEATURES, kuriam priskiriami įvairių funkcijų raktiniai žodžiai, atskirti tarpais. Keletu atveju taip pat reikia įdiegti papildomą programinę įrangą, kuri yra reikalinga konkrečiai funkcijai.

Čia yra išvardintos ne visos „Portage“ funkcijos. Norėdami pamatyti pilną jų apžvalgą, pasinaudokite make.conf žinyno puslapiu:

Kodo sąrašas 1.1: make.conf žinyno puslapis

$ man make.conf

Koks šiuo metu yra FEATURES kintamasis galite sužinoti įvykdę komandą emerge --info ir (patys arba komandos „grep“ pagalba) susiradę kintamąjį FEATURES:

Kodo sąrašas 1.2: Kintamojo FEATURES reikšmės sužinojimas

$ emerge --info | grep FEATURES

3.b. Paskirstytas kompiliavimas

distcc naudojimas

distcc yra programa, naudojama tinkle paskirstyti kompiliavimą keletui nebūtinai identiškų kompiuterių. distcc klientas siunčia visą reikalingą informaciją keletui pasiekiamų distcc serverių (vykdančių distccd) kad jie klientui kompiliuotų dalis išeities teksto. To rezultatas yra mažesnis kompiliavimo laikas.

Daugiau informacijos apie distcc (ir kaip naudotis juo „Gentoo“) galite surasti mūsų „Gentoo“ distcc dokumentacijoje.

distcc įdiegimas

Distcc turi grafinį monitorių, kuriuo galima stebėti, ką jūsų kompiuteris išsiunčia kompiliuoti. Jeigu jūs naudojate Gnome, įtraukite „gnome“ į savo USE kintamąjį. Jeigu jūs nenaudojate Gnome, bet vis tiek norite naudotis grafiniu monitoriumi, įtraukite „gtk“ į savo USE kintamąjį.

Kodo sąrašas 2.1: distcc įdiegimas

# emerge distcc

„Portage“ palaikymo aktyvavimas

Įtraukite distcc į FEATURES kintamąjį rinkmenoje /etc/make.conf. Toliau, pakeiskite MAKEOPTS kintamajį į jūsų norimą. Paplitęs patarimas yra naudoti reikšmę "-jX", kurh X yra skaičius procesorių, vykdančių distccd (įskaitant ir šį kompiuterį) plius vienas, bet jūs galite gauti geresnius rezultatus ir su kitokiais skaičiais.

Dabar įvykdykite distcc-config ir įveskite distcc serverių sąrašą. Pavyzdžiui, tarkime, kad prieinami DistCC serveriai yra 192.168.1.102 (šis kompiuteris), 192.168.1.103 ir 192.168.1.104 (du „nutolę“ kompiuteriai):

Kodo sąrašas 2.2: distcc konfigūravimas naudoti tris distcc serverius

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Taip pat nepamirškite paleisti distccd tarnybą:

Kodo sąrašas 2.3: distccd tarnybos paleidimas

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. Kompiliacijos padėjimas į podėlį

Apie ccache

ccache yra greitas kompiliatoriaus podėlis. Kai jūs kompiliuojate programą, į podėlį bus padedami tarpiniai rezultatai, ir kai jūs perkompiliuosite tą pačią programą, kompiliavimo laikas bus mažesnis. Dažniems kompiliavimams kompiliavimo laikas gali sumažėti 5 - 10 kartų.

Jeigu jums įdomūs ccache privalumai ir trūkumai, aplankykite ccache tinklalapį.

ccache įdiegimas

Kad įdiegtumėtę ccache, įvykdykite komandą emerge ccache:

Kodo sąrašas 3.1: ccache įdiegimas

# emerge ccache

„Portage“ palaikymo aktyvavimas

Atverkite rinkmeną /etc/make.conf ir įtraukite ccache į FEATURES kintamąjį. Toliau, pridėkite naują kintanąjį CCACHE_SIZE ir nustatykite jį lygų "2G":

Kodo sąrašas 3.2: Redaguojame CCACHE_SIZE rinkmenoje /etc/make.conf

CCACHE_SIZE="2G"

Kad patikrintumėtę ar ccache veikia, liepkite ccache pateikti jums savo statistiką. Kadangi „Portage“ naudoja kitą ccache namų katalogą, jums taip pat reikia nustatyti kintamąjį CCACHE_DIR:

Kodo sąrašas 3.3: ccache statistika

# CCACHE_DIR="/var/tmp/ccache" ccache -s

/var/tmp/ccache yra pagal nutylėjimą „Portage“ naudojamas ccache namų katalogas; jeigu jūs norite pakeisti šį nustatymą, jums reikia nustatyti kintamajį CCACHE_DIR rinkmenoje /etc/make.conf.

Tačiau jeigu jūs patys įvykdysite komandą ccache, bus naudojamas namų katalogas pagal nutylėjimą - ${HOME}/.ccache, todėl jums reikia nurodyti CCACHE_DIR kintamąjį prieš peržiūrint („Portage“) ccache statistiką.

ccache naudojimas ne „Portage“ C kompiliavimui

Jeigu jūs norite naudoti ccache ne „Portage“ kompiliavimams, pridėtikte /usr/lib/ccache/bin į jūsų PATH kintamojo pradžią (prieš /usr/bin). Tai įvykdyti galima pakeičiant rinkmeną .bash_profile jūsų naudotojo namų kataloge. .bash_profile naudojimas yra vienas būdas apibrėžti PATH kintamuosius.

Kodo sąrašas 3.4: Pakeičiame .bash_profile

PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"

3.d. Dvejetainių paketų palaikymas

Iš anksto sukompiliuotų paketų kūrimas

„Portage“ palaiko iš anksto sukompiliuotų paketų įdiegimą. Nors pats „Gentoo“ ir netiekia iš anksto sukompiliuotų paketų (išskyrus GRP snapshots) „Portage“ gali pilnai jais naudotis.

Iš anksto sukompiliuotam paketui sukurti galite naudoti quickpkg, jeigu paketas jau yra įdiegtas jūsų sistemoje, arba įvykdykite komandą emerge su --buildpkg ar --buildpkgonly parametru.

Jeigu norite, kad Portage sukurtų iš anksto sukompiliuotą paketą kiekvieną kartą jums ką nors įdiegiant, įrašykite buildpkg į FEATURES kintamąjį.

Platesnis iš anksto sukompiliuotų paketų kūrimo palaikymas gali būti pasiektas su catalyst. Norėdami daugiau sužinoti apie catalyst, paskaitykite Catalyst dažniausiai užduodamus klausimus.

Iš anksto sukompiliuotų paketų įdiegimas

Nors pats „Gentoo“ ir nepateikia centrinės iš anksto sukompiliuotų paketų saugyklos, jūs galite ją susikurti. Jeigu norite ja naudotis, praneškite apie tai „Portage“, kintamuoju PORTAGE_BINHOST nurodydami šią saugyklą. Pavyzdžiui, jeigu iš anksto sukompiliuotų paketų saugykla yra ftp://buildhost/gentoo:

Kodo sąrašas 4.1: Nustatome PORTAGE_BINHOST rinkmenoje /etc/make.conf

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Kai jūs norite įdiegti iš anksto sukompiliuotą paketą, pridėkite parametrą --getbinpkg emerge komandai kartu su parametru --usepkg. Pirmasis nurodo emerge parsiųsti iš anksto sukompiliuotą paketą iš anksčiau apibrėžto serverio, o antrasis prašo emerge pabandyti įdiegtį iš anksto sukompiliuotą paketą prieš parsiunčiant išeities tekstus ir juos kompiliuojant.

Pavyzdžiui, gnumeric įdiegimas iš iš anksto sukompiliuotų paketų:

Kodo sąrašas 4.2: gnumeric iš anksto sukompiliuotų paketų įdiegimas

# emerge --usepkg --getbinpkg gnumeric

Daugiau informacijos apie emerge iš anksto sukompiliuotų paketų parinktis galima rasti emerge žinyno puslapyje:

Kodo sąrašas 4.3: emerge žinyno puslapis

$ man emerge

3.e. Rinkmenų gavimas

Lygiagretus gavimas

Kai jūs diegiate eilę paketų, „Portage“ gali gauti pirminius tekstus kitai programai sąraše netgi kol ji kompiliuoja visai kitą paketą, taip sumažinant kompiliavimų laikus. Norėdami naudoti šį sugebėjimą, pridėkite „parallel-fetch“ į savo FEATURES.

Userfetch

Kai „Portage“ vykdoma pagrindinio (root) naudotojo teisėmis, FEATURES="userfetch" leis „Portage“ sumažinti teises gaunant paketų pirminius tekstus. Tai yra nedidelis saugumo pagerinimas.


[ << ] [ < ] [ Pagrindinis ] [ > ] [ >> ]


Spausdinti

Žiūrėti visą

Atnaujinta 2008 liepos 7

Šio dokumento originalas paskutinį kartą buvo atnaujintas 2013 vasario 9

Santrauka: Atraskite tokias „Portage“ funkcijas, kaip paskirstyto kompiliavimo palaikymas, ccache ir daugiau.

Sven Vermeulen
Autorius

Grant Goodyear
Autorius

Roy Marples
Autorius

Daniel Robbins
Autorius

Chris Houser
Autorius

Jerry Alexandratos
Autorius

Seemant Kulleen
„Gentoo“ x86 Plėtotojas

Tavis Ormandy
„Gentoo“ Alpha Plėtotojas

Jason Huebel
„Gentoo“ AMD64 Plėtotojas

Guy Martin
„Gentoo“ HPPA Plėtotojas

Pieter Van den Abeele
„Gentoo“ PPC Plėtotojas

Joe Kallar
„Gentoo“ SPARC Plėtotojas

John P. Davis
Redaktorius

Pierre-Henri Jondot
Redaktorius

Eric Stockbridge
Redaktorius

Rajiv Manglani
Redaktorius

Jungmin Seo
Redaktorius

Stoyan Zhekov
Redaktorius

Jared Hudson
Redaktorius

Colin Morey
Redaktorius

Jorge Paulo
Redaktorius

Carl Anderson
Redaktorius

Jon Portnoy
Redaktorius

Zack Gilburd
Redaktorius

Jack Morgan
Redaktorius

Benny Chuang
Redaktorius

Erwin
Redaktorius

Joshua Kinard
Redaktorius

Tobias Scherbaum
Redaktorius

Xavier Neys
Redaktorius

Joshua Saddler
Redaktorius

Gerald J. Normandin Jr.
Apžvalgininkas

Donnie Berkholz
Apžvalgininkas

Ken Nowack
Apžvalgininkas

Lars Weiler
Pagalbininkas

Ernestas Liubarskij
Vertėjas

Elvinas Piliponis
Vertėjas

Mantas Povilaitis
Vertėjas

Donatas Puidokas
Vertėjas

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.