BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

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
1-4/4