Necete pozalit sa gentoo ako ga dobro slozite, pa cu napomenuti bitne stvari.
Vec sam rekao, kernel je prva bitna stvar i najbolje vam je instalirati ck-sources sa "experimental" use flagom i dobro uprljat ruke u konfiguraciji. zatim ako ne idete iz stage 1 (sto preporucam da idete kako biste kasnije bolje razumjeli sto radite) onda barem rekompajlirajte 47 baznih paketa sustava koje skinete u stage 3 (drugih benefita stage1 instalacija nema), odmah na pocetku cim podesite konfiguraciju.
Pazite jako na make.conf file, gentoo ima desetak i vise konfiguracijskih fileova ali make.conf je najbitnija i najkriticnija.
CFLAGS i CXXFLAGS Vidjao sam svasta. Osim
-march i
-O2 NEMOJTE nista drugo stavljati jer cete unistit svoj gentoo,
-pipe samo ubrza multiprocese kod kompajlianja. Sve ostalo izbjegavajte u
CFLAGS, pogotovo
-O3 koji ubrzava neke aplikacije ali koristiti ga globalno za cijeli sustav znaci usporiti sustav do bola... jer taj flag dodaje mnogo optimizacijskih kodova aplikacijama s namjerom da ih ubrza i neke specificne mogu proci s tim flagom ali taj flag ce vam cijeli sustav povecati za par gigabajta i usporiti totalno. Nema veze sa procesorom, cak i da imate i9 ..drzite se
-O2.
Neki cesto stavljaju i
-fomit-frame-pointer ili neke druge opcije koje same po sebi kao i ona vec spadaju u
-O2...
USE, druga najbitnija linija u tom file-u, Izbjegavajte je totalno,. Kao sto vidite kod mene, samo sam stavio flagove za koje sam siguran da nista u sustavu nece trebati, samo sam podrzao jedan flag
minimal. Ovdje nista ne valja podrzati..cak i ako koristite
gnome, nemojte dodati
gnome flag tu jer ce vam ~50 retardiranih dependencija koji samo sluze necem drugom, izgraditi podrsku za
gnome pa ti depovi povuci jos novih dependecya.
U Linuxu svasta podrzava svasta...
Use flagovi se konfiguiraju u drugom konfiguracijskom file-u, za svaki paket posebno tako da neki depovi ne izgrade neku podrsku koju treba samo tek pokoja aplikacija.
Nemojte koristiti
bindist flag
nikad i nigdje a kamoli ovdje u globalnoj datoteci. Cak i ako vas emerge trazi za neku aplikaciju da stavite
bindist kako biste je mogli instalirati, ne radite to.
Npr ako instalirate
wpa_supplicant prije instalacije
openssl, emerge ce zahtijevati
bindist flag
wpa_supplicant aplikaciji i ako to ucinite, na prvom apdejtu kasnije nakon sto instalirate
openssl i sve njegove depove koji ce zbog
bindist wpa_suplicantu traziti
bindist za sebe.., dobit cete slot konflikte koje ce biti zeznuto rijesit i necete moc apdejtat dok ih ne rijesite i na kraju cete sve
bindistove morat za svaku
aplikaciju maknut i rekompajlirat ih nekim specificnim redom, kojeg ce biti tesko determinirati, da ne dodje u konflikt sa drugom aplikacijom koja hoce
bindist. Npr vise necete moci rekompajlirati
wpa-supplicant sa
bindist jer ce
openssl biti kompjliran sa
bindist... pa ce vas apdejt traziti da vratite
bindist za
wpa_supplicant a ako to ucinite, opet ce vas traziti da maknete
bindist wpa_supplicantu kako biste mogli updejtat
nesto trece iz tog zacaranog kruga u koji cete se zapetljat ako lokalno podrzite
bindist za
nesto, a ako podrzite globalno
za sve, nece bit konflikta ali cete imati ne ubuntu nego live cd kali na pentiumu 1.. to je samo za developere koji rade crosscompile binary..
I nemojte stavljati
ACCEPT_LICENSE="amd64" ovdje jer to podrzava cijeli sustav, a treba samo rijetkim aplikacijama kojima cete to dati u /etc/portage/package.accept.license (npr "media-libs/aplikacija ~amd64) nakon sto vas emerge obavijesti o tome.
Ako to stavite globalno i glibc, bc, gcc vam se izgrade s tom podrskom... za neko vrijeme, na nekom apdejtu, cete moci samo gentoo obrisati i ici ispocetka..
Cesto na freenode dodju korisnici s problemima koji nikom nisu jasni dok ne postaju make.conf datoteku pa u njoj bude amd64 licensa... tad im se kaze: uzmi live cd i formatiraj...
ovdje...
pr,
simplescreenrecorder treba
pulseaudio da bi uhvatio zvuk tokom snimanja desktopa i
pulseaudio flag povlaci
alsa-plugins paket koji sadrzi
pulseaudio.
Sta bi se desilo da sam stavio
pulseaudio u make.conf ? Pri prvom apdejtu bi se jedno 100 aplikacija rekompjaliralo sa
pulseaudio podrskom... to je los primjer ali je primjer
Bolji primjer je instalacija
xorg-server koji povlaci oko 70 dependencija ako ga instaliramo na svijezi bazni sustav...
neki
flag koji treba
xorg serveru, mozda ce tako biti
podrzan i za par dependecy-a koje server povlaci a njma ne treba i tu je problem jer taj
flag na tim dependency aplikacijama ce povuci njihove
dependency i to vise nece biti xorg sa 70 dependency aplikacija nego cijeli cuspajz od 150 aplikacija od kojih nam pola njih ne treba.
Use flags ne samo da grade podrsku u pojedinoj aplikaciji vec i povlace nove dependency-e i treba jako pazit s njima.
Dobar primjer na slici je i
nano. Bez "
minimal" flaga u make.conf, svasta ce se instalirat ali ako stavimo taj flag, neke aplikacije ce ostat osakacene, npr
nano nece izgraditi highlight podrsku, zato sam ovdje nano aplikaciji maknuo flag
minimal koji mi je globalno
podrzan. Takodjer, trebalo ga je maknuti i
xorgu da bi isti mogao instalirati
xorg-drivere (evdev za tipkovnicu i mis i video za grafiku)
evo primjer instalacije.
(terminal 2) hocemo aplikaciju (xorg server vec imam, pa za pr
audacity)
dodat cemo
-a (ask) i potvrditi sa
n.
zatim cemo provjeriti flagove sa
equery u (terminal 1) . Equery je dio
gentoolkita (kojeg treba instalirati odmah na pocetku)... ne pise sve u handbooku.
- Kod: Označi sve
equery u audacity
equery u ce nam pokazati sve flagove koje
audacity ima i sta koji flag znaci.
u konkretnom slucaju ja sam komandom
- Kod: Označi sve
( echo "media-sound/audacity -flac -midi"; echo "media-libs/libsoundtouch -openmp ) >> /etc/portage.package.use
maknuo
flac i
midi podrske za
audaciti i
openmp podrsku za
libsoundtouch u file-u
/etc/portage/package.use (sa predhodne slike u postu), da sam to ucinio u
make.conf, kasnije bi mi se
music player instalirao bez
flac podrske...
ali sam odlicio aplikaciju
libsoundtouch kompajlirati sa
-O3, ali nisam taj -O3 stavio u
make.conf jer bi se i aplikacija
audacity kompajlirala sa
-O3, buduci da se instaliraju skupa...
pa sam u terminalu 3 na slici napravio
speed file, ili kako god ga nazvao, u direktoriju
/etc/portage/env, koji ne postoji i treba ga predhodno napraviti, i u tom
fileu sam dodao
- Kod: Označi sve
CFLAGS="${CFLAGS}
(sto znaci "citaj cflags iz make.conf" plus dodaj
- Kod: Označi sve
-O3"
,
time ce emerge citati
make.conf-ov flag
-march ali ce
-O2 zamjeniti sa ovim iz
speed file-a u
env direktoriju
ali moramo to emerge narediti u terminalu 4
u kojem sam napravio file
package.env u
/etc/portage direktoriju (istom gdje je i direktorij
/env gdje je
speedU tom
pakage.env fileu sam reko poretage-u da cita
speed datoteku za aplikaciju
libsoundtouch..
Cisto za primjer ako zelimo
audacity optimizirati sa
-Os, reci cemo portage da cita datoteku
size, ili kako vec je nazvali, u kojoj cemo napraviti isto samo umjesto
-O3 staviti
-Os, a sve ostale aplikacije koje
audacity povlaci ce se optimizirati sa
-O2 citajuci glavnu
make.conf datoteku.
Na taj nacin cemo instalirati gentoo; provjeriti sve
useflagove za svaku aplikaciju sa
- Kod: Označi sve
equery
i koristiti ih posebno za svaku aplikaciju.
i po potrebi mijenjati cflagove u
/env sa
package.env file-om
Jos jedna bitna datoteka jest
/var/lib/portage/world(desni terminal) uz nju cemo odrzavati sustav..
U njoj su sve userland aplikacije, kad zelimo nesto obrisati, komentirat cemo to u ovoj datoteci i zatim pokrenuti
- Kod: Označi sve
emerge -a --depclean
obavezno
-a (ask), tad ce portage ucitati sve deselektirano iz te datoteke i razmisliti koji vam
dependency mozda vise nece trebati i obrisati sve... ali cesto ce se desiti da selektira dependency koji vam treba nekoj drugoj
aplikaciji. zato stavljamo -a i potvrdjujemo sa n, nakon cega idemo istraziti dependency-e koje zeli obrisati za nas:
emerge -ca (-c = -depclean, -a = ask) desna slika, to ce nam izlisatiti sve sto emerge misli da moze obrisati nakon naseg selektiranja u
world fileu.
Inace mozemo upisati i
emerge --deselect firefox i to ce ga umjesto nas deselektirati u tom
fileu...
zatim opet equery (lijeva slika)
- Kod: Označi sve
equery depends soxr
odaberemo
aplikaciju koju nismo sigurni smijemo li obrisati iz desne slike koju emerge zeli obrisat i
equery depends ce nam reci
sto je sve
ovisno o toj aplikaciji i sto ju je i kako instaliralo.
konkretno na slici vidimo
pulseaudio i flag
sox, sto znaci da je
pulseaudio ili instalirao taj
soxr sa flagom
sox ili tek znaci da je taj
flag u
pulseaudio povezan sa
soxr aplikacijom koju zelimo obrisat, pa cemo opet provjeriti flagove za
pulseaudio sa
equry uda provjerimo
sox flag. I vidimo na slici da je plavi (znaci da
pulseaudio nije povukao aplikaciju
soxr i da ne
ovisi o njoj.
Isto moramo uciniti i za sljedecu aplikaciju koja mozda ovisi o
soxr kojeg zelimo obrisat, a to je
ffmpeg kojoj cemo takodjer provjeriti use jer nam je
equery depends soxr pokazao da ovisi i o
ffmpeg-ovom flagu
libsoxrAko ustanovimo da i taj
flag ne treba ili je plavi pa je nije niti on povukao, sto bi znacilo da je
soxr instaliralo
nesto drugo kao dep sto smo vec obrisali, tada mozemo upisati
- Kod: Označi sve
emerge -cv soxr
i on ce obrisati tu aplikaciju...
Moze se desit da je npr
sox flag u
equery u za aplikaciju
pulseaudio bio
crven sto bi znacilo da je
pulseaudio povukao
soxr kao dependency, a mi ipak ustanovimo da nam
soxr ne treba kao ni
sox podrska
pulseaudiu. U tom slucaju je najbolje prvo maknuti
sox flag
pulseaudiu u
/etc/portage/package.use, rekompajlirati pulseaudio i zatim obrisati aplikaciju
soxr...kako se ne bi desilo da
pulseaudio ima runtime error jer vise ne postoji
aplikacija s cijom podrskom je
izgradjen. (malo vjerojatno u konkretnom primjeru ali moguce kod nekih slucajeva)
NIKAD ne brisemo aplikacije izravno sa "emerge -C".
Takodjer kad sve lijepo instaliramo, obrisat cemo direktorij
/usr/portage/distfiles/sa komandom:
- Kod: Označi sve
eclean-dist -d
(-d = --deep) sto ce obrisati sve
source koje je portage skinuo i kompajlirao, bit ce koji gigabajt toga... portage to cuva i ne brise po defaultu.
obrisat cemo i temporary direktorij portagea, u kom portage sejva aplikacije i logove koje su dale ozbiljniji warning ili imale compile error ili bile prekinute tokom instalacije...
- Kod: Označi sve
rm -rf /var/tmp/portage/
Ako se drzimo ovoga svega, instalacija ce potrajati dan dva.. ali prednosti su magija kakva ce gentoo tada biti
sve sto dalje trebamo je povremeno apdejtati.
Jednom kad slozimo
flagove i
konfiguracije, dalje je odrzavanje jednostavno i nemamo vise puno posla oko konfiguiranja i tokom tih apdejtova, portage ce gledati stare flagove i konfiguracije, na nama je samo da koristimo
-a (ask) pri apdejtima da provjerimo ima li nesto sto bismo trebali promijeniti....
To su tek osnove da bi se sa portage moglo raditi, sve njegove mogucnosti da se opisu, trebalo bi 10 ovakvih postova...
wikipedia,
man emerge ,
emerge --info i
emerge --help ce biti nasi najbolji prijatelji kao i aplikacije iz
gentoolkita poput
man equery..
Handbook je samo recept tipa "posoli pa promijesaj, dodaj mrkvu pa kad ona omeksa dodaj vegete i opet promijesaj, pusti da se kuha pa dodaj persina..." ali koliko soli, koliko vegete, da li zutu ili crvenu mrkvu.... to nam handbook ne zna reci jer ne zna nase ukuse
..ne zna nase potrebe, nase buduce aplikacije a jos manje nas hardware, to znamo samo mi i moramo iskuhat par neukusnih juha kako bi iskuhali onu pravu...