BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

pkg-plist automatisch generieren

Hat man einen neuen FreeBSD-Port geschrieben oder einen bestehenden aktualisiert und man möchte eine neue pkg-plist generieren, so kann man dies mit Hilfe von pkg-plist(1) machen. Im FreeBSD-Portbaum findet man pkg-plist(1) unter ports-mgmt/pkg-plist:

# cd /usr/ports/ports-mgmt/pkg-plist && make install clean

Danach wechselt man in das Verzeichnis des Ports für welchen man eine pkg-plist generieren möchte und installiert diesen nach /var/tmp/ptest. Dabei muss man natürlich im Port sichergestellt haben, dass sich dieser auch unter einem anderen Präfix als /usr/local installieren lässt:

# cd <meinport> && make PREFIX=/var/tmp/ptest install

Nun führt man pkg-plist(1) aus und leitet die Ausgabe in die pkg-plist-Datei um:

# pkg-plist > pkg-plist

Anschliessend kann der Port wieder deinstalliert werden:

# make PREFIX=/var/tmp/ptest deinstall

Mehr Informationen zu pkg-plist(1) findet man in der Manpage pkg-plist(1).

 Permalink

dialog-basiertes Konfigurationsprogramm

Möchte man nach dem Ende von systinstall in FreeBSD 9.0 nicht auf ein Konfigurationshilfsmittel verzichten so kann man für die grundlegendsten Konfigurationen host-setup verwenden. Im FreeBSD-Portbaum findet man host-setup unter sysutils/host-setup:

# cd /usr/ports/sysutils/host-setup && make install clean

Nun kann host-setup als root gestartet werden:

# host-setup

Danach lassen sich mit der dialog-basierten Menu-Steuerung die wichtigsten Einstellungen zur Zeitzone, des Hostnamens und der Domain, den Netzwerkkonfigurationen und zum DNS machen. Mehr Informationen zu host-setup findet man in der Manage host-setup(1).

 Permalink

/etc/rc.conf auslesen und bearbeiten

Mit Hilfe von sysrc können Informationen zur /etc/rc.conf ausgelesen werden und die Datei auf eine sichere Art bearbeitet werden. Im FreeBSD-Portbaum findet man sysrc unter sysutils/sysrc:

# cd /usr/ports/sysutils/sysrc && make install clean

Verwendet man die -A Option so werden alle möglichen Konfigurationsvariablen und ihren Standardwert angezeigt:

# sysrc -A
accept_sourceroute: NO
accounting_enable: NO
allscreens_flags: 
[...]

Mit der -a Option werden alle Variablen angezeigt, welche nicht mit ihrem Standardwert gesetzt sind:

# sysrc -a
apache22_enable: YES
apache22_http_accept_enable: YES
apache2ssl_enable: YES
[...]

Falls eine Beschreibung zu einer Variable existiert, kann diese mit der -d Option angezeigt werden:

# sysrc -d fsck_y_enable
fsck_y_enable: Set to YES to do fsck -y if the initial preen fails.

Um den aktuell konfigurierten Wert auszulesen, kann einfach der Variablenname angegeben werden:

# sysrc jail_enable
jail_enable: YES

Auch können die aktuell konfigurierten Werte geändert werden ohne das die /etc/rc.conf manuell bearbeitet werden muss:

# grep jail_enable /etc/rc.conf 
jail_enable="YES"
# sysrc jail_enable=NO
jail_enable: YES -> NO
# grep jail_enable /etc/rc.conf
jail_enable="NO"

Mehr Informationen und alle Optionen von sysrc findet man in der Manpage sysrc(8). 

 Permalink

Port und seine Abhängigkeiten rekursiv deinstallieren

Mit Hilfe von pkg_remove kann ein Port deinstalliert werden und alle installierten Ports die davon abhängig sind, werden auch automatisch deinstalliert. Im FreeBSD -Portbaum findet man pkg_remove unter ports-mgmt/pkg_remove:

# cd /usr/ports/ports-mgmt/pkg_remove && make install clean

Möchte man einen Port mit pkg_delete deinstallieren muss man die genaue Version angeben oder eine Regex verwenden und Abhängigkeiten werden nicht automatsch entfernt:

# pkg_delete thunderbird
pkg_delete: no such package 'thunderbird' installed
# pkg_delete thunderbird-9.0
pkg_delete: package 'thunderbird-9.0' is required by these other packages
and may not be deinstalled:
thunderbird-i18n-9.0

