Gentoo Advent Calendar 1日目: portage で git tree 使って高速 sync

Gentoo Advent Calendar

この記事はGentoo Advent Calendar 2010 : ATND のために書かれました。

emerge --sync

今の emerge --sync は中では rsync が動いています。でも、 rsync って遅くないですか?

404 - Page Not Found にある通り、 portage-2.2_rc20 からは portage tree を git で更新できるようになっています! 2.2 のリリースにはまだもう少しかかりそうですが、さきどりしてしまいましょう!

unmask して emerge

いつもの autounmask でまずは unmask してから emerge。 autounmask がなければ emerge autounmask です。

# autounmask sys-apps/portage-2.2.0_alpha7
# emerge -1 portage

portage tree の初期化

git で sync するためにはリポジトリを作り直さなくてはいけません。 今の /usr/portage を backup しておいて、空の /usr/portage を作成し owner,group を portage にします。そして、 portage 権限で funtoo のリポジトリから git clone を行ないます。しばらく時間がかかるので豚キムチでも食べていましょう。

# cd /usr
# mv portage portage.bak
# mkdir portage                                                
# chown portage:portage portage
# sudo -u portage git clone git://github.com/funtoo/portage.git

そのままだと funtoo のリポジトリになっているので branch を gentoo.org にします。

# sudo -u portage git checkout gentoo.org

あとはいつも通りに emerge --sync するだけ! おつかれさまでした!