BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Status eines cvsup-Checkouts überprüfen

Mit Hilfe von cvsupchk kann ein cvsup-Checkout nach fehlenden oder zusätzlichen Dateien durchsucht werden. Im FreeBSD-Portbaum findet man cvsupchk unter net/cvsupchk:

# cd /usr/ports/net/cvsupchk && make install clean

Benutzer von pkgng können cvsupchk wie folgt installieren:

# pkg install cvsupchk

Mit der -d Option wird das CVS-Rootverzeichnis angegeben und die -c Option gibt an, dass der checkout-Mode von cvsup verwendet wurde. Danach muss noch die Sup-Datei von cvsup angegeben werden. Im folgenden Beispiel wird ein FreeBSD-Portbaum, welcher von einer Tinderbox verwendet wird, überprüft:

# cvsupchk -d /usr/local/tinderbox/portstrees/FreeBSD -c /usr/local/tinderbox/portstrees/FreeBSD/sup/ports-all/checkouts.cvs:.
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/deskutils/qorganizer/qorganizer-3.1.tbz
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/devel/libpthread-stubs/.#Makefile.1.5
MISSING: /usr/local/tinderbox/portstrees/FreeBSD/ports/devel/subversion/files/patch-build--ltmain.sh
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/devel/subversion/files/patch-build-outputs.mk
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/devel/subversion/files/patch-build-outputs.mk,v
MISSING: /usr/local/tinderbox/portstrees/FreeBSD/ports/devel/subversion/files/patch-build--ltmain.sh,v
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/editors/code-browser/files
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/editors/p5-Padre/files/CVS
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/editors/p5-Padre/CVS
EXTRA: /usr/local/tinderbox/portstrees/FreeBSD/ports/ftp/curl/.#Makefile
[...]

Mehr Informationen zu cvsupchk findet man im FreeBSD-Handbuch.

 Permalink

Grösse von png-Bilder verkleinern

Möchte man die Grösse von png-Bilder verkleinern, kann pngcrush dazu verwendet werden. Im FreeBSD-Portbaum findet man pngcrush unter graphics/pngcrush:

# cd /usr/ports/graphics/pngcrush && make install clean

Benutzer von pkgng können pngcrush wie folgt installieren:

# pkg install pngcrush

Mit der -e Option kann der Suffix der verkleinerten Datei angegeben werden, danach optimiert pngcrush die png-Datei und speichert die verkleinerte Datei mit dem entsprechenden Suffix:

# pngcrush -e -opt.png photo.png

 | pngcrush 1.7.24
 |    Copyright (C) 1998-2002,2006-2012 Glenn Randers-Pehrson
 |    Portions copyright (C) 2005       Greg Roelofs
 | This is a free, open-source program.  Permission is irrevocably
 | granted to everyone to use this version of pngcrush without
 | payment of any fee.
 | Executable name is pngcrush
 | It was built with libpng version 1.4.11, and is
 | running with  libpng version 1.4.11 - March 29, 2012

 |    Copyright (C) 1998-2004, 2006-2012 Glenn Randers-Pehrson,
 |    Copyright (C) 1996, 1997 Andreas Dilger,
 |    Copyright (C) 1995, Guy Eric Schalnat, Group 42 Inc.,
 | and zlib version 1.2.5, Copyright (C) 1995-2010 (or later),
 |    Jean-loup Gailly and Mark Adler.
 | It was compiled with gcc version 4.2.1 20070831 patched [FreeBSD].

   Recompressing photo.png
   Total length of data found in IDAT chunks    =   169558
   IDAT length with method   1 (fm 0 zl 4 zs 0) =   113517
   IDAT length with method   2 (fm 1 zl 4 zs 0) =   128112
   IDAT length with method   3 (fm 5 zl 4 zs 1) =   182436
   IDAT length with method   4 (fm 0 zl 9 zs 1) =   119126
   IDAT length with method   7 (fm 0 zl 9 zs 0) =    95461
   Best pngcrush method = 7 (fm 0 zl 9 zs 0)
for photo-opt.png
     (43.70% IDAT reduction)
     (42.80% filesize reduction)

   CPU time decoding 0.117, encoding 0.273, other 0.031, total 0.422 seconds