Ein rekursives Deinstallieren ist mit der -r Option von pkg_delete auch möglich, allerdings muss immer noch die genaue Version des Ports angegeben werden. Mit pkg_remove kann einfach der Portname angegeben werden und die Abhängigkeiten werden automatisch deinstalliert:

# pkg_remove thunderbird
remove: thunderbird-i18n-9.0
remove: thunderbird-9.0

Möchte man alle Ports eines Systemes deinstallieren verwendet man einfach das Schlüsselwort ALL und schon werden alle Ports deinstalliert:

# pkg_remove ALL
 Permalink

Abhängigkeiten eines Portes als Baum anzeigen

Mit Hilfe von porttree können die Abhängigkeiten eines Portes graphisch als Baum dargestellt werden. Im FreeBSD-Portbaum findet man porttree unter ports-mgmt/porttree:

# cd /usr/ports/ports-mgmt/porttree && make install clean

Mit der -A Option werden alle Ports aufgelistet, welche für das Bauen und das Ausführen des angegebenen Portes benötigt werden. Mit der -R Option werden alle Ports aufgelistet, welchen den angegebenen Port als Abhängigkeit haben. Folgendes Beispiel zeigt alle Abhängigkeiten von Firefox:

# porttree -A -R www/firefox
/usr/ports/accessibility
/usr/ports/arabic
/usr/ports/archivers
/usr/ports/astro
[...]
/usr/ports/x11-toolkits
/usr/ports/x11-wm
Depending on
0	+www/firefox
1	++accessibility/atk
2	|++devel/gettext
3	||++converters/libiconv
4	|||`devel/libtool
	||`devel/libtool -> 4
5	|++devel/gio-fam-backend
6	||++devel/gamin
	|||++devel/gettext -> 2
7	|||++devel/glib20
	||||++devel/gettext -> 2
8	||||++devel/gmake
	|||||`+devel/gettext -> 2
	||||+devel/libtool -> 4
9	||||+devel/pcre
10	||||++devel/pkg-config
	|||||`+devel/gmake -> 8
11	||||+lang/perl5.10
12	||||`lang/python26
	|||++devel/gmake -> 8
	|||+devel/libtool -> 4
	|||`+devel/pkg-config -> 10
	||++devel/glib20 -> 7
	||++devel/gmake -> 8
	||`+devel/pkg-config -> 10
	|++devel/glib20 -> 7
	|++devel/gmake -> 8
13	|++devel/gobject-introspection
14	||++devel/bison
	|||++devel/gettext -> 2
15	|||`devel/m4
	||++devel/gettext -> 2
	||++devel/gio-fam-backend -> 5
	||++devel/glib20 -> 7
	||++devel/gmake -> 8
16	||++devel/libffi
	|||`+devel/pkg-config -> 10
	||+devel/libtool -> 4
	||++devel/pkg-config -> 10
17	||++graphics/cairo
	|||++devel/gio-fam-backend -> 5
	|||++devel/glib20 -> 7
	|||+devel/libtool -> 4
	|||++devel/pkg-config -> 10
18	|||+graphics/png
19	|||++print/freetype2
	||||++devel/gmake -> 8
	||||+devel/libtool -> 4
	||||`+devel/pkg-config -> 10
20	|||++x11-fonts/fontconfig
	||||++devel/gmake -> 8
	||||+devel/libtool -> 4
	||||++devel/pkg-config -> 10
	||||++print/freetype2 -> 19
21	||||`textproc/expat2
22	|||++x11/libXrender
	||||++devel/pkg-config -> 10
23	||||++x11/libX11
	|||||++devel/pkg-config -> 10
24	|||||+devel/xorg-macros
25	|||||+x11-fonts/xf86bigfontproto
26	|||||+x11/bigreqsproto
27	|||||+x11/inputproto
28	|||||+x11/kbproto
29	|||||++x11/libXau
	||||||++devel/pkg-config -> 10
30	||||||`+x11/xproto
	|||||| `+devel/pkg-config -> 10
31	|||||++x11/libXdmcp
	||||||++devel/pkg-config -> 10
	||||||`+x11/xproto -> 30
32	|||||++x11/libxcb
	||||||++devel/gmake -> 8
