Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HOWTO: Lokalny serwer rsync i proxy dla distfiles
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish)
View previous topic :: View next topic  
Author Message
milu
Bodhisattva
Bodhisattva


Joined: 03 May 2004
Posts: 1122
Location: Poland, Konstancin-Jeziorna

PostPosted: Fri Oct 22, 2004 1:46 pm    Post subject: HOWTO: Lokalny serwer rsync i proxy dla distfiles Reply with quote

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
Code:
t[0] na t["MD5"]

i w linii 167
Code:
portage.writemsg
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
Code:
/usr/portage
.
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!!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum