Práca s Gentoo v Offline prostredí TIP
Z Gentoo Linux Wiki
Obsah |
[editovat] Skôr ako začneme
Tento dokument popisuje ako aktualizovať a inštalovať nové programy na Gentoo Linux v prípade, že nemáme možnosť pristupovať do siete Internet, alebo to to pripojenie nechcete používať na prenos súborov potrebných na aktualizáciu alebo inštaláciu požadovaného programu. Reálnym príkladom môže byť použitie Gentoo Linuxu na notebookoch s mobilným Internetom (GPRS), alebo nasadenie Gentoo Linuxu na serveroch v „odrezaných“ sieťach. Pre potreby tohto manuálu budeme o takomto použití Gentoo Linuxu hovoriť ako o Gentoo Linuxe v offline prostredí.
Jedinou požiadavkou je, aby Gentoo Linux, ktorý sa nachádza v offline prostredí, mal dostupnú službu ľubovolného web servera (služba môže byť spustená na danom Gentoo Linuxe, alebo na inom počítači v offline sieti).
Výhodou je, ak máme k dispozícii aj počítač s Gentoo Linuxom, ktorý má prístup do siete Internet (v príkladoch nazvaný „fenix“). Nie je to nutné, ale uľahčí nám to sťahovanie potrebných programov.
[editovat] Prípravné nastavenia
Budeme uvažovať zo situáciou, že na našom Gentoo Linuxe v offline prostredí máme nainštalovaný web server (napríklad lighttpd, alebo apache2, atď.) a jeho DocumentRoot sa nachádza v adresári /var/www/localhost/htdocs.
Na základe tohto predpokladu, upravíme náš súbor /etc/make.conf a nastavíme premennú GENTOO_MIRRORS nasledovne.
pegas ~ # cat /etc/make.conf | grep GENTOO_MIRRORS GENTOO_MIRRORS="http://127.0.0.1" pegas ~ #
V adresári, ktorý je nastavený ako DocumentRoot nášho web servera, vytvoríme dva adresáre a to distfiles a snapshots.
pegas ~ # mkdir /var/www/localhost/htdocs/distfiles pegas ~ # mkdir /var/www/localhost/htdocs/snapshots
[editovat] Aktualizujeme portage strom
Aktualizácia portage stromu je nutná, aby mal náš Gentoo Linux aktuálne informácie o všetkých dostupných programoch, o ich verziách, o ich statuse a o URL adrese, odkiaľ je ich možné stiahnuť.
Z Internetu si musíme stiahnuť posledný denný snapshot portage stromu (zoznam oficiálnych mirror serverov je dostupný na adrese http://www.gentoo.org/main/en/mirrors.xml). Denné snapshoty sú pochopiteľne vytvárané každý deň a sú dostupné v adresári snapshots. Napríklad, ak je dnes 10.6.2006 a rozhodneme sa stiahnuť posledný dostupný denný snapshot, tak ten sa bude volať portage-20060609.tar.bz2. Okrem tohto súboru je vhodné stiahnuť aj súbor portage-20060609.tar.bz2.md5sum, aby bolo možné spraviť kontrolu úplnosti (konzistentnosti) súboru portage-20060609.tar.bz2 pred jeho použitím.
Oba stiahnuté súbory teraz nakopírujeme do adresára snapshots na našom Gentoo Linuxe v offline prostredí. Výsledkom bude, že oba súbory budú dostupné prostredníctvom URL adries http://127.0.0.1/snapshots/portage-20060609.tar.bz2 a http://127.0.0.1/snapshots/portage-20060609.tar.bz2.md5sum.
Potom už len stačí spustiť príkaz, ktorý spraví aktualizáciu portage stromu prostredníctvom http protokolu.
Poznámka. Nemôžeme použiť štandardný príkaz emerge --sync, pretože nemáme k dispozícii RSYNC servre.
pegas ~ # emerge-webrsync
Vďaka úprave súboru /etc/make.conf bude tento skript vedieť iba o našom „mirrore“. Skript sám nájde požadovaný denný snapshot a zabezpečí všetko potrebné na aktualizovanie portage stromu nášho Gentoo Linuxu.
[editovat] Aktualizácia Gentoo Linuxu
Potrebujeme zistiť aké programy, ktoré máme nainštalované, je potrebné aktualizovať na novšiu verziu. To spravíme nasledovným príkazom.
pegas ~ # emerge -puD world These are the packages that I would merge, in order: Calculating world dependencies ...done! [ebuild U ] net-misc/rsync-2.6.8-r2 [2.6.8] [ebuild U ] www-client/mozilla-firefox-1.5.0.4 [1.0.8] pegas ~ #
Programy, ktoré nám predchádzajúci príkaz vypíše, potrebujeme stiahnuť z Internetu. Túto úlohu nám elegantne zabezpečí práve náš druhý Gentoo Linux s prístupom do siete Internet. Ak túto možnosť nemáte, potom čítajte nižšie.
Stačí ak použijeme nasledovné príkazy.
fenix ~ # mkdir potrebne_subory fenix ~ # export DISTDIR="/root/potrebne_subory" fenix ~ # emerge -f =net-misc/rsync-2.6.8-r2 =www-client/mozilla-firefox-1.5.0.4[/code]
Najskôr si vytvoríme adresár potrebne_subory. Do tohto adresára budú uložené všetky súbory potrebné na nainštalovanie programov rsync a mozilla-firefox. Následne nastavíme premennú prostredia DISTDIR, na hodnotu rovnajúcej sa ceste k nášmu pomocnému adresáru. Pokiaľ je táto premenná prázdna, tak systém uloží všetky stiahnuté súbory do štandardného adresára, to znamená, do adresára /usr/portage/distfiles. Nakoniec použijeme príkaz emerge s prepínačom -f, ktorý zabezpečí, iba stiahnutie požadovaných súborov.
Takže všetky potrebné súbory máme stiahnuté v adresári potrebné_subory. Tieto súbory musíme preniesť do adresára distfiles na našom web servery. Potom môžeme spustiť aktualizáciu na našom Gentoo Linuxe bez Internetu.
Poznámka. Tí pozornejší sa isto pýtajú, prečo ich nenakopírujeme rovno do adresára /usr/portage/distfiles. Áno, môžeme to spraviť. Sprístupňovanie týchto súborov cez web server nie je nutné, malo by význam iba v prípade, ak by sme chceli distribuovať tieto súbory napríklad na viacero takýchto offline Gentoo Linuxov.
V prípade, že Gentoo Linuxom s Internetom k dispozícii nemáme, budeme si musieť stiahnuť potrebné súbory z Internetu ručne. Aby sme vedeli, čo všetko a odkiaľ musíme stiahnuť, použijeme na našom Gentoo Linuxe bez Internetu nasledovný príkaz. Táto varianta je lepšia, vzhľadom k možnostiam rôzneho nastavenia oboch systémov. Výsledné url môžeme zapísať do soboru (každou na jeden riadok) a stiahnuť naraz pomocou príkazu wget -c -i zoznam_aktualizací.
pegas ~ # emerge -pf =net-misc/rsync-2.6.8-r2 Calculating dependencies ...done! http://mirror.gentoo.sk/pub/distfiles/rsync-2.6.8.tar.gz http://rsync.samba.org/ftp/rsync/rsync-2.6.8.tar.gz pegas ~ #
Poznámka. Program Mozilla-Fifefox som vynechal zámerne, z dôvodu príliš dlhého výstupu. Však vyskúšajte sami.
Výstup predchádzajúceho príkazu informuje o URL, kde sú dostupné všetky potrebné súčasti, aby sme mohli úspešne skompilovať požadovaný program.
V tejto chvíli by mali byť všetky naše potrebné súbory v adresári distfiles na našom web servery a nám už len stačí dokončiť proces aktualizácie.
pegas ~ # emerge -uD world
Narozdiel od prvého použitia príkazu s prepínačom -p, teraz už máme pre emerge pripravené aj všetky potrebné zdrojové kódy, takže sa môžeme pohodlne usadiť a popremýšľať do čoho sa pustíme teraz.
[editovat] Inštalácia nového programu
Princíp inštalácie nového programu je dodržanie rovnakého postupu ako v prípade aktualizácie. Aktualizácia je to isté ako inštalácia, len neinštalujeme nový program, ale inštalujeme existujúci program, ale v novšej verzie.