33	||||||++devel/libcheck
	|||||||`+devel/gmake -> 8
34	||||||++devel/libpthread-stubs
	|||||||++devel/gmake -> 8
	|||||||`+devel/pkg-config -> 10
	||||||+lang/python26 -> 12
35	||||||++textproc/libxslt
	|||||||++devel/gmake -> 8
	|||||||++devel/pkg-config -> 10
36	|||||||++security/libgcrypt
	||||||||+devel/libtool -> 4
37	||||||||`+security/libgpg-error
	|||||||| ++converters/libiconv -> 3
	|||||||| ++devel/gettext -> 2
	|||||||| `devel/libtool -> 4
38	|||||||`+textproc/libxml2
	||||||| ++converters/libiconv -> 3
	||||||| ++devel/gmake -> 8
	||||||| `+devel/pkg-config -> 10
	||||||++x11/libXau -> 29
	||||||++x11/libXdmcp -> 31
39	||||||`+x11/xcb-proto
	|||||| +lang/python26 -> 12
	|||||| `+textproc/libxml2 -> 38
40	|||||+x11/xcmiscproto
41	|||||+x11/xextproto
	|||||++x11/xproto -> 30
42	|||||`+x11/xtrans
	||||| `+devel/pkg-config -> 10
43	||||+x11/renderproto
	||||`+x11/xproto -> 30
44	|||++x11/pixman
	||||+devel/libtool -> 4
	||||++devel/pkg-config -> 10
	||||`lang/perl5.10 -> 11
45	|||`+x11/xcb-util
	||| ++devel/gmake -> 8
46	||| +devel/gperf
	||| +devel/libtool -> 4
	||| ++x11/libXau -> 29
	||| ++x11/libXdmcp -> 31
	||| `+x11/libxcb -> 32
	||`lang/python26 -> 12
	|+devel/libtool -> 4
	|`+devel/pkg-config -> 10
47	+archivers/unzip
48	++archivers/zip
	|`archivers/unzip -> 47
	++converters/libiconv -> 3
49	++devel/autoconf213
50	|+devel/autoconf-wrapper
	|+devel/m4 -> 15
	|`lang/perl5.10 -> 11
51	++devel/dbus-glib
52	|++devel/dbus
	||++devel/gmake -> 8
	||+devel/libtool -> 4
	||++devel/pkg-config -> 10
53	||+sysutils/gnome_subr
	||+textproc/expat2 -> 21
	||++textproc/libxml2 -> 38
54	||++x11/libICE
	|||++devel/pkg-config -> 10
	|||++x11/xproto -> 30
	|||`+x11/xtrans -> 42
55	||++x11/libSM
	|||++devel/pkg-config -> 10
	|||+devel/xorg-macros -> 24
	|||++x11/libICE -> 54
	|||++x11/xproto -> 30
	|||`+x11/xtrans -> 42
	||`+x11/libX11 -> 23
	|++devel/gettext -> 2
	|++devel/gio-fam-backend -> 5
	|++devel/glib20 -> 7
	|++devel/gmake -> 8
	|+devel/libtool -> 4
	|`+devel/pkg-config -> 10
56	++devel/desktop-file-utils
	|++devel/gettext -> 2
	|++devel/gio-fam-backend -> 5
	|++devel/glib20 -> 7
	|++devel/gmake -> 8
	|`+devel/pkg-config -> 10
	++devel/gio-fam-backend -> 5
	++devel/glib20 -> 7
	++devel/gmake -> 8
57	++devel/libIDL
	|++devel/bison -> 14
	|++devel/gettext -> 2
	|++devel/gio-fam-backend -> 5
	|++devel/glib20 -> 7
	|++devel/gmake -> 8
	|`+devel/pkg-config -> 10
58	+devel/libevent
59	+devel/libexecinfo
60	++devel/libnotify
	|++accessibility/atk -> 1
	|++devel/gettext -> 2
	|++devel/gio-fam-backend -> 5
	|++devel/glib20 -> 7
	|++devel/gmake -> 8
	|++devel/gobject-introspection -> 13
	|+devel/libtool -> 4
	|++devel/pkg-config -> 10
61	|++textproc/intltool
	||++converters/libiconv -> 3
	||++devel/gmake -> 8
	||+lang/perl5.10 -> 11
62	||`+textproc/p5-XML-Parser
	|| +lang/perl5.10 -> 11
	|| `textproc/expat2 -> 21