# ls -lart *png
-rw-r--r--  1 beat  beat  173775 Jun  2 20:11 photo.png
-rw-r--r--  1 beat  beat   99406 Jun  2 20:14 photo-opt.png

Mehr Informationen zu pngcrush erhält man mit der -h Option.

 Permalink

Alte FreeBSD-Port Patchdateien aufsplitten

Alte Patchdateien im FreeBSD-Portbaum enthalten nicht den Dateinamen der zur patchenden Datei in der Patchbezeichnung sondern einen Namen im Stile von patch-aa, patch-ab usw. Auch ist es möglich dass eine solche Datei mehrere Dateien patcht. Mit Hilfe des ports/Tools/scripts/splitpatch.pl Skriptes lassen sich solche Patches in einzelne Dateien aufsplitten und richtig benennen:

# pwd
/usr/ports/www/mod_ruby/files
# ls -l
total 10
-rw-r--r--  1 root  wheel  5494 18 Feb  2010 patch-aa-git
-rw-r--r--  1 root  wheel   631 18 Feb  2010 patch-connection.c
-rw-r--r--  1 root  wheel   473 22 Apr  2002 patch-httpd.conf
# /usr/ports/Tools/scripts/splitpatch.pl patch-aa-git
Wrote patch-Makefile.in
Wrote patch-autoconf.rb
Wrote patch-configure.rb
Wrote patch-lib__apache__erb-run.rb
Wrote patch-lib__apache__eruby-run.rb
Wrote patch-lib__apache__ruby-run.rb
Wrote patch-mod_ruby.c
Wrote patch-request.c
# rm patch-aa-git 
# ls -l
total 20
-rw-r--r--  1 root  wheel   568 26 Mai 00:24 patch-Makefile.in
-rw-r--r--  1 root  wheel  1011 26 Mai 00:24 patch-autoconf.rb
-rw-r--r--  1 root  wheel  1031 26 Mai 00:24 patch-configure.rb
-rw-r--r--  1 root  wheel   631 18 Feb  2010 patch-connection.c
-rw-r--r--  1 root  wheel   473 22 Apr  2002 patch-httpd.conf
-rw-r--r--  1 root  wheel   400 26 Mai 00:24 patch-lib__apache__erb-run.rb
-rw-r--r--  1 root  wheel   417 26 Mai 00:24 patch-lib__apache__eruby-run.rb
-rw-r--r--  1 root  wheel   639 26 Mai 00:24 patch-lib__apache__ruby-run.rb
-rw-r--r--  1 root  wheel   463 26 Mai 00:24 patch-mod_ruby.c
-rw-r--r--  1 root  wheel   908 26 Mai 00:24 patch-request.c
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
FreeBSD-Portbaum auf Fehler überprüfen
FreeBSD-Dokumentation auf bekannte Fehler prüfen
 Permalink

Videos aus dem Web herunterladen

Möchte man ein Video zum Beispiel von youtube herunterladen damit man es sich später zum Beispiel offline anschauen kann, kann man dazu cclive verwenden. Im FreeBSD-Portbaum findet man cclive unter multimedia/cclive:

# cd /usr/ports/multimedia/cclive && make install clean

Benutzer von pkgng können cclive wie folgt installieren:

# pkg install cclive

Nun kann die URL der Seite mit dem Video an cclive übergeben werden und der Video wird danach heruntergeladen:

