fam v.s. gamin2008年01月08日 14時56分29秒

devel/fam と deve/gamin は同じファイルを提供するらしい。

FAM, the File Alteration Monitor, provides an API which applications can use to be notified when specific files or directories are changed.

Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system. This is a service provided by a library which allows to detect when a file or a directory has been modified.

Whereas the FreeBSD port of FAM polls files every few seconds, this port includes a kqueue(2) backend for immediate notification of most alterations.

そのため、 conflict を起こす。以下のようなエラーで困っている人は、結構いるようだ。 このメール自体は既に一年以上前なので、もう少し調べたところ、対処の仕方が現在では変わっているように見受けられる。


> ===>  fam-2.6.9_6 conflicts with installed package(s):
>       gamin-0.1.5_2
> 
>  They install files into the same place.
>       Please remove them first with pkg_delete(1).
> 
> 
> I have tried removing fam, then reinstalling gamin and vice versa.

portupgrade -o devel/gamin -f fam

gamin は fam の一部しか実装していないらしい。しかし、ports でのデフォルトは gamin になっている。今では、どちらでも良くなったのかもしれない。とにかく、gamin の方が FreeBSD では性能がいいそうだ。

gamin と fam の問題にあったら、


# portupgrade -o devel/fam -f gamin

が現時点での正解かと思う。portupgrade -o devel/gamin devel/fam が fam を gamin で置き換えるコマンドでした。1 月 10 日修正。また、WITH_FAM_SYSTEM=gamin の様に、明示的にどちらの fam ライブラリを使うかも指定できる。

次回