BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

OpenBSD von 3.7 auf 3.8 aktualisieren

Vor dem Aktualisieren unbedingt folgende sehr gute Anleitung lesen: http://www.openbsd.org/faq/upgrade38.html

Ich habe hier die wichtigsten Schritte zusammengefasst, ein Upgrade sollte aber auf jeden Fall nach oben genannter Anleitung durchgeführt werden!

Vor dem Aktualisieren unbedingt ein Backup aller Daten durchführen!

Die benötigten Quelldateien von der CD kopieren oder von einem Mirror hinunterladen:
# cd /root/
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/bsd
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/bsd.rd
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/base38.tgz
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/etc38.tgz
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/comp38.tgz
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/man38.tgz
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/i386/misc38.tgz
Danach eine Liste mit allen installierten Ports erstellen und diese deinstallieren:
# pkg_info > /root/pkg_lst
# pkg_delete -q /var/db/pkg/*

Alle zusätzlich aktivierten und nicht gebrauchten Daemonen in /etc/rc.conf und /etc/rc.conf.local deaktivieren und dann das Upgrade durchführen:

# cd /root
# rm -f /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
# cp bsd.rd bsd.mp /
# cd /
# tar xzpf /root/base38.tgz "*etc/firmware/*"
# reboot
# cd /
# tar xzpf /root/base38.tgz
# tar xzpf /root/comp38.tgz
# tar xzpf /root/man38.tgz
# tar xzpf /root/misc38.tgz
# cd /dev
# ./MAKEDEV all
# useradd -u86 -g=uid -c"HostAP Daemon" -d/var/empty -s/sbin/nologin _hostapd
# cd /tmp
# tar xzpf /root/etc38.tgz
# cd /tmp/etc
# cp hostapd.conf netstart pf.os rc services /etc
# cp mtree/* /etc/mtree/
# cd /tmp/
# ftp ftp://mirror.switch.ch/pub/OpenBSD/3.8/src.tar.gz
# cd /usr/src/
# tar xzpf /tmp/src.tar.gz
# pkg_add ftp://mirror.switch.ch/pub/OpenBSD/3.8/packages/i386/mergemaster-1.46p0.tgz
# /usr/local/sbin/mergemaster
# mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
# reboot

Danach alle Pakete wieder installieren, eine Liste der vorher installierten Pakete befindet sich noch unter /root/pkg_lst, und alle benötigten Dienste in /etc/rc.conf und /etc/rc.conf.local wieder aktivieren und gegebenenfalls den Rechner neu starten.

Related Entries:
OpenBSD Packages aktualisieren
Aktualität des OpenBSD-Portbaumes überprüfen
Zeit synchronisieren mit ntpd
OpenOffice.org 2.0 auf OpenBSD
Dateien unter Free- und OpenBSD mit Flags schützen
 Permalink

vi Kurzreferenz

Ich werde öfters gefragt, wieso ich den vi als Editor brauche. Ganz einfach, der kann viel und man editiert so schnell, wie mit keinem anderen Editor. Deshalb möchte ich den Befehl der Woche dem vi widmen.

Bewegen


h, j, k, l links, runter, hinauf, rechts
Pfeiltasten Hoffentlich selbsterklärend
w, b
Springt jeweils ein Wort vorwärts/rückwärts
E
Springt ans Ende des aktuellen Wortes
0, $
Springt zum Anfang/Ende der Zeile
H, M, L
Springt an den Anfang, in die Mitte oder ans Ende des Fensters
G
Springt ans Ende der Datei
1G
Springt an den Anfang der Datei
Suchen
/<Wort>[Enter] Sucht vorwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
?<Wort>[Enter]
Sucht rückwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
n, N
Sucht nach <Wort> vorwärts, rückwärts fortsetzen
Schreiben

i, a
Fügt den nachfolgenden Text vor/nach dem Buchstaben unter dem Cursor ein
I, A
Fügt den nachfolgenden Text am Anfang/Ende der Zeile ein
o, O
Fügt eine neue Zeile nach/vor der aktuellen Zeile ein
r
Ersetzt das aktuelle Zeichen unter dem Cursor
Löschen

x
Löscht das aktuelle Zeichen unter dem Cursor
dh
Löscht das Zeichen links des Cursors
dw
Löscht das aktuelle Wort
db
Löscht das Wort links des aktuellen Wortes auf dem sich der Cursor befindet
dd
Löscht aktuelle Zeile
d0, d$
Löscht die Zeile von der aktuellen Corsorposition zum Zeilenanfang/-ende
dG Löscht alle folgenden Zeilen, einschliesslich der aktuellen, bis zum Ende der Datei
J
Löscht den Zeilenumbruch zwischen der aktuellen und der nächsten Zeile
d/<Wort>
Löscht von der aktuellen Cursorposition alles bis zu <Wort>
Navigieren