63	|++x11-toolkits/gtk20
	||++accessibility/atk -> 1
	||++devel/gettext -> 2
	||++devel/gio-fam-backend -> 5
	||++devel/glib20 -> 7
	||++devel/gmake -> 8
	||++devel/gobject-introspection -> 13
	||+devel/libtool -> 4
	||++devel/pkg-config -> 10
64	||++graphics/gdk-pixbuf2
	|||++devel/gio-fam-backend -> 5
	|||++devel/glib20 -> 7
	|||++devel/gmake -> 8
	|||++devel/gobject-introspection -> 13
	|||+devel/libtool -> 4
	|||++devel/pkg-config -> 10
65	|||++graphics/jasper
	||||+archivers/unzip -> 47
	||||+devel/libtool -> 4
66	||||`+graphics/jpeg
	|||| `devel/libtool -> 4
	|||++graphics/jpeg -> 66
	|||+graphics/png -> 18
67	|||++graphics/tiff
	||||+devel/libtool -> 4
68	||||+graphics/jbigkit
	||||`+graphics/jpeg -> 66
69	|||++x11-toolkits/libXt
	||||++devel/pkg-config -> 10
	||||+x11/kbproto -> 28
	||||++x11/libSM -> 55
	||||++x11/libX11 -> 23
	||||`+x11/xproto -> 30
	|||++x11/libX11 -> 23
70	|||`+x11/libXi
	||| ++devel/pkg-config -> 10
	||| +x11/inputproto -> 27
	||| ++x11/libX11 -> 23
71	||| ++x11/libXext
	||| |++devel/pkg-config -> 10
	||| |++x11/libX11 -> 23
	||| |++x11/libXau -> 29
	||| |+x11/xextproto -> 41
	||| |`+x11/xproto -> 30
	||| +x11/xextproto -> 41
	||| `+x11/xproto -> 30
72	||++graphics/gtk-update-icon-cache
	|||++accessibility/atk -> 1
	|||++devel/gettext -> 2
	|||++devel/gio-fam-backend -> 5
	|||++devel/glib20 -> 7
	|||++devel/gmake -> 8
	|||++devel/gobject-introspection -> 13
	|||+devel/libtool -> 4
	|||++devel/pkg-config -> 10
	|||++graphics/gdk-pixbuf2 -> 64
	|||+lang/perl5.10 -> 11
73	|||+misc/hicolor-icon-theme
74	|||++misc/shared-mime-info
	||||++devel/gettext -> 2
	||||++devel/gio-fam-backend -> 5
	||||++devel/glib20 -> 7
	||||++devel/gmake -> 8
	||||++devel/pkg-config -> 10
	||||++textproc/intltool -> 61
	||||`+textproc/libxml2 -> 38
75	|||++x11-toolkits/pango
	||||++devel/gettext -> 2
	||||++devel/gio-fam-backend -> 5
	||||++devel/glib20 -> 7
	||||++devel/gmake -> 8
	||||++devel/gobject-introspection -> 13
	||||+devel/libtool -> 4
	||||++devel/pkg-config -> 10
	||||++graphics/cairo -> 17
	||||++print/freetype2 -> 19
76	||||++x11-fonts/encodings
77	|||||++x11-fonts/bdftopcf
	||||||++devel/pkg-config -> 10
78	||||||`+x11-fonts/libXfont
	|||||| ++devel/pkg-config -> 10
	|||||| ++print/freetype2 -> 19
79	|||||| +x11-fonts/fontsproto
80	|||||| ++x11-fonts/libfontenc
	|||||| |++devel/pkg-config -> 10
	|||||| |`+x11/xproto -> 30
	|||||| ++x11/xproto -> 30
	|||||| `+x11/xtrans -> 42
81	|||||+x11-fonts/font-util
82	|||||`+x11-fonts/mkfontscale
	||||| ++devel/pkg-config -> 10
	||||| ++print/freetype2 -> 19
	||||| ++x11-fonts/libfontenc -> 80
	||||| `+x11/xproto -> 30
83	||||++x11-fonts/libXft
	|||||++devel/pkg-config -> 10
	|||||++print/freetype2 -> 19
	|||||++x11-fonts/fontconfig -> 20
	|||||++x11/libXrender -> 22
	|||||`+x11/xproto -> 30
