BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Flux CMS Port für FreeBSD auf 1.4.0 aktualisiert

Nachdem gestern Flux CMS 1.4.0 erschienen ist, ist heute der FreeBSD Port aktualisiert worden. Nun läuft auch diese Webseite mit der neusten Version. Neu gibt es jetzt auf chruetertee.ch einige Links. Dies wurde durch Alains "Bookmark Plugin" möglich.
Related Entries:
Flux CMS nun in den FreeBSD Ports
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
 Permalink

Verschiedene Komprimierungsmöglichkeiten

Auf Free- und OpenBSD gibt es verschiedene Komprimierungswerkzeuge.

compress

Nahezu auf jedem unixoiden Betriebssystem verfügbar. Mit compress(1) komprimierte Dateien tragen die Endung .Z.

Eine Datei wird wie folgt mit compress komprimiert und wieder entpackt:

# ls -aol test
-rw-r--r-- 1 beat wheel 3067 24 Jun 10:48 test
# compress test
# ls -aol test.Z
-rw-r--r-- 1 beat wheel 2117 24 Jun 10:48 test.Z
# uncompress test.Z
# ls -aol
-rw-r--r-- 1 beat wheel 3067 24 Jun 10:48 test

Mehrere Dateien müssen zuerst mit tar(1) zu einem Archiv gepackt werden, bevor sie mit compress komprimiert werden können.

compress ist sowohl auf Free- als auch auf OpenBSD im Basissystem verfügbar.

bzip2

Gute Kompressionsrate, dafür dauert das komprimieren länger. Mit bzip2(1) komprimierte Dateien tragen die Endung .bz2.

Eine Datei wird wie folgt mit bzip2 komprimiert und wieder entpackt:

# ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test
# bzip2 test
# ls -aol test.bz2
-rw-r--r-- 1 beat wheel - 1689 24 Jun 10:48 test.bz2
# bunzip2 test.bz2
# ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test

Mehrere Dateien müssen zuerst mit tar(1) zu einem Archiv gepackt werden, bevor sie mit bzip2 komprimiert werden können. Im folgenden Beispiel wird das Verzeichnis Verzeichnis zusammen mit dem ganzen Inhalt komprimiert und mit dem zweiten Befehl wieder entpackt.

# tar -cvpyf Verzeichnis.tar.bz2 Verzeichnis
# tar -xvyf test.tar.bz2

bzip2 ist auf FreeBSD bereits im Basissystem enthalten, auf OpenBSD findet man bzip2 im archivers/bzip2 Port.

gzip

Beliebtes Kompressionsprogramm. Mit gzip(1) komprimierte Dateien tragen die Endung .gz.

Eine Datei wird wie folgt mit gzip komprimiert und wieder entpackt:

# ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test
#gzip test
#ls -aol test.gz
-rw-r--r-- 1 beat wheel - 1529 24 Jun 10:48 test.gz
#gunzip test
#ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test

Mehrere Dateien müssen zuerst mit tar(1) zu einem Archiv gepackt werden, bevor sie mit gzip komprimiert werden können. Im folgenden Beispiel wird das Verzeichnis Verzeichnis zusammen mit dem ganzen Inhalt komprimiert und mit dem zweiten Befehl wieder entpackt.

# tar -cvpzf Verzeichnis.tar.gz Verzeichnis
# tar -xvzf test.tar.gz

gzip ist sowohl auf Free- als auch auf OpenBSD im Basissystem verfügbar.

zip

Um Daten mit Windowsbenutzern auszutauschen, empfiehlt sich zip(1). Mit zip komprimierte Dateien tragen die Endung .zip.

Eine Datei wird wie folgt mit zip komprimiert und wieder entpackt:

# ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test
# zip test.zip test
adding: test (deflated 51%)
# ls -aol test.zip
-rw-r--r-- 1 beat wheel - 1646 24 Jun 11:34 test.zip
# unzip test.zip
Archive: test.zip
replace test? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: test
# ls -aol test
-rw-r--r-- 1 beat wheel - 3067 24 Jun 10:48 test

Mehrere Dateien lassen sich direkt mit zip komprimieren. Im folgenden Beispiel wird das Verzeichnis Verzeichnis zusammen mit dem ganzen Inhalt komprimiert:

# zip -r Verzeichnis.zip Verzeichnis

zip findet man auf Free- und OpenBSD im archivers/zip Port.

 Permalink

OpenBSD Packages aktualisieren

Seit OpenBSD 3.9 lassen sich installierte Packages einfach mit pkg_add(1) aktualisieren:

# pkg_add -ui -F update -F updatedepends

Dabei werden die installierten Packages mit denen verglichen, welche sich in einem Verzeichnis befinden, auf das die PKG_PATH Umgebungsvariable zeigt.

Wird folgende Meldung angezeigt, so wurde PKG_PATH nicht richtig gesetzt.

No packages available in the PKG_PATH

