BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Automatisches Aktualisieren von Konfigurationsdateien

Verwendet man mergemaster zum Aktualisieren von Konfigurationsdateien, so kann mit der -U Option festgelegt werden, dass Dateien die nicht von Hand verändert wurden automatisch aktualisiert werden. Mit der -i Option werden nicht vorhandene Dateien automatisch installiert:

# mergemaster -Ui

Diese Optionen können auch über die mergemaster-Konfigurationsdatei gesetzt werden. Mehr Informationen zu mergemaster findet man in der Manpage mergemaster(8).

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

Quellcode in der Tinderbox speichern

Testet man einen Port in einer Tinderbox, so wird der Quellcode bei jedem Test neu heruntergeladen. Im folgenden Beispiel wird in der Tinderbox festgelegt, dass heruntergeladener Quellcode unter /usr/ports/distfiles gespeichert werden soll. Wurde der Quellcode schon heruntergeladen und in diesem Verzeichnis gespeichert, so wird dieser zum Bauen des Portes verwendet:

# cd /usr/local/tinderbox/scripts && ./tc configDistfile -c /usr/ports/distfiles
Related Entries:
Tinderbox aufräumen
Wartezeit von tinderd ändern
Tinderbox-Jail ohne Kompilieren erstellen
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Port-Optionen in der Tinderbox verwenden
 Permalink

Benutzerdefinierte Portabhängigkeiten festlegen

Mit Hilfe von wanted-ports wird ein Meta-Port installiert mit welchem man bentzerdefinierte Portabhängigkeiten festlegen kann. Im FreeBSD-Portbaum findet man wanted-ports unter ports-mgmt/wanted-ports:

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

Beim ersten Aufruf von wanted-ports wird eine neue Konfigurationsdatei angelegt:

# wanted-ports 
wanted-ports: WARNING -- no config file found,  creating initial /var/db/wanted-ports.conf

Mit der -a Option wird ein Port als Abhängikeit von wanted-ports hinzugefügt:

# wanted-ports -a www/apache20
wanted-ports: Register new dependency "apache>=2.0.63_15:${PORTSDIR}/www/apache20"?  y

Nachdem zum Beispiel der apache20-Port als Abhängigkeit definiert wurde, würde der wanted-ports bei einer Reinstallation automatisch apache20 mitinstallieren:

# cd /usr/ports/ports-mgmt/wanted-ports && make missing
www/apache20
devel/apr0
archivers/xz

Abhängigkeiten könen mit der -d Option wieder entfernt werden:

# wanted-ports -d www/apache20
wanted-ports: Delete dependency "apache>=2.0.63_15:${PORTSDIR}/www/apache20"?  y

Hat man alle gewünschten Abhängigkeiten hinzugefügt, kann zum Beispiel die /var/db/wanted-ports.conf auf einen weiteren Rechner kopiert werden und durch das Installieren von wanted-ports werden alle gewünschten Ports automatisch installiert.

Weiter kann wanted-ports als Absicherung benutzt werden, damit Ports nicht ohne weiteres mit pkg_delete(1) deinstalliert werden können:

# pkg_delete swaks-\*
# wanted-ports -a mail/swaks
wanted-ports: Register new dependency "swaks>=20100211.0:${PORTSDIR}/mail/swaks"?  y
# cd /usr/ports/ports-mgmt/wanted-ports && make deinstall install clean
# pkg_delete swaks-\*
pkg_delete: package 'swaks-20100211.0' is required by these other packages
and may not be deinstalled:
wanted-ports-0.1_1

Mehr Informationen zu wanted-ports findet man in der Manpage wanted-ports(1).

 Permalink

Liste aller Ports erstellen die nicht als Abhängigkeiten installiert wurden

Mit Hilfe der --list-origins Option von portmaster lässt sich eine Liste aller installierten Ports erstellen welche nicht als Abhängigkeiten installiert wurden. Mit Hilfe dieser Liste kann ein System mit den identisch installierten Ports erstellt werden:

# portmaster --list-origins
www/piwik
ports-mgmt/portmaster
lang/python25
archivers/unzip
www/dokuwiki
www/eaccelerator
www/fluxcms
www/mod_security
security/php-suhosin
mail/squirrelmail

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

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

Nicht mehr benötigte Abhängigkeiten löschen

Mit Hilfe der -s Option von portmaster können installierte Ports gelöscht werden welche als eine Abhängigkeit installiert wurden jedoch aktuell nicht mehr benötigt werden:

# portmaster -s
Information for sdocbook-xml-1.1,1:

Comment:
"Simplified" DocBook XML DTD

Description:
The "Simplified" DocBook XML DTD is a small subset of the DocBook XML DTD.

WWW: http://www.oasis-open.org/docbook/xml/simple/

===>>> sdocbook-xml-1.1,1 is no longer depended on, delete? y/n [n] y
===>>> Delete old and new distfiles for textproc/sdocbook-xml
       without prompting? y/n [n] y
===>>> Deleting stale distfile: docbook-xsl-1.75.2.tar.bz2
===>>> Deleting stale distfile: docbook-xsl-doc-1.75.2.tar.bz2
===>>> Running pkg_delete -f sdocbook-xml-1.1,1
xmlcatmgr: enabling compatibility mode; removing ALL matching entries
xmlcatmgr: enabling compatibility mode; removing ALL matching entries
Information for compat5x-i386-5.4.0.8_11:

Comment:
A convenience package to install the compat5x libraries

Description:
This package allows you to install the compat5x libraries on your
system, so you can use legacy binaries that depend on them.

Ports usage example:

--
.include <bsd.port.pre.mk>

.if ${OSVERSION} >= 600000
LIB_DEPENDS+=   c.5:${PORTSDIR}/misc/compat5x
.endif
--

===>>> compat5x-i386-5.4.0.8_11 is no longer depended on, delete? y/n [n] y
===>>> Delete old and new distfiles for misc/compat5x
       without prompting? y/n [n] y
===>>> Running pkg_delete -f compat5x-i386-5.4.0.8_11
Information for localedata-5.4:

Comment:
Legacy locale data for FreeBSD 6+

Description:
This package provides compatibility locale data for FreeBSD 6.x to run
4.x/5.x binaries. When you have a trouble with locale at running a legacy
binary, you should guide them to find legacy locale data with setting
PATH_LOCALE environment variable.

env PATH_LOCALE=/usr/local/share/compat/locale command

===>>> localedata-5.4 is no longer depended on, delete? y/n [n] y
===>>> Delete old and new distfiles for misc/localedata
       without prompting? y/n [n] y
===>>> Running pkg_delete -f localedata-5.4
[...]

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

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

Überprüfen ob man sich in einer Jail befindet

Mit Hilfe der sysctl-Variable security.jail.jailed kann herausgefunden werden ob man sich in einer FreeBSD-Jail befindet. Ist die Variable auf 0 befindet man sich auf dem Hostsystem, ist die Variable auf 1 befindet man sich innerhalb einer Jail:

# sysctl security.jail.jailed
security.jail.jailed: 0
# jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.2     test1.chruetertee.ch          /usr/jails/test1.chruetertee.ch
# jexec 1 tcsh
# sysctl security.jail.jailed
security.jail.jailed: 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

Herausfinden in welcher Jail ein Prozess läuft

Möchte man herausfinden in welcher Jail ein Prozess läuft, kann dazu ps mit der -o jid Option auf dem Host-System ausgeführt werden. Danach wird zu jedem Prozess die Jail-ID angezeigt. Prozesse welche auf dem Host-System laufen haben die Jail-ID 0:

# ps axo jid,command
   5 screen -r
   5 irssi
   0 sshd: test [priv] (sshd)
   0 sshd: test@ttyp1 (sshd)
   3 /usr/sbin/named -u bind
   4 /usr/local/sbin/httpd
[...]

Mit jls kann danach herausgefunden werden, welche Jail-ID zu welcher Jail gehört:

# jls
   JID  IP Address      Hostname                      Path
     5  192.168.1.2     test1.chruetertee.ch          /usr/jails/test1.chruetertee.ch
     4  192.168.1.3     test2.chruetertee.ch          /usr/jails/test2.chruetertee.ch
     3  192.168.1.4     test3.chruetertee.ch          /usr/jails/test3.chruetertee.ch
     2  192.168.1.5     test4.chruetertee.ch          /usr/jails/test4.chruetertee.ch
     1  192.168.1.6     test5.chruetertee.ch          /usr/jails/test5.chruetertee.ch

Mehr Informationen findet man in der Manpage ps(1) und jls(8).

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-Jail ohne Kompilieren erstellen

Seit Tinderbox 3.3 ist es nun auch möglich eine Tinderbox-Jail ohne Kompilieren zu erstellen. Dazu muss zuerst lftp installiert werden:

# cd /usr/ports/ftp/lftp && make install clean