84	||||++x11-fonts/xorg-fonts-truetype
85	|||||++x11-fonts/bitstream-vera
	||||||`+x11-fonts/fontconfig -> 20
	|||||++x11-fonts/encodings -> 76
86	|||||++x11-fonts/font-bh-ttf
	||||||++devel/pkg-config -> 10
	||||||++x11-fonts/fontconfig -> 20
87	||||||++x11-fonts/mkfontdir
	|||||||++devel/pkg-config -> 10
	|||||||`+x11-fonts/mkfontscale -> 82
	||||||`+x11-fonts/mkfontscale -> 82
88	|||||++x11-fonts/font-misc-ethiopic
	||||||++devel/pkg-config -> 10
	||||||++x11-fonts/fontconfig -> 20
	||||||++x11-fonts/mkfontdir -> 87
	||||||`+x11-fonts/mkfontscale -> 82
89	|||||`+x11-fonts/font-misc-meltho
	||||| ++devel/pkg-config -> 10
	||||| ++x11-fonts/fontconfig -> 20
	||||| ++x11-fonts/mkfontdir -> 87
	||||| `+x11-fonts/mkfontscale -> 82
	||||`+x11/libXrender -> 22
	|||++x11/libX11 -> 23
90	|||++x11/libXcomposite
	||||++devel/pkg-config -> 10
91	||||+x11/compositeproto
92	||||+x11/fixesproto
	||||++x11/libX11 -> 23
	||||++x11/libXext -> 71
93	||||++x11/libXfixes
	|||||++devel/pkg-config -> 10
	|||||+x11/fixesproto -> 92
	|||||++x11/libX11 -> 23
	|||||+x11/xextproto -> 41
	|||||`+x11/xproto -> 30
	||||`+x11/xproto -> 30
94	|||++x11/libXcursor
	||||++devel/pkg-config -> 10
	||||+x11/fixesproto -> 92
	||||++x11/libX11 -> 23
	||||++x11/libXfixes -> 93
	||||++x11/libXrender -> 22
	||||+x11/xextproto -> 41
	||||`+x11/xproto -> 30
95	|||++x11/libXdamage
	||||++devel/pkg-config -> 10
96	||||+x11/damageproto
	||||+x11/fixesproto -> 92
	||||++x11/libX11 -> 23
	||||++x11/libXfixes -> 93
	||||+x11/xextproto -> 41
	||||`+x11/xproto -> 30
	|||++x11/libXext -> 71
	|||++x11/libXfixes -> 93
	|||++x11/libXi -> 70
97	|||++x11/libXinerama
	||||+devel/libtool -> 4
	||||++devel/pkg-config -> 10
	||||++x11/libX11 -> 23
	||||++x11/libXext -> 71
	||||+x11/xextproto -> 41
98	||||`x11/xineramaproto
99	|||++x11/libXrandr
	||||++devel/pkg-config -> 10
	||||++x11/libX11 -> 23
	||||++x11/libXext -> 71
	||||++x11/libXrender -> 22
100	||||+x11/randrproto
	||||+x11/renderproto -> 43
	||||+x11/xextproto -> 41
	||||`+x11/xproto -> 30
	|||`+x11/libXrender -> 22
	||+lang/perl5.10 -> 11
	||+misc/hicolor-icon-theme -> 73
	||++misc/shared-mime-info -> 74
101	||++print/cups-client
	|||`+devel/gmake -> 8
	||++x11-toolkits/pango -> 75
	||++x11/libX11 -> 23
	||++x11/libXcomposite -> 90
	||++x11/libXcursor -> 94
	||++x11/libXdamage -> 95
	||++x11/libXext -> 71
	||++x11/libXfixes -> 93
	||++x11/libXi -> 70
	||++x11/libXinerama -> 97
	||++x11/libXrandr -> 99
	||`+x11/libXrender -> 22
	|`+x11-toolkits/pango -> 75
102	++devel/nspr
	|`+devel/gmake -> 8
	++devel/pkg-config -> 10
103	++devel/yasm
	|++converters/libiconv -> 3
	|`+devel/gettext -> 2
	++graphics/cairo -> 17
104	++graphics/libGL
	|++devel/gmake -> 8
105	|++devel/makedepend
	||++devel/pkg-config -> 10
	||`+x11/xproto -> 30