Mann kann PKG_PATH auch gleich beim Aufruf von pkg_add setzen:

# PKG_PATH=ftp://mirror.switch.ch/pub/OpenBSD/3.9/packages/i386 pkg_add -ui -F update -F updatedepends

Im nachfolgenden Beispiel wurden alle Packages auf Aktualisierungen überprüft und dank der -i Option kann der Benutzer entscheiden, ob und auf welche Version ein Package aktualisiert wird. Hier wird dovecot von 1.0-beta3 auf 1.0-beta8 aktualisiert:

# PKG_PATH=ftp://mirror.switch.ch/pub/OpenBSD/3.9/packages/i386 pkg_add -ui -F update -F updatedepends
Candidates for updating dovecot-1.0.beta3 - dovecot-1.0.beta3 dovecot-1.0.beta8
Ambiguous: dovecot-1.0.beta3 could be dovecot-1.0.beta3 dovecot-1.0.beta8
Choose one package
0:
1: dovecot-1.0.beta3
2: dovecot-1.0.beta8
Your choice: 2
Looking for updates: complete
Running the equivalent of pkg_add -r dovecot-1.0.beta8
dovecot-1.0.beta8 (extracting): complete
dovecot-1.0.beta3 (deleting): complete
dovecot-1.0.beta8 (installing): complete
Related Entries:
Aktualität des OpenBSD-Portbaumes überprüfen
Zeit synchronisieren mit ntpd
OpenOffice.org 2.0 auf OpenBSD
OpenBSD von 3.7 auf 3.8 aktualisieren
Dateien unter Free- und OpenBSD mit Flags schützen
 Permalink

Flashplugin 7 für Firefox auf FreeBSD 6.1

Da flashplugin6 wieder aus den Ports entfernt wurde, muss man das flashplugin7 installieren, wenn man nicht auf Flash verzichten möchte.

Folgendermassen hat die Installation auf FreeBSD 6.1 funktioniert:

# cd /usr/ports/www/firefox && make install clean
# cd /usr/ports/www/linuxpluginwrapper && make install clean
# cd /usr/ports/www/linux-flashplugin7 && make install clean
# cd /usr/src
# fetch http://people.FreeBSD.org/~nork/rtld_dlsym_hack.diff
# patch < rtld_dlsym_hack.diff
# cd libexec/rtld-elf
# make clean && make obj && make depend && make && make install
# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD6 /etc/libmap.conf
# ln -s /usr/X11R6/lib/linux-flashplugin7/libflashplayer.so /usr/X11R6/lib/browser_plugins/libflashplayer.so

Quellen:

http://lists.freebsd.org/pipermail/freebsd-questions/2006-May/122903.html
http://lists.freebsd.org/pipermail/freebsd-questions/2006-May/122941.html

Update 04.09.2006

Scheinbar funktioniert obige Methode mit einem aktuellen Portbaum nicht mehr. Folgendermassen sollte die Installation nun wieder funktionieren:

# cd /usr/ports/www/firefox && make install clean
# cd /usr/ports/www/linuxpluginwrapper && make install clean
# cd /usr/ports/www/linux-flashplugin7 && make install clean
# cd /usr/src
# fetch http://people.FreeBSD.org/~nork/rtld_dlsym_hack.diff
# patch < rtld_dlsym_hack.diff
# cd libexec/rtld-elf
# make clean && make obj && make depend && make && make install
# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD6 /etc/libmap.conf
# ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so /usr/X11R6/lib/browser_plugins/libflashplayer.so
# ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt /usr/X11R6/lib/browser_plugins/flashplayer.xpt

Danach folgende Zeile in der /etc/libmap.conf

[/usr/X11R6/lib/linux-flashplugin7/libflashplayer.so]

in Folgende ändern:

[/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]
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

Portabhängigkeiten graphisch darstellen

Die Abhängigkeiten eines Ports lassen sich mit einem make all-depends-list im Portverzeichnis anzeigen:

# cd /usr/ports/devel/porttools && make all-depends-list
/usr/ports/devel/portlint
/usr/ports/textproc/cdiff
/usr/ports/security/sudo
/usr/ports/devel/newfile
/usr/ports/lang/perl5.8
/usr/ports/lang/ruby18
/usr/ports/security/openssl

Möchte man jetzt wissen, wie diese Ports voneinander abhängen, so kann man dies mit pkg_tree(7) anzeigen lassen.

# pkg_tree [-v] <Portname>

Benutzt man pkg_tree ohne Optionen, werden nur die Abhängigkeiten eines Ports angezeigt. Zum Beispiel:

# pkg_tree porttools
porttools-0.77
|\__ sudo-1.6.8.12_1
|\__ ruby-1.8.4_4,1
|\__ perl-5.8.8
|\__ portlint-2.9.0
|\__ openssl-0.9.8a
|\__ newfile-1.0.14_1
\__ cdiff-1.4_1

Benutzt man die -v Option, werden auch die Abhängigkeiten der Abhängigkeiten dargestellt:

# pkg_tree -v porttools
porttools-0.77
|\__ sudo-1.6.8.12_1
|\__ ruby-1.8.4_4,1
|\__ perl-5.8.8
|\__ portlint-2.9.0
| \__ perl-5.8.8
|\__ openssl-0.9.8a
|\__ newfile-1.0.14_1
| |\__ openssl-0.9.8a
| \__ ruby-1.8.4_4,1
\__ cdiff-1.4_1
\__ perl-5.8.8

pkg_tree kann einfach über den Portbaum installiert werden:

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

UPDATE 05.02.2007:

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

# cd /usr/ports/ports-mgmt/pkg_tree && 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

Mehrere WEP-verschlüsselte WLAN's mit DHCP nutzen

Arbeitet man mit einem Laptop nur in einem WEP-verschlüsselten WLAN, so kann man dieses einfach mit einer start_if Datei konfigurieren. Arbeitet man hingegen in mehreren WLAN's, so ist diese Variante nicht geeignet. Dies kann jedoch mit wpa_supplicant(8) gelöst werden. Zuerst muss die Datei /etc/wpa_supplicant.conf angelegt werden. Darin werden die verschiedenen WLAN's konfiguriert:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
ssid="<SSID Netz 1>"
scan_ssid=1
key_mgmt=NONE
wep_tx_keyidx=0
wep_key0=<WEP Schlüssel Netz 1>
}

network={
ssid="<SSID Netz 2>"
scan_ssid=1
key_mgmt=NONE
wep_tx_keyidx=0
wep_key0=<WEP Schlüssel Netz 2>
}

Hier können nun beliebig viele WLAN Netze eingetragen werden und das jeweils verfügbare Netz wird dann genommen. Mit wpa_supplicant lassen sich auch WPA Netze konfigurieren. Alle Konfigurationsmöglichkeiten der wpa_supplicant.conf sind in der Manpage wpa_supplicant.conf(5) ausführlich beschrieben.

Danach muss die WLAN Karte nur noch in der /etc/rc.conf eingetragen werden:

ifconfig_<WLAN Karte>="DHCP wpa"

Um wpa_supplicant nutzen zu können, muss FreeBSD 6.0 oder neuer installiert sein.

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

Portspezifische Makevariablen setzen

Mit portconf ist es möglich, jedem Port gewisse Makevariablen zuzuweisen. portconf kann wie folgt installiert werden:

# cd /usr/ports/sysutils/portconf && make install

Dabei wird die /etc/make.conf um einige Zeilen erweitert, welche allerdings nicht editiert werden sollten. Danach können in /usr/local/etc/ports.conf die gewünschten Variablen gesetzt werden. Zum Beispiel:

editors/openoffice*: WITH_CCACHE|LOCALIZED_LANG=de
java/eclipse: WITH_MOZILLA=firefox
www/apache2*: WITH_SSL_MODULES=yes | WITH_DAV_MODULES=yes
www/firefox-i18n: WITHOUT_SWITCHER | FIREFOX_I18N=de en
x11/fakeport: CONFIGURE_ARGS=--with-modules="aaa bbb ccc"

Mehrere Optionen können mit Pipe getrennt werden. Die Konfigurationen, die mit portconf definiert werden, werden von portmaster, portupgrade, portmanager und make install berücksichtigt.

Da portconf erst seit dem 8 Juni 2006 in den Ports ist, muss evtl. vor dem Installieren der Portbaum auf den aktuellen Stand gebracht werden.

UPDATE 05.02.2007:

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

# cd /usr/ports/ports-mgmt/portconf && 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

Rechnen auf der Kommandozeile

Auf der Kommandozeile kann man mit Hilfe von bc(1) auch Rechnen. Rechnet man mit Kommazahlen, sollte man die -l Option benutzen, so werden 20 Nachkommastellen angezeigt, ohne -l werden keine angezeigt. Ruft man bc auf, so kann man danach seine Rechnung eingeben und nach einem Enter wird das Ergebnis angezeigt. Danach kann eine weitere Rechnung eingebeben werden. bc kann mit quit, exit oder Ctrl + d beendet werden.

# bc -l
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
sqrt((3+2-1)*(9/3)-3)
3.00000000000000000000
9/4
2.25000000000000000000
10/3
3.33333333333333333333
exit

Die Operatoren + - * / sollten selbsterklärend sein, sqrt() ist die Quadratwurzel, ^ ist das Potenzzeichen, also 2^3 bedeutet 2 hoch 3:

# echo "2^3" | bc 
8

Hier sieht man, wie man eine Rechnung mittels Pipe an bc übergeben kann.

Auch Modulo-Operationen lassen sich mit % machen. Dabei sollte man allerdings auf die -l Option verzichten:

# echo "9%5" | bc 
4

Mit bc lässt sich noch viel mehr machen, dies ist ausführlich in bc(1) beschrieben.

 Permalink
1-8/8