改用 git portage tree

久沒關注官網, 只知道 Gentoo 社群討論著是否從 CVS 轉上 git 討論了 N 年. 前兩天發現官網做了大改版, 好看好用多了, 最重要的是, 有了官方的 git portage tree!

Announcement 在此
https://www.gentoo.org/news/2015/08/12/git-migration.html

有 web 界面可瀏覽
https://gitweb.gentoo.org/repo/gentoo.git/

在 github 上有 mirror
https://github.com/gentoo

要改用 git 上的 portage tree, 首先將 /usr/portage 備份一下

$ sudo mv /usr/portage{,.bak}

將 portage tree clone 下來

$ sudo git clone git://anongit.gentoo.org/repo/gentoo.git /usr/portage

編輯 portage tree 的設定. 新版的 portage 改用 /etc/portage/repos.conf/ 來管理 portage tree 相關資訊. 如果該目錄不存在, 自行建立

$ sudo mkdir /etc/portage/repos.conf/

/usr/portage/ 新增一個設定檔, 內容如下

# /etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = git
sync-uri = git://anongit.gentoo.org/repo/gentoo.git
auto-sync = yes

再讓 emerge 重新執行下 post sync 工作, 就大工告成了

$ sudo emerge --sync

要注意的地方是, 如果 gentoo.conf 中的設定錯誤, 例如 sync-type = rsync, 在 emerge --sync 時發現 /usr/portage/.git 的話會立即停止同步, 將造成 post sync 不被執行, cache 沒被重新產生, 一些如 eix-update 的命令就沒法 work.