106	|++graphics/libdrm
	||`+devel/libpthread-stubs -> 34
	|+textproc/expat2 -> 21
107	|+x11/dri2proto
108	|+x11/glproto
	|++x11/libX11 -> 23
	|++x11/libXdamage -> 95
	|++x11/libXext -> 71
	|++x11/libXfixes -> 93
109	|`+x11/libXxf86vm
	| ++devel/pkg-config -> 10
	| ++x11/libX11 -> 23
	| ++x11/libXext -> 71
	| +x11/xextproto -> 41
110	| +x11/xf86vidmodeproto
	| `+x11/xproto -> 30
	+lang/perl5.10 -> 11
	++textproc/intltool -> 61
	++x11-toolkits/gtk20 -> 63
	++x11-toolkits/libXt -> 69
	++x11-toolkits/pango -> 75
	++x11/libICE -> 54
	++x11/libSM -> 55
	++x11/libX11 -> 23
	++x11/libXext -> 71
	++x11/libXi -> 70
	++x11/libXinerama -> 97
111	+x11/printproto
	`+x11/xproto -> 30

Required by:
0	+www/firefox
1	+german/bsdforen-firefox-searchplugin
2	+german/bsdgroup-firefox-searchplugin
3	`www/firefox-i18n

Auch können nur gewisse Abhängigkeiten abgefragt werden. Die -f Option zeigt nur die Abhängigkeiten welche zum Herunterladen des Quellcodes gebraucht werden, die -e Option jene die zum Auspacken des Quellcodes verwendet werden, die -p Option die Patch-Abhängigkeiten, die -b Option alle Ports die zum Bauen gebraucht werden, die -l Optionen alle Ports die aufgrund ihrer Libraries verwendet werden und mit der -r Option alle Ports die zum Ausführen benötigt werden.

Folgendes Beispiel zeigt alle Abhängigkeiten die zum Bauen von LLVM gebraucht werden:

# porttree -A -R -b devel/llvm
/usr/ports/accessibility
/usr/ports/arabic
[...]
/usr/ports/x11-themes
/usr/ports/x11-toolkits
/usr/ports/x11-wm
Depending on
0	+devel/llvm
1	+devel/gmake
2	`lang/perl5.10

