使用GOT(gentoo.org.tw)提供的gentoo-portage rsync servic

張貼日期:2017/10/10 上午 03:10:36

rsync.GOT(rsync.gentoo.org.tw)每 30分鍾會對rsync1.us.gentoo.org(official upstream rsync server)更新一次portage, 因此國內網友其實只要對rsync.GOT來rsync更新portage即可,不需到國外更新portage,如此可減少出國頻寬以及emerge sync的時間。

方法很簡單,只要在/etc/make.conf最後加一行

代碼:

SYNC="rsync://rsync.gentoo.org.tw/gentoo-portage"

這樣每次emerge sync時就會只用GOT的rsync服務,不會連到國外去.

rsync.GOT已經加入 official rsync mirror servers,

大家可以放心使用。另外台灣地區的網友可以定義

SYNC="rsync://rsync.tw.gentoo.org/gentoo-portage"

SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"

以上兩種定義方式會用DNS round-robin方式resolve出不同

台灣或亞洲地區的official rsync servers提供使用。

此外尚有mirrorselectnetselect工具可以找出

最快或最近的rsync mirror或distfiles mirror, 使用範例可以

直接執行mirrorselect來查詢,可以針對不同的地域與網路環境需求找到最適合的rsync/distfiles mirror站台。

另外,下面說明提供給需要在local maintain一份portage mirror的

方式,如果你只是一般user,你可以忽略下面的技巧,僅如上所述,在

/etc/make.conf定義好SYNC變數即可。

撰寫shell script來更新portage

代碼:

#!/bin/bash

RSYNC="/usr/bin/rsync"

OPTS="--quiet --recursive --links --perms --times --devices --compress --delete --timeout=600"

SRC="rsync://rsync.gentoo.org.tw/gentoo-portage"

# 本地端寫入的目錄

DST="/space/gentoo/rsync/"

echo "Started update at" `date` >> $0.log 2>&1

logger -t rsync "re-rsyncing the gentoo-portage tree"

${RSYNC} ${OPTS} ${SRC} ${DST} >> $0.log 2>&1

echo "End: "`date` >> $0.log 2>&1

設定到cron裡面

代碼:

10,40 * * * /usr/local/sbin/rsync_gentoo_portage.sh

這樣就OK囉.../var/log/syslog會有類似這樣的log

引言回覆:

Mar 3 23:46:12 hostname rsync: re-rsyncing the gentoo-portage tree

emerge在抓distfiles時會參考/etc/make.conf裡面定義的GENTOO_MIRRORS, 國內最新的推薦GENTOO_MIRRORS設定方式, 請參考這裡

這裡有一份官方的文件

Gentoo Linux rsync Mirrors Policy