|Subject:||Re: Configuration management|
|From:||Hiroharu Tamaru (tam...@myn.rcast.u-tokyo.ac.jp)|
|Date:||Jun 19, 2002 12:02:19 pm|
bootstrap-etc-cvs - 3k
clean-etc-distrib-check - 0.6k
clean-etc-distrib - 0.8k
recover.modes - 0.1k
At Wed, 19 Jun 2002 03:15:33 -0700, Mike Makonnen wrote:
I am of a different opinion. I happen to like plain-text configuration files. The problem is not that we need an easier way to _edit_ the files, but rather we need a better way to manage all those files and the changes we make to them. For example, I have a haphazard collection of rcs files
I totally agree. In fact I have been using cvs for this task since FreeBSD 2.2.x days. I track -stable every several months. As the buildworld Makefiles evolve, things has become easier, and never harder. I am not using mergemaster at all in the process (no offense here too; I just adopted a way without it before it appeared). I have always found the "cvs diff" abilty invaluable.
For what it's worth, I will attach my helper scripts (mainly for bootstraping the repository on a newly installed machine) to give you an idea. It's not fully automated nor complete nor clean, but has served me quite well for a long time. These is no script for automating updates; I type them manually following my memo:
# cvsup the source, then
cd /usr/src make -j4 buildworld < /dev/null >& build.2001.02.02 & make -j4 buildkernel < /dev/null >& kernel.2001.02.02 &
cd /w/4src rm -rf config mkdir config cd /usr/src/etc make distrib-dirs distribution DESTDIR=/w/4src/config
cd /w/4src/config /w/4src/tools/clean-etc-distrib-check | less /w/4src/tools/clean-etc-distrib
cvs -d /var/cvs import -m "import after cvsup" config FreeBSD_core
cd ~ mkdir cvstmp chmod go-rwx cvstmp cd cvstmp cvs -d /var/cvs co -jFreeBSD_core:yesterday -jFreeBSD_core config
cd ~/cvstmp/config/ cvs diff -u
cvs commit -m "merged after cvsup"
cd /usr/src make installworld < /dev/null >& install.2001.02.02 & make installkernel < /dev/null >>& install.2001.02.02 & cd / cvs update
cd /dev ./MAKEDEV all
shutdown -r +1
Oh, by the way, on my machines, the following links exist: /usr/src -> /w/4src/src /usr/obj -> /w/4src/i386 or /w/4src/alpha and I have /w/4src/config as the teporary install space for /etc stuff and /w/4src/tools for the scripts I have.
/w is nfs mounted all around the place and the clients simple use what the build machine has built here.
The repository is at /var/cvs with the module name "config"
The clean-etc-distrib stuff was mainly for the very old days when "make distribution" installed binary programs in /w/4src/config/ . I was too lazy to update my scripts.
-- Hiroharu Tamaru