:<Zielennummer>
Geht zur angegebenen Zeile
Suchen und ersetzen

:s/<suche>/<ersetze>/ Sucht <suche> auf der aktuellen Zeile und ersetzt den ersten Treffer durch <ersetze>
:s/<suche>/<ersetze>/g Sucht <suche> auf der aktuellen Zeile und ersetzt alle durch <ersetze>
:%s/<suche>/<ersetze>/g Sucht <suche> in der ganzen Datei und ersetzt es durch <ersetze>
:%s/<suche>/<ersetze>/gc Sucht <suche>in der ganzen Datei und fragt nach, ob er es durch <ersetze> ersetzen soll
Weiteres

u Macht den letzten ausgeführten Befehl rückgängig
. <- Punkt Führt den letzten ausgeführten Befehl nochmals aus
~ Ändert Grossbuchstaben in Kleinbuchstaben und umgekehrt
Kommandomodus
[Esc] Wechselt in den Kommandomodus
:w / :w <Dateiname> Speichert Datei / Speichert Datei in <Dateiname>
:q / :q! Verlässt den vi / Verlässt vi ohne geänderte Datei zu speichern
:wq oder :x
Speichert Datei und verlässt den vi
:! <Befehl> Führt <Befehl> in der Shell aus
:e <Dateiname> Erstellt neue Datei namens <Dateiname>
Kopieren und Einfügen
yy Kopiert aktuelle Zeile
p, P
Fügt kopierte Zeile nach/vor der aktuellen Zeile ein

Lösch- und Bewegungsbefehle können auch noch mit Zahlen kombiniert werden, so löscht zum Beispiel ein 3dw gleich 3 Wörter auf einmal oder ein 5h bewegt den Cursor gleich 5 Zeichen nach links.

Leider weiss ich auch nicht alle Befehle auswendig, aber dafür hab ich ja meine vi Referenz Kaffeetasse.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
vi Fenster teilen
Abkürzungen im vi benutzen
vi Makros benutzen
 Permalink

Neuer Port: jailaudit

Gerade auf freshports diesen neuen Port entdeckt: jailaudit

This port contains a script to generate portaudit reports for jails
running on a FreeBSD system.

Normally portaudit just creates reports for the Host-system or the jail
it is installed in. With a large number of jails running on a system,
installing and updating portaudit in every jail is time-consuming and
error-prone. Jailaudit uses the portaudit installed in the Host-system
to create a report for every jail.

The reports are appended to the daily security run and can be sent to a
specific mail address, which allows the Host-system administrator to
dispatch portaudit reports to the owners of jails, keeping them informed
about potential security advisories of their installed ports.

jailaudit kann nur auf einem FreeBSD 5.1 oder neuer verwendet werden, da jls benötigt wird.

UPDATE 05.02.2007: jailaudit wurde von security in die neue Kategorie ports-mgmt verschoben. jailaudit kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/jailaudit && make install clean
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
Comments (1)  Permalink

Überblick über alle installierten Ports

Um einen Überblick über alle installierten Ports zu erhalten, einfach folgenden Befehl benutzen:

# portversion

Zusätzlich wird bei jedem Port angezeigt, ob sich im lokalen Portbaum eine neuere Version befindet oder ob die installierte Version aktuell ist.

Ein bisschen mehr Informationen bekommt man mit dem verbose Modus von portversion:

# portversion -v

portversion befindet sich im sysutils/portupgrade Port. Mehr Informationen findet man in der Manpage portversion(1)

UPDATE 05.02.2007:

portupgrade wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portupgrade kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portupgrade && make install clean
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
Comments (1)  Permalink

Ports aktualisieren mit dem gnome_upgrade Skript

Am 05.11.05 wurden laut /usr/ports/UPDATING gtk/glib und GNOME aktualisiert.

20051105:
AFFECTS: all users of gnome/glib/gtk
AUTHOR: gnome@FreeBSD.org

GNOME has been updated to 2.12 and gtk/glib to 2.8.
DO NOT USE portupgrade(1) to update your ports. Instead, use
the gnome_upgrade.sh script from
http://www.marcuscom.com/downloads/gnome_upgrade212.sh