Required by:
0	+devel/llvm
1	+graphics/opengtl
2	+lang/clang
3	+lang/ldc-devel
4	+lang/llvm-gcc4
5	`lang/pure

Mehr Informationen und alle Optionen von porttree findet man in der Manpage porttree(1).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Tinderbox aufräumen

Mit der Zeit sammeln sich in der Tinderbox immer mehr Logdateien und Datenbank-Einträge an. Mit Hilfe von tc tbcleanup werden alte Logdateien gelöscht und Datenbank-Einträge zu Ports von welchen kein Paket mehr existiert entfernt:

# cd /usr/local/tinderbox/scripts && ./tc tbcleanup

Verwendet man zusätzlich noch die -d Option so wird auch der gespeicherte Quellcode welcher nicht mehr benötigt wird gelöscht.

Related Entries:
Wartezeit von tinderd ändern
Quellcode in der Tinderbox speichern
Tinderbox-Jail ohne Kompilieren erstellen
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Port-Optionen in der Tinderbox verwenden
 Permalink

Wartezeit von tinderd ändern

Verwendet man in der Tinderbox den tinderd so prüft tinderd standardmässig alle zwei Minuten ob sich neue Ports in der Warteschlange befinden. Möchte man diese Wartezeit ändern, so kann dies mit dem tc-Skript gemacht werden. Im folgenden Beispiel wird die Wartezeit auf 30 Sekunden verkürzt:

# cd /usr/local/tinderbox/scripts && ./tc configTinderd -t 30
Related Entries:
Tinderbox aufräumen
Quellcode in der Tinderbox speichern
Tinderbox-Jail ohne Kompilieren erstellen
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Port-Optionen in der Tinderbox verwenden
 Permalink

Geladene Kernelmodule anzeigen

Möchte man auf FreeBSD herausfinden, welche Kernelmodule zurzeit geladen sind, kann das mit kldstat angezeigt werden:

# kldstat 
Id Refs Address            Size     Name
 1   24 0xffffffff80100000 de7058   kernel
 2    1 0xffffffff80ee8000 212b0    geom_mirror.ko
 3    1 0xffffffff81012000 a0c      pflog.ko
 4    1 0xffffffff81013000 2bcfd    pf.ko
 5    1 0xffffffff8103f000 7e3      accf_http.ko
 6    1 0xffffffff81040000 1db      accf_data.ko
 7    1 0xffffffff81041000 1ffe     nullfs.ko
 8    1 0xffffffff81043000 4030     linprocfs.ko
 9    1 0xffffffff81048000 1cd4b    linux.ko

Mit der -v Option werden zusätzliche Informationen zu den Kernelmodulen angezeigt. Ausserdem sind alle Module aufgelistet, welche schon in den Kernel kompiliert sind:

# kldstat -v
Id Refs Address            Size     Name
 1   24 0xffffffff80100000 de7058   kernel (/boot/kernel/kernel)
        Contains modules:
                Id Name
                89 ataraid
                351 newreno
                340 if_lo
                328 elf64
                329 shell
                398 elf32
                315 pseudofs
                352 mld
                350 igmp
                342 if_vlan
                337 if_faith
                281 uether
                341 if_tun
[...]
                399 x86bios
 2    1 0xffffffff80ee8000 212b0    geom_mirror.ko (/boot/kernel/geom_mirror.ko)
        Contains modules:
                Id Name
                 1 g_mirror
 3    1 0xffffffff81012000 a0c      pflog.ko (/boot/kernel/pflog.ko)
        Contains modules:
                Id Name
                420 pflog
 4    1 0xffffffff81013000 2bcfd    pf.ko (/boot/kernel/pf.ko)
        Contains modules:
                Id Name
                419 pf
 5    1 0xffffffff8103f000 7e3      accf_http.ko (/boot/kernel/accf_http.ko)
        Contains modules:
                Id Name
                421 accf_http
 6    1 0xffffffff81040000 1db      accf_data.ko (/boot/kernel/accf_data.ko)
        Contains modules:
                Id Name
                422 accf_data
 7    1 0xffffffff81041000 1ffe     nullfs.ko (/boot/kernel/nullfs.ko)
        Contains modules:
                Id Name
                423 nullfs
 8    1 0xffffffff81043000 4030     linprocfs.ko (/boot/kernel/linprocfs.ko)
        Contains modules:
                Id Name
                425 linprocfs
 9    1 0xffffffff81048000 1cd4b    linux.ko (/boot/kernel/linux.ko)
        Contains modules:
                Id Name
                424 linuxelf

Mehr Informationen zu kldstat findet man in der Manpage kldstat(8).

 Permalink

Lesemethode von gmirror ändern

Hat man ein RAID1 mit gmirror erstellt, so kann mit gmirror list Information zum Spiegel ausgelesen werden. Unter anderem sieht man bei Balance nach welcher Methode Daten gelesen werden. Im folgenden Beispiel wird der Round-Robin-Algorithmus zum Lesen von Daten verwendet:

# gmirror list
Geom name: gm0
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3712141307
Providers:
1. Name: mirror/gm0
   Mediasize: 750156373504 (699G)
   Sectorsize: 512
   Mode: r2w2e5
Consumers:
1. Name: ad4
   Mediasize: 750156374016 (699G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 2039007148
2. Name: ad6
   Mediasize: 750156374016 (699G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 2802723338

Falls gewünscht kann nun die Lesemethode zur Laufzeit geändert werden. Im folgenden Beispiel wird die Lesemethode so geändert, dass Daten immer von der Platte gelesen werden, welche am wenigsten unter Last steht:

# gmirror configure -b load gm0
# gmirror list
Geom name: gm0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3712141307
Providers:
1. Name: mirror/gm0
   Mediasize: 750156373504 (699G)
   Sectorsize: 512
   Mode: r2w2e5
Consumers:
1. Name: ad4
   Mediasize: 750156374016 (699G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 2039007148
2. Name: ad6
   Mediasize: 750156374016 (699G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 1
   ID: 2802723338

Alle verfügbaren Lesemethoden und mehr Informationen zu gmirror findet man in der Manpage gmirror(8).

 Permalink

Zeitzonen-Einstellung änden

Möchte man die aktuelle Zeitzone seines Rechners ändern, so kann dies mit tzsetup gemacht werden. Die angegebene Zeitzone muss dabei unter /usr/share/zoneinfo existieren:

# date
Sa  1 Jan 2011 18:39:15 CET
# tzsetup Australia/Sydney
# date
So  2 Jan 2011 04:39:24 EST

Auf FreeBSD ist tzsetup standardmässig im Basissystem vorhanden. Mehr Informationen zu tzsetup findet man in der Manpage tzsetup(8).

 Permalink
Prev Next11-20/305