Archive for the 'Ports' Category

portconf 新用法

最近 portconf 升級到 1.4 之後,在 ports.conf 裡面可以指定把變數 .undef 掉。比方說,我希望編 sysutils/fusefs-kmod 的時候不要指定 KERNCONF,那只需要寫

sysutils/fusefs-kmod: !KERNCONF

就可以了。

把 local ports 丟出來

早上去 COSCUP 2007 講 ports,結果遭到 DK 大指控說我都沒把東西放出來,剛趁吃飽的時候,把東西稍微整理一下,丟到 OpenSVN 上去了。有興趣的人可以去 這裡觀賞使用。

net-snmp 在 FreeBSD 上的 free memory

根據這則 FAQ,被標記成 inactive 的應該也算是 cache memory 的一種。而 net-snmp 的 UCD-SNMP 這份 mib 裡面的 memory 實作上,只看被標記成 cache 的,於是配合 nagios 看的時候就會有些問題,剛剛生了一個簡單的 patch 暫時解決了這個情況。

UPDATE: 已經進了官方的收藏了: net-snmp-5.4.1_2 (2008/03/30)。

X.Org 7.2 in FreeBSD

現在 ports tree 已經暫時鎖起來了,一、兩天內升級的辦法應該會公佈,然後等一定數量的 ports committers 測過沒問題後,就會把 X.Org 7.2 倒進 CVS tree 裡面了。之後 ports tree 還會繼續鎖一陣子(看來要數星期),以便解決有的沒的問題。

唔,等了這麼久,終於要 merge 了 :D

xcin 從 ports 移除

剛剛我把 chinese/xcin 從 FreeBSD ports 移除了。理由是 xcin 計畫已經在前年十一月由計畫主持人 thhsien 宣佈卸下主持人,其實 xcin 已經很久沒有什麼新發展了,另外是也有一堆其他可用的輸入法,像是 oxim/gcin/scim 等可以使用。

掰掰 xcin ~

紀錄 FreeBSD ports 的選項

有在玩 ports 的人大概都知道 ports 有一些 knob 可以調整哪些東西要或者不要,而要紀錄這些相當討厭。過去的解法是用 portupgrade 的 MAKE_ARGS 來紀錄,後來 ports 自己有了 OPTIONS 可以幫忙(雖然不是很完美,但是至少有了)。

現實上的問題是,目前的 OPTIONS 還不完全能讓全部的 ports 都來用,於是常常就會需要在 pkgtools.conf 紀錄一堆有的沒的。用 MAKE_ARGS 的方式的缺點是,當更新 A 的時候,他可能裝 B,而 B 我又有調過選項,這時候就大爆炸了。正確的做法式在 make.conf 裡面寫,但是要注意用 .CURDIR 去判斷該加甚麼。這麼做相當麻煩,所以我也就一直懶的去改。

前幾天,ale@ 弄了個 portconf(最早是 flz@ 寫的)。裝了這個之後,他會幫忙改 make.conf,你只需要弄一個 /usr/local/etc/ports.conf 像是:

*: WITH_CJK=yes
devel/subversion*: WITH_APACHE2_APR=yes | WITHOUT_BDB=yes
net/mtr: WITHOUT_X11=yes

就可以快樂的丟掉 MAKE_ARGS。注意到我的例子裡面有用 *,在 portconf 裡面,是用 sh 的 pattern match,所以可以這麼搞 :P 另外還有個問題要特別注意的是,如果你的 /usr/ports 是 link 的話,要去 make.conf 改成真正的路徑,否則會沒有用。

Update: 感謝 b6s 指正錯誤。

FreeBSD local ports

前陣子在整理工作站裝的 Ports 跟 patches 的時候,決定自己造造一個 local 的類別,來放這個 patch 過的 ports,好處是很多東西就不用再手動 patch,而且也可以換像是 portsnap(8) 這種好東西。

在做這些東西之前,最好要對 Ports system 有些認識,一些細節的部份我就不多說,可以參考 FreeBSD Porter’s Handbook。首先,要造一個目錄來放 local ports:

mkdir /usr/ports/local

然後,造一個 local/Makefile:

COMMENT = Local ports
SUBDIR += your_port
.include <bsd.port.subdir.mk>

跟 local/Makefile.inc:

PKGNAMEPREFIX?= local-
PKGCATEGORY= local

然後在 ports/Makefile.local 寫:

SUBDIR += local

在 /etc/make.conf 加上:

VALID_CATEGORIES+= local

再來就是你要自己製造你想要的 ports 了,這邊就不多說了。還有一個問題要處理的是 INDEX。如果有用 portupgrade(1) 的話,每次更新過 ports tree 之後,用 portsdb -Uu 來更新一次 INDEX 跟 INDEX.db,這樣子才不會出意外。我知道這個很慢(在 P4-2.8G 的機器大概是 13 分鐘),不高興的話,可以試試看 sysutils/p5-FreeBSD-PortIndex 或者想辦法用 portsanp(8) 的 make_index 弄,這部份可以參考前陣子 -ports@ mailing 上面有過一些討論。

mailgraph 1.11

mailgraph 前陣子終於出了新版了,很重要的一點是跟 RRDtool 1.2.x 相容了(現在 ports 的已經是 1.2.x),我剛剛 send-pr 去更新 mailgraph 了。我終於可以 upgrade rrdtool 了 :p

IRC to Any

剛看到 ports 多了 thales 這個東西,他是 IRC to MySQL 的 gateway,再加上以前玩的 bitlbee (IRC to MSN/ICQ/…),這年頭 IRC 可以幹的壞事越來越多了 XD

dns/scavenge 太邪惡了…

dns/scavenge 是一個檢查正反解有沒有弄好的工具,有點像是 dnsdnswalk,不過他不用 zone transfer 而是自己用 Net::DNS 來跑,然後他裡面還會用 nmap 去看機器在不在… 這太邪惡了 :o