以前都是用 portupgrade 管理套件的更新,不過 portupgrade 的速度不太好 (在 FreeBSD 的 mailing list 上有人說是因為 Ruby 的關係,不過我覺得應該是程式的問題…),後來在 #bsdchat 上看到用 sh 寫的 portmaster,拿來試了以後發現速度比起 portupgrade 快多了,就用了一陣子,沒什麼大問題的話就可以跳槽過來…
在 portupgrade 有個功能在 portmaster 似乎是沒有的,也就是在 compile 時設定一些參數,像是編 MySQL 時需要 WITH_XCHARSET=all,所以就要找其他的套件來替代,也就是標題提到的 portconf,portmaster + portconf 後更新 ports 目前暫時沒看到什麼問題,也許再跑個一陣子試看看,沒問題就把 portupgrade 拿掉。
我想要 AFTERINSTALL
另外, 如果 /usr/ports 是 symlink, portconf 會不能動, 要偷改一下… :o
/usr/ports 是 soft link 的問題不知道能不能用 realpath(1) 解決?不過這樣每次跑 make 就會跑一次 realpath(1)… @_@
這就是我塞給 ale@ 的 (翻一下 PR 有)… 折衷一點的是裝的時候跑一次,不要每次都跑
我測了一下 buildworld (RELENG_6) 的速度
用原本 portconf 的:
real 49m24.906s
user 43m28.955s sys 7m0.636s
用 realpath 的:
real 52m17.299s
user 44m9.920s sys 8m39.969s
這樣是比較慢的意思 …. ?
對,比較慢. 等 ale@ 看看好了 *_*