milu Bodhisattva
Joined: 03 May 2004 Posts: 1122 Location: Poland, Konstancin-Jeziorna
|
Posted: Fri Oct 22, 2004 1:46 pm Post subject: HOWTO: Lokalny serwer rsync i proxy dla distfiles |
|
|
Masz kilka komputerów z Gentoo w swojej sieci?
Zoptymalizuj wykorzystanie łącza przy pobieraniu pakietów z Portage i przyspiesz swoją kompilację przez zmniejszenie czasu na ściąganie plików.
Nie dość, że zmniejszysz obciążenie swojego łącza to odciążysz serwery gentoo.
Całość tego rozwiązania składa się z dwóch części:
I. Http-Replicator - krótko mówiąc proxy dla distfiles
II. gentoo-rsync-mirror - lokalny serwer rsync serwujący drzewko portage
I. Http-Replicator
1. Należy pobrać ebuild dla tego programiku: http://www.updatedlinux.com/replicator/http-replicator-flybynite-1.5.tar.bz2
Zainstalować http-replikator (Jak zainstalować ebuild spoza portage znajdziesz tutaj)
Code: | # emerge http-replicator |
2. Teraz pozostaje konfiguracja:
Na wszystkich komputerach z gentoo w sieci lokalnej(na serwerze także) w /etc/make.conf należy dodać Code: | http_proxy="http://mójserwerproxy:8080" |
a także takie linie:
Code: | #FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp \${URI} -P \${DISTDIR}"
RESUMECOMMAND=" /usr/bin/wget -t 5 --passive-ftp \${URI} -O \${DISTDIR}/\${FILE}" |
3. Sprawdzenie konfiguracji i utworzenie cache'u replikatora
Ustawienia domyślne powinny wystarczyć ale profilaktycznie radzę sprawdzić kofigurację w /etc/http-replicator.conf u mnie trzeba było zmienić linijkę z hostami, które moga korzystać z replikatora:
Code: | DAEMON_OPTS="$DAEMON_OPTS --ip 192.168.1.*" |
potem utworzenie i uzupełnienie katalogu replikatora
Code: | # /usr/bin/repcacheman |
4. Uruchomienie replikatora
Code: | # /etc/init.d/http-replicator start |
5. Dodanie replikatora do startu systemu
Code: | # rc-update add http-replicator default |
Należy pamiętać, że portage potrzebuje mirrorów. W tym celu dopisz GENTOO_MIRRORS="jakie_chcesz_serwery_gentoo" do /etc/make.conf i pamiętaj, żeby mirrory ftp ustawić na końcu jako że http-replicator robi tylko za serwer proxy dla http a nie dla ftp .
Niektóre pakiety w portage mają ustawione RESTRICT="nomirror". Standardowo nie pozwala to portage na korzystanie z mirrorów. Jest jednak na to sposób. Trzeba stworzyć plik /etc/portage/mirrors o zawartości:
Code: | # Http-Replicator Override for FTP and RESTRICT="nomirror packages
local http://gentoo.src.pl http://gentoo.oregonstate.edu |
Jeśli korzystasz z cron'a dodaj repcacheman do /etc/cron.daily. Skasuje to zduplikowane pliki pobrane na serwer i zaimportuje te, które zostały pobrane z ftp.
Żeby repcacheman działał szybko i efektywnie powinieneś kasować pliki, które pozostają w katalogu distfiles na serwerze po każdym uruchomieniu repcacheman.
Pliki te:
1.Nie istnieją już w Portage
2.Są niekompletne albo uszkodzone
3.To śmieci.
Uwaga!!! Jeśli korzystasz z ACCEPT_KEYWORDS="~x86" możesz natrafić na taki błąd:
Code: | Verifying checksum's....
/usr/portage/distfiles/eog-2.8.0.tar.bz2
Traceback (most recent call last):
File "/usr/bin/repcacheman", line 204, in ?
if t[0]:
KeyError: 0 |
Rozwiązaniem powyższego błędu jest:
zmiana w /usr/bin/repcacheman w linii 204 i 205
i w linii 167
na Code: | portage_util.writemsg |
Spowodowane jest to zmianami wprowadzanymi do nowych wersji portage(stabilna 2.0.50-r11 działa OK a niestabilna portage-2.0.51-rc9 wymaga zmian).
II. gentoo-rsync-mirror
1. Instalacja jest bardzo prosta bo w portage jest już odpowiedni ebuild
Code: | emerge gentoo-rsync-mirror
etc-update |
2. Konfiguracja
Konfiguracje gentoo-rsync-mirror można przeprowadzić na dwa sposoby. Pierwszy to taki, w którym jest tworzone oddzielne drzewko niezależne od tego, które znajduje się na serwerze a drugi to współdzielenie drzewka serwerowego.
Sposób pierwszy:
Jest on sposobem domyślnym - drzewko znajduje się w katalogu
/opt/gentoo-rsync-mirror/portage i powinno być ściągane przy użyciu
skryptu znajdującego się w instalacji /opt/gentoo-rsync-mirror/rsync-gentoo-portage.sh
Powinnien tam być ustawiony także odpowiedni(najszybszy dla Ciebie) publiczny serwer rsynca
Sposób drugi:
Można jednak skonfigurować to tak, żeby nasz serwer sync oferował drzewko portage z którego sam korzysta. W tym celu w pliku /etc/rsync/rsyncd.conf
zmieniamy linijkę Code: | /opt/gentoo-rsync/portage | na .
Jeśli zamierzamy cyklicznie synchronizować serwer używając skryptu
/opt/gentoo-rsync-mirror/rsync-gentoo-portage.sh musimy jeszcze zmienić ustawienia w /etc/rsync/gentoo-mirror.conf - chodzi głównie o serwer rsynca i katalog z drzewkiem:
Code: | SRC="rsync://rsync.de.gentoo.org/gentoo-portage"
DST="/opt/gentoo-rsync/portage/" |
np. na:
Code: | SRC="rsync://rsync.pl.gentoo.org/gentoo-portage"
DST="/usr/portage/" |
Dodatkowo w /etc/rsync/rsyncd.motd możemy ustawić dowolny opis naszego serwera rsync.
3. Uruchomienie
Code: | /etc/init.d/rsyncd start |
4. Dodanie rsyncd do startu komputera
Code: | rc-update add rsyncd default |
5. Konfiguracja na pozostałych komputerach w sieci polega na dopisaniu albo zmianie w /etc/make.conf linijki:
Code: | SYNC="rsync://adres_naszego_rsynca/gentoo-portage" |
Na koniec pozostaje przetestowanie całego rozwiązania przez zsynchronizowanie lokalnego drzewka na naszym komputerze.
UWAGA!!!!!!
Zgodnie z netykietą Gentoo jeśli tworzymy prywatny mirror synca nie powinniśmy synchronizować drzewka częściej niż raz dziennie!!!
Powodzenia i szybkich synców!! _________________ Pozdrawiam,
Milu
------------------------------------
Registered Linux User: #246079
Zanim zadasz pytanie przeczytaj to dokładnie!! |
|