Gentoo use flag system
Open source znaći da se kod može a i hoće izmjeniti, niste prisiljeni imati ono što se isporučuje. U suštini, svaki korisnik ima slobodu svaku aplikaciju prilagoditi sebi i svojim potrebama.
No također ukoliko neki library radi svoj posao savršeno, većina developera , ljeni kakvi jesu, neće ići protivno tog librarya niti će ga mjenjati iz koda već će ga koristiti takvim kakav je. Jer radi.
Neki programi za svoj rad zahtjevaju određenu količinu drugih programa i librarya na koje se zatim pozivaju. Neki od njih su potrebni svima, kao glibc. Ako nekoga više zanima o glibc-u evo i koristan link sa mnoštvom informacija
http://www.gnu.org/software/libc/libc.html
Suprotno binarnim distribucijama Gentoo GNU/Linux ( and don`t forget the GNU! ) spada u source based distribucije. Što to znaći? To znaći da sav softver instalira iz izvornog koda. Ovakav naćin rada traje duže no zato za uzvrat daje i veću kontrolu i lakšu prilagodljivost.
Jedna od odlika portage package managera su use flagovi.
Kako oni rade i čemu oni služe?
Softver se može kompajlirati na više naćine. Kao što se može i koristiti. Na primjer, audio aplikacije mogu podržavati više formata no možda vam ne trebaju svi ili neke pak ne želite.
Portage vam omogučava da stavite samo ono što želite. Za to se koristi varijabla USE koja kontrolira kako se neki paket instalira. Postoje system wide use flagovi i package specific use flagovi. System wide flagovi se drže u /etc/make.conf i nigdje drugdje dok se package specific flagovi drže u /etc/portage/package.use.
Opis najčešćih use flagova se nalazi u /usr/portage/profiles/use.desc
Use flagovi se postavljaju sa flag za ono što želite i -flag za ono što ne želite, nikako ne +flag.
Primjer:
Popularan file manager midnight commander može se kompajlirati sa i bez podrške za gpm, nls (Native Language Support using gettext), samba, ncurses, X (xfree) te slang ( text display library).
Sa emerge -pv možemo pogledati ponuđene flagove.
Kod ove aplikacije ovo je izlaz
Kod: Označi sve
app-misc/mc-4.8.7 USE="X edit gpm nls slang spell xdg -mclib -samba -sftp {-test}" 2,057 kB
Ukoliko neki od uključenih flagova ne želite dok neki od isključenih želite to promjenite u
package.use datoteci. Na primjer, želimo podršku za sambu i sftp no ne želimo podršku za X.
U package.use stavimo app-misc/mc -X samba sftp te spremimo.
Sljedeći puta kad pokrenete emerge -pv izlaz za ovu aplikaciju će biti promjenjen.
System wide use flags
System wide use flags se nikako ne preporuča izbjegavati. Zašto? Jer oni ubiti određuju vaš sustav.
Na primjer, korisnik a želi sustav sa podrškom za X dok korisnik b ne želi podršku za X.
U make.conf pod variablom USE korisnik a stavlja X dok korisnik b stavlja -X.
Primjeri nekih system vide use variabli
Kod: Označi sve
USE="-32bit -berkdb -fortran -ldap -gnome -mikmod -xulrunner threads pch \
network-cron ithreads xinerama -qt4 mmap -java -gtk lzma zip \
scanner custom-optimization gphoto2 fbsplash sndfile tordns \
fbcondecor fbcon git -handbook subversion sqlite3 glitz gnutls faac faad \
jack openssl ffmpeg theora objc policykit upnp plasma \
libv4l2 geoip wmf inotify v4l2 ieee1394 vcd ntp xcomposite openntpd \
parse-clocks hddtemp lcms smp -nsplugin quicktime lv2 -hal \
xinetd udev avahi -semantic-desktop vpx truetype fontconfig"
Kod: Označi sve
USE="-* acl alsa attr caps crypt idn mmx nls nptl openmp pam pic sse sse2 sse3 ssse3 ssl unicode xattr xcomposite xinerama xrandr X"
Kod: Označi sve
USE="-hal -kde -gnome 3dnow 3dnowext mmx mmxext sse sse2 sse3 ssse3 \
bindist bzip2 cairo caps consolekit cups dbus libnotify lzma md5sum \
opengl session startup-notification threads udev unicode X xattr xcb"
Kod: Označi sve
USE="openal gd vdpau xdg thumbnails nocd 3dnow videos connman ofono roe xine mjpeg ffmpeg mpeg mad aac dts a52 flac theora oggvorbis matroska freetype bidi xv svga stream vlm httpd cdda vdpau vcd cdio live inotify extras nvidia threads hal udev X jpeg xpm fontconfig curl fbcondecor gnutls xvmc mmx sse sse2 mng sql -cups alsa png svg jpeg mp3 mp4 mpeg opengl mysql webkit perl dbus faad gtk X -gnome qt3support -kde dvd alsa cdr java truetype"
Evo, ovo su system wide use flagovi od 4 različita korisnika i koliko vidimo svi su različiti. Zašto? Jer nemamo svi iste potrebe na računalu i ne koristimo računalo za iste stvari te je svatko od njih personalizirao svoje osobno računalo sebi.
Package specific use flagovi
Također je moguče i svaku aplikaciju personalizirati. To se vrši u prethodno spomenutoj datoteci package.use. Ovu datoteku morate samo kreirati jer ona ne dolazi sa sustavom.
U njoj se nalazi ime aplikacije iz kojeg slijedi popis stvari koje želimo ili pak ne želimo.
Kod: Označi sve
x11-base/xfree -ipv6
app-misc/mc -X gpm
Flagovi u package.use su prioritetno iznad flagova u make.conf no oni vrijede samo za aplikaciju kod koje su uključeni i ne za cijeli sustav.
Pregled ranije korištenih use flagova
Mnogi korisnici ne žele raditi package.use datoteku pa rpilikom instalacije specificiraju flagove koje žele. Takvi flagovi se ne pohranjuju nigdje te im tako prilikom svakog updatea ili rekompajliranja world datoteke predstoji opasnost da će sve aplikacije biti prekompajlirane naspram system wide use flagova.
Na za takve korisnike unitar gentoolkit arhive postoji aplikacija etcat koja izlistava za određen paket ranije korištene use flagove.
Ufed
ufed je kratica za the use flag editor. To je korisna skripta koja islistava dozvoljene use flagove te vam omogučuje njihovo lako editiranje. Ufed obrađuje system wide use flagove te ih sprema u mjesto koje je za njih predviđeno u make.conf.
No iako su use flagovi karakteristika portage paketnog menađera i Gentoo GNU/Linux distribucije, ovakva prilagodba nije Gentoo specifična. Source based distribucije Sourcerer i Source mage inzistriraju na prilagođavanju softvera te je sustav daleko teže izvediv nego kod portaga. Također i Debian podržava vrlo sličnu personalizaciju sa apt-build. Arch Linux u svom abs-u podržava Gentoo use flagove. Također ovakav princip je vrlo čest kod BSD baziranih operacijskih sustava.
No isto tako softver je moguće personalizirati na Slackweru te na bilo kojoj distribuciji gdje se softver instalira iz izvornog koda i to jednostavnim uređivanjem ./configure datoteke u izvornom kodu prije njenog izvršavanja. No kod Gentooa je malko elegantnije izvedeno sa use flagovima te je lakše imati sve na jednom mjestu.
Također abecedni popis use flagova se nalazi na službenim wiki
stranicama