Möchte man seine Änderungen an der BIND-Konfiguration oder den Zonendateien auf Fehler überprüfen, kann dazu nslint verwendet werden. Im FreeBSD Portbaum findet man nslint unter dns/nslint:
# cd /usr/ports/dns/nslint && make install clean
Wird nslint aufgerufen, wird standardmässig die Konfiguration unter /etc/namedb/named.conf auf Fehler überprüft. Möchte man eine andere Datei überprüfen, so kann mit der -c Option der Pfad zur Datei angegeben werden:
# nslint
nslint: name referenced without other records: mail6.chruetertee.ch.
nslint: name referenced without other records: mail5.chruetertee.ch.
nslint: missing "ptr": www.chruetertee.ch. -> 217.150.245.53
nslint: 217.150.245.53 in use by chruetertee.ch. and www.chruetertee.ch.
Sind alle Fehler korrigiert, wird nslint keine Meldung ausgeben.
# nslint
Mehr Informationen zu nslint findet man in der Manpage nslint(8).
[ FreeBSD ]
by Beat
@ 28.02.2009 10:23 UTC
Mit mergemaster können Dateien in /etc nach einem Update auf den neusten Stand gebracht werden. Dabei kann das Verhalten von mergemaster über eine Konfigurationsdatei gesteuert werden. Diese kann unter ~/.mergemasterrc oder global unter /etc/mergemaster.rc angelegt werden. Im folgenden Beispiel sollen Dateien, die auf dem System noch nicht existieren, automatisch installiert werden. Auch sollen Dateien, welche nicht verändert wurden, automatisch aktualisiert werden. Ersetzte Dateien werden unter /var/tmp/mergemaster/preserved-files-<Datum>-<Zeit>/ gesichert, wobei die /etc/motd nicht aktualisiert wird:
# Automatically install files that do not exist on the system already
AUTO_INSTALL=yes
# Automatically upgrade files that have not been user modified
AUTO_UPGRADE=yes
# Preserve files that you replace
PRESERVE_FILES=yes
PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S`
# Files to always avoid comparing
IGNORE_FILES='/etc/motd'
Diese Optionen werden dann beim Aufruf von mergemaster automatisch verwendet:
# mergemaster
Mehr Informationen zu mergemaster und alle Optionen findet man in der Manpage mergemaster(8).
[ FreeBSD ]
by Beat
@ 28.02.2009 10:16 UTC
Baut man den Kernel oder die Welt mit make buildkernel oder make buildworld, werden die auszuführenden Befehle jeweils ausgegeben:
# make buildkernel
--------------------------------------------------------------
>>> Kernel build for GENERIC started on Sat Feb 28 10:41:51 CET 2009
--------------------------------------------------------------
===> GENERIC
mkdir -p /usr/obj/usr/src/sys
--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf; PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin config -d /usr/obj/usr/src/sys/GENERIC /usr/src/sys/i386/conf/GENERIC
Kernel build directory is /usr/obj/usr/src/sys/GENERIC
Don't forget to do ``make cleandepend && make depend''
--------------------------------------------------------------
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp VERSION="FreeBSD 8.0-CURRENT i386 800061" INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin NO_CTF=1 make KERNEL=kernel cleandir
rm -f *.o *.so *.So *.ko *.s eddep errs kernel.debug kernel kernel.symbols linterrs makelinks tags vers.c vnode_if.c vnode_if.h vnode_if_newproto.h vnode_if_typedef.h agp_if.c ata_if.c eisa_if.c miibus_if.c mmcbr_if.c mmcbus_if.c card_if.c power_if.c pci_if.c pcib_if.c ppbus_if.c uart_if.c usb_if.c g_part_if.c isa_if.c bus_if.c clock_if.c cpufreq_if.c device_if.c linker_if.c serdev_if.c acpi_if.c agp_if.h ata_if.h eisa_if.h miibus_if.h mmcbr_if.h mmcbus_if.h card_if.h power_if.h pci_if.h pcib_if.h ppbus_if.h uart_if.h usb_if.h g_part_if.h isa_if.h bus_if.h clock_if.h cpufreq_if.h device_if.h linker_if.h serdev_if.h acpi_if.h acpi_quirks.h aicasm* y.tab.h aic7xxx_seq.h aic7xxx_reg.h aic7xxx_reg_print.c aic79xx_seq.h aic79xx_reg.h aic79xx_reg_print.c miidevs.h pccarddevs.h teken_state.h usbdevs.h usbdevs_data.h acpi_wakecode.h acpi_wakecode.o acpi_wakecode.bin
rm -f .depend machine
cd /usr/src/sys/modules; MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/GENERIC/modules KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386 KERNBUILDDIR="/usr/obj/usr/src/sys/GENERIC" make cleandir
===> 3dfx (cleandir)
===> 3dfx_linux (cleandir)
===> aac (cleandir)
===> aac/aac_linux (cleandir)
rm -f export_syms aac_linux.ko aac_linux.kld aac_linux.o aac_linux.ko.debug aac_linux.ko.symbols
rm -f @ machine
rm -f .depend GPATH GRTAGS GSYMS GTAGS
Möchte man die Befehle in der Ausgabe unterdrücken, kann die -s Option von make verwendet werden, so dass die Befehle ausgeführt, aber nicht mehr angezeigt werden:
# make -s buildkernel
--------------------------------------------------------------
>>> Kernel build for GENERIC started on Sat Feb 28 10:14:10 CET 2009
--------------------------------------------------------------
===> GENERIC
--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
Kernel build directory is /usr/obj/usr/src/sys/GENERIC
Don't forget to do ``make cleandepend && make depend''
--------------------------------------------------------------
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
===> 3dfx (cleandir)
===> 3dfx_linux (cleandir)
===> aac (cleandir)
===> aac/aac_linux (clean)
===> aac/aac_linux (cleandepend)
===> aac/aac_linux (cleandir)
===> accf_data (cleandir)
===> accf_dns (cleandir)
===> accf_http (cleandir)
===> acpi (cleandir)
===> acpi/acpi (cleandir)
===> acpi/acpi_aiboost (cleandir)
===> acpi/acpi_asus (cleandir)
===> acpi/acpi_fujitsu (cleandir)
===> acpi/acpi_ibm (cleandir)
===> acpi/acpi_panasonic (cleandir)
===> acpi/acpi_sony (cleandir)
===> acpi/acpi_toshiba (cleandir)
===> acpi/acpi_video (cleandir)
===> acpi/acpi_dock (cleandir)
Mit Hilfe von whereintheworld aus den worldtools kann die Ausgabe von make buildworld noch übersichtlicher dargestellt werden.