Danach kann die Jail erstellt werden. Mit der -u LFTP Option wird angegeben, dass lftp zum Herunterladen einer FreeBSD-Installations-CD verwendet werden soll, aus welcher die Tinderbox-Jail erstellt wird. Mit der -H Option kann der FTP-Server gewählt werden, von welchem die Installations-CD herunterladen wird. Im folgenden Beispiel wird eine 7.3-RELEASE Jail erstellt:

# cd /usr/local/tinderbox/scripts
# ./tc createJail -j 7.3 -d "FreeBSD 7.3-RELEASE" -t 7.3-RELEASE -u LFTP -H ftp.ch.freebsd.org
7.3: initializing tree
7.3: creating top-level directory
7.3: adding to datastore... done.
7.3: initializing new jail...
7.3: updating jail with LFTP
7.3: cleaning out /usr/local/tinderbox/jails/7.3/obj
7.3: cleaning out /usr/local/tinderbox/jails/7.3/tmp
7.3: creating tarball
7.3: cleaning out /usr/local/tinderbox/jails/7.3/tmp
7.3: cleaning out /usr/local/tinderbox/jails/7.3/obj
Cleaning up after Jail creation.  Please be patient.
Related Entries:
Tinderbox aufräumen
Wartezeit von tinderd ändern
Quellcode in der Tinderbox speichern
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Port-Optionen in der Tinderbox verwenden
 Permalink

Login-Shell eines Benutzers ändern

Möchte man auf FreeBSD seine Login-Shell ändern, kann dazu chsh verwendet werden. Nun kann im gestarteten Standard-Editor die Login-Shell und andere Benutzerinformationen geändert werden:

# chsh
#Changing user information for beat.
Shell: /bin/csh
Full Name: Beat Gätzi
Office Location:
Office Phone:
Home Phone:
Other information:

Beendet man den Editor, muss man zur Kontrolle sein Passwort eingeben. Danach werden die Änderungen gespeichert. Führt man chsh als root aus, können weitere Details eines Benutzers geändert werden:

# chsh <Benutzer>

Auf FreeBSD ist chsh standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von chsh findet man in der Manpage chsh(1).

 Permalink

Disk-Aktivität beobachten

Mit Hilfe von iostat kann die Aktivität der Systemdisks beobachtet werden. Im folgenden Beispiel werden die Werte alle 5 Sekunden aktualisiert:

#  iostat 5
       tty              ad4              da0              cd0             cpu
 tin  tout  KB/t   tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
 6599  1377  24.46   2  0.04   3.16   0  0.00   3.00   0  0.00   1  0  1  0 98
10680  1716 122.46 148 17.67   0.00   0  0.00   0.00   0  0.00  31  0  3  1 65
10816 10607  35.46  46  1.58   0.00   0  0.00   0.00   0  0.00  15  0  6  0 79
28934 18233   8.12  24  0.19   0.00   0  0.00   0.00   0  0.00   0  0  1  0 98
15441  3369  23.27  66  1.51   0.00   0  0.00   0.00   0  0.00   9  0 13  0 78
5261  1332   24.35 128  3.05   0.00   0  0.00   0.00   0  0.00   8  0  5  1 86
 496   406    5.64 181  0.99   0.00   0  0.00   0.00   0  0.00   0  0  1  1 98
 450   927    8.89 230  2.00   0.00   0  0.00   0.00   0  0.00   3  0  4  0 93
 353  1251    8.44 420  3.46   0.00   0  0.00   0.00   0  0.00   3  0  7  1 89
 365   603   50.22 245 12.02   0.00   0  0.00   0.00   0  0.00  30  0  5  0 65
 435   359   36.42  59  2.08   0.00   0  0.00   0.00   0  0.00   1  0  1  0 98

Die Ausgabe kann mit Ctrl + c abgebrochen werden. Die Werte werden dabei in Kilobytes pro Transfer (KB/t), Transfers pro Sekunde (tps) und Megabytes pro Sekunde (MB/s) angegeben. Auch ist es möglich nur eine bestimmte Anzahl von Messungen durchzuführen. Im folgenden Beispiel wird die Ausgabe nach zwei Messungen beendet:

# iostat 5 2
       tty              ad4             cpu
 tin  tout  KB/t  tps  MB/s  us ni sy in id
   3    70 30.84   22  0.66  26  0  5  0 69
   1    26 127.43  11  1.39  51  0  8  1 41

Auf FreeBSD ist iostat standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von iostat findet man in der Manpage iostat(8).

Comments (2)  Permalink
Prev Next41-50/305