# cclive "http://www.youtube.com/watch?v=nNkqKdLm1rU" 
Checking ... .......... ........ ..........done.
How the FreeBSD Project Works.webm.0  66.70M  [video/webm]
[###############################################]  100%  66.7M  449.3K/s  00:02:32
# ls How*
How the FreeBSD Project Works.webm

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

Comments (1)  Permalink

Pastebin aus der Kommandozeile verwenden

Mit Hilfe von wgetpaste lassen sich Dateien von der Kommandozeile her auf einen Pastebin-Service hochladen. Im FreeBSD-Portsbaum findet man wgetpaste unter www/wgetpaste:

# cd /usr/ports/www/wgetpaste && make install clean

Alle verfügbaren Pastebin-Services können mit der -S Option angezeigt werden:

# wgetpaste -S
Services supported: (case sensitive):
Name:        | Url:
=============|=================
ca           | http://pastebin.ca/
codepad      | http://codepad.org/
dpaste       | http://dpaste.com/
poundpython  | http://paste.pound-python.org/
zlin         | http://zlin.dk/p/
*gists       | https://api.github.com/gists

Nun kann eine gewünschte Datei mit Hilfe von wgetpaste hochgeladen werden. Mit Hilfe der -s Option kann der zu verwendende Pastebin-Service angegeben werden:

# wgetpaste -s ca <hochzuladende Datei>
Your paste can be seen here: http://pastebin.ca/2148134

Anschliessend wird eine URL ausgegeben die auf die hochgeladene Datei zeigt. Alle Optionen von wgetpaste erhält man mit der -h Option.

Comments (3)  Permalink

pkgng-Pakete mit poudriere bauen

Mit Hilfe von poudriere lassen sich ähnlich wie bei Tinderbox Ports testen und Pakete erstellen. Im Gegensatz zu Tinderbox benötigt poudriere keine zusätzliche Software wie eine Datenbank usw. sondern verwendet nur Funktionen des Basissystems (z.B. ZFS und Jails). Im FreeBSD-Portsbaum findet man poudriere unter ports-mgmt/poudriere:

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

Für poudriere benötigt man einen zpool welcher in folgendem Beispiel den Namen tank hat:

# zpool list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
tank  19.9G  1.23G  18.6G     6%  1.00x  ONLINE  -

Nun kan die poudriere-Konfiguration angelegt werden. Dabei muss der Name des zpool's den man verwenden möchte und ein FTP-Server angegeben werden. Weiter wird noch der Ort angegeben wo sich die resolv.conf der Jails befindet:

# vi /usr/local/etc/poudriere.conf
ZPOOL=tank
FTPHOST=ftp.ch.freebsd.org
RESOLV_CONF="/usr/local/etc/poudriere.d/resolv.conf"

Anschliessend erstellt man die entsprechende resolv.conf:

# mkdir /usr/local/etc/poudriere.d/
# vi /usr/local/etc/poudriere.d/resolv.conf

Als nächstes muss eine Jail erstellt werden. Im folgenden Beispiel wird eine FreeBSD 8.2 Jail für amd64 erstellt welche den Namen 82amd64 erhält. Die entsprechenden Daten werden danach vom FTP-Server heruntergeladen:

# poudriere jail -c -v 8.2-RELEASE -a amd64 -j 82amd64

Als nächstes wird der Portsbaum erstellt welcher mit portsnap angelegt wird:

# poudriere ports -c

Standardmässig baut poudriere normale FreeBSD-Pakete. Möchte man Pakete für pkgng erstellen, wird dies in der make.conf für die entsprechende Jail eingetragen:

# echo "WITH_PKGNG=yes" > /usr/local/etc/poudriere.d/82amd64-make.conf

Nun werden alle Ports für die man Pakete bauen möchte in einer Datei eingetragen:

# echo "www/firefox" > ~/pkglist
# echo "mail/thunderbird" >> ~/pkglist

Anschliessend werden diese Ports gebaut:

# poudriere bulk -f ~/pkglist -j 82amd64

Die fertigen Pakete werden danach unter /usr/local/poudriere_data/packages und dem entsprechenden Jail-Namen in einer Verzeichnisstruktur angelegt welche mit den offiziellen FTP-Servern übereinstimmt, so dass man diese auf einem Web- oder FTP-Server freigeben kann und diese danach zum Beispiel mit pkg_add oder portmaster verwenden kann. Hat man pkgng-Pakete gebaut wird zugleich noch eine Repository-Datei erstellt, so dass diese die Verzeichnisstruktur auch als pkgng-Repository verwendet werden kann:

# cd /usr/local/poudriere_data/packages/82amd64-default
# ls -l repo.txz 
-rw-r--r--  1 root  wheel  1580 May  5 13:28 repo.txz

Poudriere enthält noch viele weitere Funktionalitäten und Möglichkeiten welche in der Manpage poudriere(8) beschrieben sind.

 Permalink

DNS-Zonendatei auf Fehler überprüfen

Mit Hilfe von validns lässt sich eine DNS-Zonendatei auf Fehler überprüfen. Im FreeBSD-Portbaum findet man validns unter dns/validns:

# cd /usr/ports/dns/validns && make install clean

Stellt validns in der Zonendatei einen Fehler fest, so wird eine entsprechende Fehlermeldung ausgegeben. Wird nichts angezeigt, hat validns keinen Fehler gefunden: 

# validns /etc/namedb/master/chruetertee.ch
chruetertee.ch-zone:17: invalid or unsupported rdtype ax
# validns /etc/namedb/master/chruetertee.li
#

Mehr Informationen zu validns findet man in der Manpage validns(1).

 Permalink

Partitionsinformationen graphisch anzeigen

Mit Hilfe von dfc lassen sich Informationen zu Partitionen graphisch darstellen. Im FreeBSD-Portbaum findet man dfc unter sysutils/dfc:

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

Führt man dfc aus, wird der benutzte und freie Speicherplatz graphisch dargestellt:

# dfc 
FILESYSTEM  (=) USED      FREE (-) %USED AVAILABLE     TOTAL MOUNTED ON 
/dev/da0s1a [========------------]   35%    559.5M    989.2M /
devfs       [====================]  100%        0B      1.0K /dev
/dev/da0s1d [=====---------------]   22%    689.0M    989.2M /tmp
/dev/da0s1f [================----]   77%      3.6G      2.8G /usr
/dev/da0s1e [=============-------]   61%    621.1M      1.9G /var

Mit der -i Option werden zusätzlich Informationen zu den Inodes angezeigt. Durch die -s Option wird das Total aller Partitionen angezeigt und die -o Optionen zeigt die Mount-Optionen der Partitionen an:

# dfc -i -s -o
FILESYSTEM  (=) USED      FREE (-) %USED AVAILABLE     TOTAL   #INODES AV.INODES MOUNTED ON MOUNT OPTIONS
/dev/da0s1a [========------------]   35%    559.5M    989.2M      141k        0k /          rw
devfs       [====================]  100%        0B      1.0K        0k        0k /dev       rw
/dev/da0s1d [=====---------------]   22%    689.0M    989.2M      141k        0k /tmp       rw,noexec
/dev/da0s1f [================----]   77%      3.6G      2.8G    35634k        0k /usr       rw
/dev/da0s1e [=============-------]   61%    621.1M      1.9G      282k        0k /var       rw,noexec,nosuid
SUM:        [============--------]   58%      5.4G      6.7G

Mehr Informationen zu dfc findet man in der Manpage dfc(1).

Comments (3)  Permalink

PDF Datei aus einer Textdatei generieren

Mit Hilfe von ascii2pdf kann eine PDF-Datei aus einer Textdatei generiert werden. Im FreeBSD-Portbaum findet man ascii2pdf unter textproc/ascii2pdf:

# cd /usr/ports/textproc/ascii2pdf && make install clean

Nun kann aus einer Textdatei ein PDF generiert werden:

# ascii2pdf textdatei
# ls -1 textdatei.pdf 
textdatei.pdf

Soll das PDF im Querformat erstellt werden, kann die -l Option verwendet werden. Mit der -p Option wird die gewünschte Zeichengrösse angegeben werden:

# ascii2pdf -l -p 14 textdatei

Mehr Informationen zu ascii2pdf erhält man mit der -h Option.

 Permalink

Verzeichnisse rekursiv löschen

Mit Hilfe der -p Option von mkdir(1) lassen sich Verzeichnisse rekursiv erstellen. Genau gleich können mit der -p Option von rmdir Verzeichnisse rekursiv gelöscht werden solange sich in einem der Verzeichnisse keine Dateien befinden:

# mkdir -p foo/bar/mitz
# touch foo/datei
# rmdir -p foo/bar/mitz
rmdir: foo: Directory not empty
# ls foo/
datei

Mehr Informationen zu rmdir findet man in der Manpage rmdir(1).

 Permalink
Prev Next11-20/521