Ein gutes neues Jahr Euch allen
Oder um es mit den Worten von BSD make zu sagen:
# uname FreeBSD # gmake love gmake: *** No rule to make target `love'. Stop. # make love Not war.
Oder um es mit den Worten von BSD make zu sagen:
# uname FreeBSD # gmake love gmake: *** No rule to make target `love'. Stop. # make love Not war.
Ändert man einen FreeBSD Port, zum Beispiel durch das Aktualisieren auf eine neuere Version, so kann es vorkommen, dass die Port-Patches welche sich im files-Verzeichnis befindenk, nicht mehr angewendet werden können. Dies kann mit make checkpatch geprüft werden:
# make checkpatch ===> Found saved configuration for firefox-3.1.b3,1 ===> Extracting for firefox-3.6.b5,1 => MD5 Checksum OK for firefox-3.6b5.source.tar.bz2. => SHA256 Checksum OK for firefox-3.6b5.source.tar.bz2. ===> firefox-3.6.b5,1 depends on file: /usr/local/bin/perl5.8.9 - found ===> Patching for firefox-3.6.b5,1 ===> firefox-3.6.b5,1 depends on file: /usr/local/bin/perl5.8.9 - found ===> Applying extra patch /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel/files/libsydney_oss ===> Applying FreeBSD patches for firefox-3.6.b5,1 Ignoring previously applied (or reversed) patch. 1 out of 1 hunks ignored--saving rejects to toolkit/xre/Makefile.in.rej => Patch patch-toolkit_xre_Makefile.in failed to apply cleanly. => Patch(es) patch-build_unix_run-mozilla.sh patch-config_autoconf.mk.in patch-config_mkdepend_Makefile.in patch-configure.in patch-content-xslt-public-txDouble.h patch-db_sqlite3_src_Makefile.in patch-js-src-Makefile.in patch-js-src-config-mkdepend_Makefile.in patch-js-src-config_config.mk patch-js-src-configure.in patch-js-src-jslock.cpp patch-js_src_jsnum.cpp patch-layout_generic_Makefile.in patch-media-libsydneyaudio-include-sydney_audio.h patch-media_liboggz_include_oggz_oggz_off_t_generated.h patch-security-coreconf-FreeBSD.mk patch-security_manager_ssl_src_nsNSSComponent.cpp patch-storage_build_Makefile.in patch-toolkit_mozapps_update_src_updater_updater.cpp applied cleanly. *** Error code 1 Stop in /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel. *** Error code 1 Stop in /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel.
Dabei werden die Patch-Dateien nur überprüft ob diese mit den aktuellen Code noch angewendet werden können, ohne den Quellcode jedoch zu verändern. Schlägt ein Patch fehl, kann dieser korrigiert und danach das Ergebnis wieder mit make checkpatch überprüft werden.
Möchte man überprüfen ob ein Port mit einem bereits installierten Port in Konflikt steht, so kann dies vor dem Installieren mit make check-conflicts getestet werden:
# cd /usr/ports/www/seamonkey2 && make check-conflicts ===> seamonkey-2.0.1 conflicts with installed package(s): spidermonkey-1.7.0 They install files into the same place. Please remove them first with pkg_delete(1). *** Error code 1 Stop in /usr/ports/www/seamonkey2
Mit HIlfe von aaphoto lassen sich Fotos auf der Kommandozeile aufbessern, zum Beispiel automatisch die Farben korrigiert. Im FreeBSD Portbaum findet man aaphoto unter graphics/aaphoto:
# cd /usr/ports/graphics/aaphoto && make install clean
Ruft man aaphoto ohne Optionen auf, werden automatisch die Farben des Bildes verbessert und dieses in einer neuen Datei gespeichert:
# ls -l beat.jpg -rw-r--r-- 1 beat wheel 26641 26 Dez 11:04 beat.jpg # aaphoto beat.jpg beat.jpg . . . done # ls -l beat* -rw-r--r-- 1 beat wheel 26641 26 Dez 11:04 beat.jpg -rw-r--r-- 1 beat wheel 8181 26 Dez 11:08 beat_new.jpg
Auch kann das Bild um 90 Grad im Uhrzeigersinn gedreht und um 50% verkleinert werden. Verwendet man zusätzliche Optionen so werden die Farben des Bildes nicht automatisch korrigiert. Mit der -a Option kann die Farbkorrektur wieder aktiviert werden:
# aaphoto -a --rotate90 -r50% beat.jpg beat.jpg . . . done
Mehr Informationen zu aaphoto erhält man mit der -h Option:
# aaphoto -h
Mit Hilfe von mapath kann angezeigt werden in welchen Verzeichnissen man(1) nach einer Manpage sucht:
# manpath /usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man
Konfiguriert werden diese Verzeichnisse in der Datei /etc/manpath.config. Möchte man ein weiteres Verzeichnis mit Manpages hinzufügen, so kann dazu zum Beispiel mit OPTIONAL_MANPATH festgelegt werden:
# ls -d /home/beat/man/* /home/beat/man/man1 # echo "OPTIONAL_MANPATH /usr/home/beat/man" >> /etc/manpath.config # manpath /usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man:/usr/home/beat/man
Auch kann mit Hilfe der Umgebungsvariable MANPATH die globale Konfiguration überschrieben werden:
# setenv MANPATH /home/beat/man # manpath (Warning: MANPATH environment variable set) /home/beat/man
Auf FreeBSD ist manpath standardmässig im Basissystem vorhanden. Mehr Informationen zu manpath findet man in der Manpage manpath(1).
Mit Hilfe von portmaster könnten installierte Ports aktualisiert werden. Seit der Version 2.12 wird nun auch das Aktualisieren mit Hilfe von Paketen unterstützt. Im FreeBSD Portbaum findet man portmaster unter ports-mgmt/portmaster:
# cd /usr/ports/ports-mgmt/portmaster && make install clean
Mit Hilfe der -PP Option werden die installierten Ports aussschliesslich mit Paketen aktualisiert. Die heruntergeladenen Pakete werden dabei im /usr/ports/packages/portmaster-download/ Verzeichnis gespeichert:
# portmaster -PP pkg_cutleave ===>>> Currently installed version: pkg_cutleaves-20080320 ===>>> Port directory: /usr/ports/ports-mgmt/pkg_cutleaves ===>>> Gathering dependency list for ports-mgmt/pkg_cutleaves from ports ===>>> Starting dependency check ===>>> Dependency check complete for ports-mgmt/pkg_cutleaves ===>>> Starting install for ports-mgmt/pkg_cutleaves <<<=== ===>>> All dependencies are up to date ===>>> Checking package repository for latest available version ===>>> Creating a backup package for old version pkg_cutleaves-20080320 ===>>> Installing package ===>>> Updating dependencies for pkg_cutleaves-20090810 to match installed versions ===>>> Upgrade of pkg_cutleaves-20080320 to pkg_cutleaves-20090810 complete
Möchte man den Server festlegen, von welchem die Pakete heruntergeladen werden, so kann dazu die PACKAGESITE-Umgebungsvariable gesetzt werden. Zum Beispiel in der (t)csh:
# setenv PACKAGESITE http://tinderbox.chruetertee.ch/tb/packages/8-FreeBSD
Verwendet man die -P Option so wird falls vorhanden ein Paket zur Aktualisierung verwendet, wird aber keines gefunden, so wird der Port mit Hilfe des Portbaumes aktualisiert. Im folgenden Beispiel werden alle installierten Ports aktualisiert für welche es eine neuere Version gibt. Falls möglich wird zur Aktualisierung ein Paket verwendet, ist keines vorhanden wir der Port mit Hilfe des Portbaumes kompiliert:
# portmaster -P -a
Findet portmaster ein Paket, welches neuer ist als das Installierte ist, im Portbaum befindet sich allerdings noch eine neuere Version des Portes, kann mit der --packages-if-newer festgelegt werden, dass trotzdem das Paket installiert wird:
# portmaster -P --packages-if-newer nmap
Sollten beim Aktualisieren eines Ports neue Abhängigkeiten für das Kompilieren dieses Portes benötigt werden, können diese mit Hilfe der --packages-build Option als Pakete heruntergeladen und installiert werden.
# portmaster --packages-build screen
Mehr Informationen zu portmaster findet man in der Manpage portmaster(8). Informationen über die zukünftigen Möglichkeiten von portmaster und wie man die Entwicklung von portmaster unterstützen kann, findet man auf der "portmaster funding proposal"-Webseite.
Mit Hilfe von x86info werden Informationen zum Cache, den unterstützten CPU-Funktionen, sowie den Registern und allgemeine Informationen zu den vorhandenen Prozessoren ausgelesen. Im FreeBSD-Portbaum findet man x86info unter sysutils/x86info:
# cd /usr/ports/sysutils/x86info && make install clean
Ruft man x86info mit der -a Option auf, werden alle verfürbaren Informationen zu den vorhandenen Prozessoren angezeigt:
# x86info -a x86info v1.25. Dave Jones 2001-2009 Feedback to <davej@redhat.com>. Found 2 CPUs MP Table: # APIC ID Version State Family Model Step Flags # 0 0x14 BSP, usable 6 7 6 0xbfebfbff # 1 0x14 AP, usable 6 7 6 0xbfebfbff -------------------------------------------------------------------------- CPU #1 EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6 CPU Model: Core 2 Duo P8600 Processor name string: Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz Type: 0 (Original OEM) Brand: 0 (Unsupported) Number of cores per physical package=1 Number of logical processors per socket=2 Number of logical processors per core=2 APIC ID: 0x1 Package: 0 Core: 0 SMT ID 1 eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220 eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000 eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503 eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000 eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865 eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020 eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847 eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000 Cache info L1 Instruction cache: 32KB, 8-way associative. 64 byte line size. L1 Data cache: 32KB, 8-way associative. 64 byte line size. L2 cache: 6MB, 24-way set associative, 64-byte line size. TLB info Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative Instruction TLB: 4K pages, 4-way associative, 128 entries. Data TLB: 4MB pages, 4-way associative, 32 entries L1 Data TLB: 4KB pages, 4-way set associative, 16 entries L1 Data TLB: 4MB pages, 4-way set associative, 16 entries Data TLB: 4K pages, 4-way associative, 256 entries. 64 byte prefetching. Feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe Extended feature flags: sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19] 2.50GHz processor (estimate). -------------------------------------------------------------------------- CPU #2 EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6 CPU Model: Core 2 Duo P8600 Processor name string: Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz Type: 0 (Original OEM) Brand: 0 (Unsupported) Number of cores per physical package=1 Number of logical processors per socket=2 Number of logical processors per core=2 APIC ID: 0x1 Package: 0 Core: 0 SMT ID 1 eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220 eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000 eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503 eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000 eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865 eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020 eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847 eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000 Cache info L1 Instruction cache: 32KB, 8-way associative. 64 byte line size. L1 Data cache: 32KB, 8-way associative. 64 byte line size. L2 cache: 6MB, 24-way set associative, 64-byte line size. TLB info Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative Instruction TLB: 4K pages, 4-way associative, 128 entries. Data TLB: 4MB pages, 4-way associative, 32 entries L1 Data TLB: 4KB pages, 4-way set associative, 16 entries L1 Data TLB: 4MB pages, 4-way set associative, 16 entries Data TLB: 4K pages, 4-way associative, 256 entries. 64 byte prefetching. Feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe Extended feature flags: sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19] 2.50GHz processor (estimate).
Mehr Informationen zu x86info findet man in der Manpage x86info(1).
Mt Hilfe von hwstat lassen sich auf FreeBSD die Prozessortemperaturen sowie auf einem Laptop Informationen zur Batterie auslesen. Im FreeBSD -Portbaum findet man hwstat unter sysutils/hwstat:
# cd /usr/ports/sysutils/hwstat && make install clean
Damit die CPU-Temperaturen ausgelesen werden können, muss zuerst das coretemp-Kernelmodul geladen werden:
# kldload coretemp
Um das coretemp-Kernelmodul automatsch beim Systemstart zu laden, kann folgender Eintrag in der /boot/loader.conf gemacht werden:
coretemp_load="YES"
Nun können die gewünschten Infromationen herausgelesen werden:
# hwstat Current Unit [Coretemp] CPU0: 36.1 C CPU1: 38.1 C [ACPI Thermal] tz0: 48.1 C [ACPI Thermal] tz1: 43.1 C [ACPI Battery (sysctl)] Cap remain: 100 percents Time remain: On AC State: 0 Units: 1 [battery0] Present: yes Design capacity: 56160 mWh Last full capacity: 56160 mWh Technology: secondary (rechargeable) Design voltage 10800 mV Capacity (warn): 2808 mWh Capacity (low): 200 mWh Low/warn granularity: 1 mWh Warn/full granularity: 1 mWh Model number: 42T3596 Serial number: 2208 Type: LION OEM info: SONY State: high Remaining capacity: 100 percent Remaining time: unknown Present rate: 0 mW Voltage: 12397 mV
Mehr Informationen zu hwstat findet man in der Manpage hwstat(1).
Mit Hilfe von mfsBSD lässt sich einfach ein FreeBSD 8.0 installieren, welches nur ZFS als Dateisystem verwendet. Dazu findet man auf der mfsBSD-Webseite eine "8.0-RELEASE-amd64 special edition"-ISO-Datei. Startet man einen Rechner von dieser CD, so wird allen Netzwerkschnittstellen, falls ein DHCP-Server verfügbar ist, automatisch eine IP-Adresse zugewiesen. Nun kann man sich mit dem Rechner via SSH verbinden:
# ssh root@<rechner> Password: mfsroot Last login: Mon Nov 30 20:23:43 2009 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 8.0-RELEASE (GENERIC) #1: Thu Nov 26 00:38:45 CET 2009 Welcome to mfsBSD SE, the memory based FreeBSD distribution. This is a special version intended for full-ZFS install of FreeBSD To make a full-ZFS FreeBSD install from this ISO: 1. Mount the CD device ( e.g. mount_cd9660 /dev/acd0 /cdrom ) 2. Run "zfsinstall" with path to to the distribution bzip file and your drive ( e.g. zfsinstall -d /dev/ad0 -t /cdrom/8.0-amd64.tbz ) Run zfsinstall without any option for the options list. I recommend creating a GPT swap partition (e.g. -s 2G for a 2GB swap). Feel free to email me with any bug requests or feature suggestions. Martin Matuska <mm(AT)FreeBSD.org> http://mfsbsd.vx.sk/
Zuerst muss nun das CD-ROM-Laufwerk gemountet werden:
mfsbsd# mount_cd9660 /dev/acd0 /cdrom mfsbsd# mount /dev/md0 on / (ufs, local) devfs on /dev (devfs, local, multilabel) /dev/md1 on /tmp (ufs, local, soft-updates) /dev/md2.uzip on /usr (ufs, local, read-only) /dev/md3 on /var (ufs, local) /dev/md4 on /usr/local (ufs, local, soft-updates) /dev/acd0 on /cdrom (cd9660, local, read-only)
Nun kann mit Hilfe von zfsinstall die Installation vorgenommen werden. Mit der -d Option wird die Festplatte festgelegt, auf welcher die Installation vorgenommen werden soll. Alle auf der Festplatte liegenden Dateien werden dabei gelöscht. Mit der -p Option kann falls gewünscht einen alternativen Pool-Namen gesetzt werden. Mit der -s Option kann die Grösse des Swap-Bereiches festgelegt werden:
mfsbsd# zfsinstall -d /dev/da0 -t /cdrom/8.0-amd64.tbz -p rpool -s 2G Creating GUID partitions on /dev/da0 ... done Configuring ZFS bootcode on /dev/da0 ... done => 34 16777149 da0 GPT (8.0G) 34 128 1 freebsd-boot (64K) 162 4194304 2 freebsd-swap (2.0G) 4194466 12582717 3 freebsd-zfs (6.0G) Creating ZFS pool rpool on /dev/da0p3 ... done Creating rpool partitions: root usr var tmp ... done Setting bootfs for rpool to rpool/root ... done NAME USED AVAIL REFER MOUNTPOINT rpool 218K 5.88G 18K none rpool/root 18K 5.88G 18K legacy rpool/tmp 18K 5.88G 18K legacy rpool/usr 18K 5.88G 18K legacy rpool/var 18K 5.88G 18K legacy Mounting rpool on /mnt ... done Extracting FreeBSD distribution ... done Writing /boot/loader.conf... done Writing /etc/fstab... done Copying /boot/zfs/zpool.cache ... done Installation complete. The system will boot from ZFS with clean install on next reboot You may type "chroot /mnt" and make any adjustments you need. For example, change the root password or edit/create /etc/rc.conf for for system services.
Die Partitionstabelle, der ZFS-Pool und die ZFS-Dateisysteme wurden dabei automatisch angelegt:
mfsbsd# gpart show => 34 16777149 da0 GPT (8.0G) 34 128 1 freebsd-boot (64K) 162 4194304 2 freebsd-swap (2.0G) 4194466 12582717 3 freebsd-zfs (6.0G) mfsbsd# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 5.97G 317M 5.66G 5% ONLINE - mfsbsd# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 317M 5.57G 18K none rpool/root 66.4M 5.57G 66.4M legacy rpool/tmp 18K 5.57G 18K legacy rpool/usr 250M 5.57G 250M legacy rpool/var 121K 5.57G 121K legacy
Nun kann mit Hilfe von chroot in das neu installierte System gewechselt werden. Dort kann das System konfiguriert, Benutzer angelegt, sowie das root-Passwort gesetzt werden:
mfsbsd# chroot /mnt
Startet man den Rechner, nachdem man die CD-ROM entfernt hat, neu wird das installierte System, welches nur ZFS als Dateisystem verwendet, gestartet.
Aktualisiert man Ports mit Hilfe von portmaster, so wird nach jedem aktualisierten Port nach nicht mehr gebrauchtem Quellcode in /usr/ports/distfile gesucht:
# portmaster libtool [...] install-info --quiet /usr/local/info/libtool.info /usr/local/info/dir ===> Registering installation for libtool-2.2.6b ===> Cleaning for libtool-2.2.6b ===>>> Delete libtool-2.2.6a.tar.gz? [n] ===>>> Upgrade of libtool-2.2.6a_1 to libtool-2.2.6b complete
Das kann, vor allem wenn man viele Ports aktualisiert, zu häufigen Verzögerungen führen. Mit der -D Option von portmaster kann dieser Schritt übersprungen werden:
# portmaster -D libtool [...] install-info --quiet /usr/local/info/libtool.info /usr/local/info/dir ===> Registering installation for libtool-2.2.6b ===> Cleaning for libtool-2.2.6b ===>>> Upgrade of libtool-2.2.6a_1 to libtool-2.2.6b complete
Nicht mehr gebrauchter Quellcode aller Ports kann danach nachträglich mit portmaster gelöscht werden. Mehr Informationen zu portmaster findet man in der Manpage portmaster(8).