使用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提供使用。
此外尚有mirrorselect與netselect工具可以找出
最快或最近的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設定方式, 請參考這裡
這裡有一份官方的文件