V dnešnej, už poslednej, časti o inštalácii Gentoo sa pozrieme na možnosti ovplyvňovania inštalácie softvéru, ukážeme si, ako inštalovať blokovaný softvér a nakoniec sa pozrieme, čo robiť s ebuildmi z internetu. Keďže náš miniseriál je už kompletný, pripravili sme všetky tri časti v PDF verzii.
USE flags (USE premenné)
Ide o spôsob ovplyvnenia kompilácie softvéru (závislostí, čiže aj možností programu). Uvediem malý príklad: pokiaľ by ste chceli mať v PHP podporu knižnice GD, ktorú štandardne nedostanete, tak pomocou USE flags to je možné. Stačí "povedať" portage, aby zahrnul aj knižnice GD. USE flags by sme mohli rozdeliť do dvoch skupín:
- Globálne - USE premenné používa viacero programov
- Lokálne - USE premenné sú použité len pre jeden balíček
Zoznam všetkých USE premenných nájdete na internete.
Deklarácia USE premenných
Globálne USE premenné nadefinujeme v súbore /etc/make.conf pridaním riadku:
USE="hodnota1 hodnota2 hodnota3..."
Ak pred hodnotu pridáme znak "-", môžeme funkciu odstrániť. U mňa to vyzerá takto:
USE="mmx nvidia kde qt mng gd svg scanner xine -gstreamer -xmms"
Pokiaľ by ste chceli nastaviť lokálne USE premenné, spustite ako root príkaz:
# USE="hodnota1 hodnota2 hodnota3..." emerge program
V tomto prípade bude iba tento jediný program ovplyvnený hodnotami premennej USE. Zapamätajte si však, že keď budete program znovu inštalovať cez emerge, o svoje nastavenia prídete!
Individuálne nastavenie USE premenných
Najprv vytvoríme adresár /etc/portage/ a v ňom súbor package.use:
# mkdir -p /etc/portage
# touch /etc/portage/package.use
Toto je vhodné napríklad vtedy, ak chceme, aby PHP malo podporu MySQL, ale zároveň nechceme, aby sa s jeho podporou kompiloval celý systém. V takom prípade pridáme:
dev-php/mod_php mysql
Samozrejme, je to možné aj opačne. Pokiaľ by ste chceli, aby celý váš systém bol skompilovaný s MySQL, ale PHP už nie, pridajte:
dev-php/mod_php -mysql
Všetky nadefinované USE premenné zobrazíme príkazom:
# emerge --info
Ide tu o zlúčenie súborov /etc/make.conf a /usr/portage/profiles/base/use.defaults (tento súbor nikdy needitujte!). Ak ste pridali nejakú hodnotu do globálnej premennej USE a chcete, aby sa to prejavilo v systéme, použite príkaz:
# emerge --update --deep --newuse world
Ak by ste chceli vedieť, s akými USE flagmi sa skompiluje trebárs balík mozilla, skúste:
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] www-client/mozilla-1.7.11 +crypt -debug +gnome +ipv6 +java -ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznoxft -mozsvg -postgres +ssl +truetype -xinerama -xprint 29,587 kB
Total size of downloads: 29,587 kB
Blokovaný/maskovaný softvér
Možno sa vám už niekedy stalo, že vám emerge vyhodil podobnú hlášku:
!!! All ebuilds that could satisfy "=PEAR-File_Find-0.2.0-r1" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-php/PEAR-File_Find-0.2.0-r1 (masked by: ~x86 keyword)
For more information, see MASKED PACKAGES section in the emerge man page or section 2.2 "Software Availability" in the Gentoo Handbook.
Určite ste zostali zaskočený. Tento program je totiž označený ako "~", čiže "testing". Pokiaľ by ste si ho chceli nainštalovať, musíte zadať:
# ACCEPT_KEYWORS="~x86" emerge program
Potom prebehne všetko bez problémov, lenže práve ste si nainštalovali softvér, ktorý nemusí byť stabilný alebo môže mať nejaké chyby. Z vlastnej skúsenosti môžem povedať, že sa mi raz podarilo nainštalovať program, ktorý po spustení zhodil KDE. Išlo o program Kuroo - grafická nadstavba nad portage. Ak by ste sa niekedy rozhodli upgradovať všetky programy cez príkaz emerge -avuD world
, narazili by ste na problém spojený s nainštalovaným maskovaným softvérom. Ak doteraz nevyšla novšia verzia, ako tá, ktorú máme nainštalovanú, tak sa portage bude snažiť dať stabilnú verziu:
[ebuild UD] media-video/nvidia-kernel-1.0.6629-r4 [1.0.7676] 0 kB
Písmenko D značí Downgrade, čiže prechod na nižšiu verziu. V mojom prípade ide o zníženie verzie ovládača na grafickú kartu nvidia z 1.0.7676 na 1.0.6629-r4. Toto sa dá ale veľmi pekne obísť, ak do /etc/portage/package.keywords pridáme riadok:
media-video/nvidia-kernel ~x86
Teraz sa bude portage vždy snažiť inštalovať media-video/nvidia-kernel z maskovaných balíkov. Ďalší spôsob maskovania je "M~", čiže "testing/hard masked". Najprv je potrebné zakomentovať (na začiatok riadku napísať znak "#") názov balíku v /usr/portage/profiles/package.mask, ďalej ako root spustiť:
# ACCEPT_KEYWORDS="~x86" =nazov_programu-presna-verzia
Príklad:
Zakomentoval som riadok s textom: app-office/openoffice-bin-1.9.87, teraz ako root spustím nasledujúci príkaz a už sa mi pekne inštaluje OpenOffice.Org 1.9.128 :):
# ACCEPT_KEYWORDS="~x86" emerge =openoffice-bin-1.9.128
Čerstvo nainštalovaný OpenOffice.org 2.0 :)
Pokiaľ by som v /usr/portage/profiles/package.mask nezakomentoval riadok s názvom programu, dostal by som hlásenie podobné nasledujúcemu (žeby sme ho už niekedy videli? ;-):
Calculating dependencies
!!! All ebuilds that could satisfy "=openoffice-bin-1.9.128" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-office/openoffice-bin-1.9.128 (masked by: package.mask)
# Andreas Proschofsky
# Pre-Release, use on your own risk
For more information, see MASKED PACKAGES section in the emerge man page or section 2.2 "Software Availability" in the Gentoo Handbook.
To, či je daný program dostupný a v akej verzii, sa dozviete na stránke packages.gentoo.org.
Ebuildy z internetu
Ak by ste našli na internete ebuild, určite by vás ako prvé napadlo skúsiť niečo ako "ebuild nazov.ebuild", ale skončilo by sa to neúspechom. Môj prvý ebuild, ktorý som si našiel na internete (nebol v portage), bol na nitro-sources (ide o experimentálny patch do jadra, budeme ho používať v príklade). Ako prvý krok musíme vytvoriť adresár: /usr/local/portage:
# mkdir -p /usr/local/portage
Ďalej treba povedať portage, aby hľadal ebuildy aj v /usr/local/portage a nielen v /usr/portage, takže do súboru /etc/make.conf pridáme riadok:
PORTDIR_OVERLAY=/usr/local/portage
Nový adresár pre portage by sme mali, teraz vytvoríme štruktúru:
# cd /usr/local/portage
# mkdir -p sys-kernel/nitro-sources
# cd sys-kernel/nitro-sources
Stiahneme ebuild:
# wget http://www.stud.uni-karlsruhe.de/~uyavl/public/nitro-sources/2.6.12-nitro5/nitro-sources-2.6.12-r5.ebuild
Vytvoríme štruktúru súborov potrebných pre ebuild. Nasledujúci príkaz stiahne a nainštaluje všetko potrebné :):
# ebuild nitro-sources-2.6.12-r5.ebuild digest
A nakoniec môžeme nitro-sources inštalovať:
# ACCEPT_KEYWORDS="~x86" emerge nitro-sources
Pokiaľ by ste si chceli nitro-sources aj skompilovať, musíte najprv zmazať link /usr/src/linux a vytvoriť nový, ktorý bude odkazovať na nitro-sources:
# cd /usr/src
# rm linux
# ln -sf linux-2.6.12-nitro5 linux
A nakoniec sa pustíme do samotnej kompilácie:
# genkernel --menuconfig all
Tak toto bola posledná časť seriálu o Gentoo. Ďakujem všetkým, ktorí mi pomohli pri jeho tvorbe (jojko, mika, Legion a chembro). Celý návod je dostupný aj v PDF formáte (0.8 MB).
Linky:
Webstránky
- www.gentoo.org/doc/ - oficiálna dokumentácia
- forums.gentoo.org - najväčšie fórum zaoberajúce sa Gentoo. Nájdete tam veľké množstvo informácií a určite aj pomoc pri hľadaní problémov
- www.gentoo.sk - slovenská stránka o Gentoo + slovenský mirror
- www.root.cz - skvelý seriál o Gentoo na ROOT.cz - Poznejte své gentoo
- www.abclinuxu.cz - pokiaľ by ste sa chceli dozvedieť viac o balíčkovom systéme Gentoo, pozrite sa na tento miniseriál
IRC
Zoznam oficiálnych Gentoo-IRC kanálov - http://www.gentoo.org/main/en/irc.xml
nextra.irc.sk #gentoo, #gentoo.cz, #gentoo.sk
Pre pridávanie komentárov sa musíte prihlásiť.