DragonFly BSD に logrotate をインストールする話
タイトル通り.
依存パッケージのコンパイルとインストール
popt
Source tarball is here. ダウンロードして展開したら以下でインストール :
# ./automake.sh && make && make install
不足している依存パッケージは automake の最中に表示されるので、必要に応じて pkg からインストールすれば問題なし
logrotate のコンパイルとインストール
Source tarball is here.
Step1. tarball を展開
Step2. config.c と logrotate.c を編集
config.c と logrotate.c には alloca.h が include されていますが,Dragonfly BSD ( とたぶんFreeBSD ) では stdlib.h に定義されています。
$ man alloca ALLOCA(3) DragonFly Library Functions Manual ALLOCA(3) NAME alloca -- memory allocator LIBRARY Standard C Library (libc, -lc) SYNOPSIS #include <stdlib.h> void * alloca(size_t size);
手っ取り早く上記ファイルの #include <alloca.h> をコメントアウトして対応します :
% head config.c #include "queue.h" /* Alloca is defined in stdlib.h in NetBSD */ #ifndef __NetBSD__ /* #include <alloca.h> */ <- こんなふうに #endif % head logrotate.c #include "queue.h" /* alloca() is defined in stdlib.h in NetBSD */ #ifndef __NetBSD__ /* #include <alloca.h> */ <- こんなふうに #endif
Step.3 configure && make
# CFLAGS="-I/usr/local/include -L/usr/local/lib" ./configure # make && make install
Step.4 Configration
我流です
!! Cronによる定期実行の設定 ! tarballのexamplesフォルダにあるサンプルファイルを使用 # mkdir -p /usr/local/lib/logrotate # cp examples/logrotate.cron /usr/local/lib/logrotate/logrotate.cron # chmod 755 /usr/local/lib/logrotate/logrotate.cron # ln -s /usr/local/lib/logrotate/logrotate.cron /etc/periodic/daily/510-logrotate # ln -s /usr/local/lib/logrotate/logrotate.cron /etc/periodic/weekly/510-logrotate # ln -s /usr/local/lib/logrotate/logrotate.cron /etc/periodic/monthly/510-logrotate # vi /usr/local/lib/logrotate/logrotate.cron ## /usr/sbin/logrotate -> /usr/local/sbin/logrotate にreplace !! 初期設定の投入 # cp examples/logrotate-default /etc/logrotate.conf !! /var/lib/logrotate.status のための dirty hack # mkdir -p /var/lib