Zeit, die Ports auf meinem Laptop auf den neusten Stand zu bringen. Also gleich mal das gnome_upgrade212.sh heruntergeladen:

# fetch http://www.marcuscom.com/downloads/gnome_upgrade212.sh 

Als erstes habe ich Openoffice mit pkg_deinstall gelöscht, da ich nicht wollte, dass das Upgradeskript Openoffice aktualisiert.

Mit der Option -h alle möglichen Optionen angeschaut:

#./gnome_upgrade212.sh -h
usage: ./gnome_upgrade212.sh [-f] [-k] [-h] [-P] [-p] [-v] [-restart <list filename>]

-f : Do not prompt for any confirmations (think: force)
-k : Keep going even if an error is encountered
-h : Print this usage summary and exit
-p : Use packages for upgrades where possible
-P : Only use packages for upgrades
-v : Print the version of ./gnome_upgrade212.sh and exit
-restart : Restart a failed upgrade using the <list filename> to get the list of ports that still require an upgrade

...und danach das Skript ohne eine Option gestartet. Nach der Bestätigung mit Enter, dass ich das Upgrade durchführen möchte, begann das Skript mit der Aktualisiertung der Ports.

Mit folgendem Befehl kann der Fortschrit des Upgrades mitgelesen werden:

# tail -f /var/tmp/gnome_upgrade_log.<6 zufällige Zeichen>

Nachdem das Skript schon 2 Stunden und 55 Minuten am Aktualisieren war, kam das:

** Listing the failed packages (*:skipped / !:failed)
! multimedia/mplayer-skins (mplayer-skins-1.1.1_1) (checksum mismatch)
! misc/help2man (help2man-1.35.1) (unknown build error)
! textproc/intltool (intltool-0.33) (unknown build error)
! misc/gnome-icon-theme (gnome-icon-theme-2.10.1_1) (configure error)
* multimedia/mplayer (mplayer-gtk-esound-0.99.7_4)
---> Packages processed: 63 done, 0 ignored, 1 skipped and 4 failed
INFO: GNOME upgrade FAILED at Sat Nov 12 01:14:07 CET 2005

Für mplayer konnten nicht die richtigen Dateien heruntergeladen werden, also gleich mplayer deinstalliert:

# pkg_deinstall -R -d -v mplayer-gtk-esound

Die anderen drei Ports, die sich nicht aktualisieren liessen, versuchte ich mit portupgrade -f <portname> manuell zu aktualisieren. Wo dies nicht funktionierte, half ein make deinstall && make reinstall. Danach das gnome_upgrade212.sh wieder gestartet:

# ./gnome_upgrade212.sh -restart /var/tmp/gnome_upgrade_lst.<6 zufällige Zeichen>

Und nach weiteren 4 Stunden und 13 Minuten aktualisieren und total 108 aktualisierten Ports, die lang ersehnte Meldung:

INFO: GNOME upgrade finished successfully at Sat Nov 12 06:17:45 CET 2005

Danach Openoffice mit pkg_add wieder installiert und ebenso mplayer ohne die Skins, die nicht korrekt heruntergeladen werden konnten.

UPDATE: Wie ich gerade gesehen habe, wurden die Ports atk, glib20 und pango als BROKEN markiert. Da scheint sich ein Fehler eingeschlichen zu haben. Habe davon aber noch nichts gemerkt, da hier alles läuft. Mal schauen wo das Problem liegt...

UPDATE 19.11.05: glib20 wurde am 15.November von 2.8.3 auf 2.8.4 aktualisiert, atk und pango sind aber weiterhin als BROKEN markiert.

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
Comments (5)  Permalink

Platz schaffen mit portsclean

Mit der Zeit wird der Platz auf der Festplatte immer kleiner, da kann man zum Beispiel mit pkg_cutleaves die Ports aufräumen oder mit portsclean den Portbaum säubern. Zuerst kann der Portbaum auf den neusten Stand gebracht werden, damit die veralteten Quellcodedateien gelöscht werden können. Dies kann man zum Beispiel mit cvsup machen. Danach einfach folgenden Befehl als root ausführen:

# portsclean -CDP 

-C Löscht alle Arbeitsverzeichnisse aus dem Portbaum

-D Löscht alle veralteten Quellcodedateien aus dem /usr/ports/distfiles Verzeichnis

-P Löscht alle veralteten Pakete aus dem /usr/ports/packages Verzeichnis


Mehr Informationen zu portsclean in der Manpage portsclean(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
Comments (2)  Permalink

mySQL Datenbank sauber herunterfahren und auf Fehler prüfen

Um eine mySQL Datenbank sauber herunterzufahren ist folgender Befehl zu benutzen:

# mysqladmin shutdown -p

Danach muss das mySQL root Passwort eingegeben werden. Mehr Informationen zu mysqladmin mit:

# mysqladmin --help

Mit mysqlcheck kann die Datenbank auf Fehler überprüft werden:

# mysqlcheck -A -e -p

Die Option -A prüft alle vorhandenen Datenbanken und -e führt eine ausführliche Konsistenzüberprüfung durch. Mehr Informationen zu mysqlcheck mit:

# mysqlcheck --help
 Permalink

WEP-verschlüsseltes WLAN mit DHCP nutzen

Um in einem WEP-verschlüsselten WLAN beim Starten eine IP Adresse über DHCP zu erhalten, einfach folgende Zeile in /etc/rc.conf einfügen:

ifconfig_<WLAN Karte>="DHCP"

Danach die Datei /etc/start_if.<WLAN Karte> mit folgendem Inhalt erstellen:

ifconfig <WLAN Karte> wepkey <WEPkey> wepmode on ssid <SSID>

Wichtig: Den WEPkey in Hex angeben und auch das 0x am Anfang des Schlüssels nicht vergessen.

Die Bezeichnung der WLAN Karte ergibt sich aus dem verwendeten Treiber der Karte. Eine Übersicht über alle verfügbaren Netzwerkkarten und deren Bezeichnung kriegt man mit ifconfig -a.

UPDATE 14.11.05: Auf FreeBSD 6.0 hat es einige Änderungen bezüglich wlan und ath, gegenüber FreeBSD 5.4 gegeben.
Hier mehr dazu: http://blog.tigion.de/2005/11/10/wlan-mit-device-ath-unter-freebsd-60/
Danke an Mich für die Informationen.

Folgende Kerneloptionen werden auf FreeBSD 6.0 benötigt:

device wlan
device wlan_wep
/etc/start_if.<WLAN Karte> sieht auf FreeBSD 6.0 so aus:
ifconfig <WLAN Karte> wepkey 1:<WEPkey> wepmode on weptxkey 1 ssid <SSID>
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
Comments (6)  Permalink

Herausfinden zu welchem Port eine Datei gehört

Manchmal ist es ganz nützlich herauszufinden, zu welchem Port eine Datei gehört. Dies kann ganz einfach mit pkg_which gemacht werden.

# pkg_which <Datei> 

Falls ich also wissen will, aus welchem Port pkg_which ist:

# pkg_which pkg_which
portupgrade-20041226_7 portupgrade-20041226_8

Wenn man nach einer Datei sucht, die nicht aus einem Port stammt, ruft pkg_which which(1) auf und durchsucht PATH nach der Datei.

pkg_which befindet sich, wie oben herausgefunden, im sysutils/portupgrade Port. Zum Installieren einfach folgenden Befehl benutzen:

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

Mehr Informationen zu pkg_which in der Manpage pkgdb(1)

UPDATE 05.02.2007:

portupgrade wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portupgrade kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portupgrade && make install clean
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

CPU throttling mit FreeBSD 6.0

Um das CPU throttling mit FreeBSD 6.0 nutzen zu können, einfach das cpufreq Kernelmodul laden:

# kldload cpufreq

Um das Modul direkt beim Hochfahren zu laden, einfach folgenden Eintrag in /boot/loader.conf machen:

cpufreq_load="YES"

In /etc/rc.conf müssen nun die benötigten Variablen gesetzt werden:

powerd_enable="YES"
powerd_flags="-a max -b min"

Danach den powerd Daemon als root starten:

# /etc/rc.d/powerd start

Ist der powerd_enable="YES" Eintrag in /etc/rc.conf gemacht, so wird der powerd Daemon beim Hochfahren automatisch gestartet. Mit der -a max Option läuft die CPU auf der maximalen Frequenz, solange der Laptop am Strom hängt. Mit der Option -b min, läuft die CPU auf der minimalsten Frequenz beim Batteriebetrieb. Statt min kann auch die Option adaptive verwendet werden, um die Taktfrequenz dynamisch der Last anzupassen.

Die aktuelle Frequenz kann mit folgendem Befehl ausgelesen werden:

# sysctl dev.cpu.0.freq 

Mehr Informationen zu powerd in der Manpage powerd(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
Comments (7)  Permalink
1-10/10