BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Label- und Partitionseditor von sysinstall verwenden

Seit FreeBSD 6.3 kann der Label- und Partitionseditor von systinstall (sade) auch nach der Installation auf der Kommandozeile verwendet werden:

# sade

Mehr Informationen zu sade findet man in der Manpage sade(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

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

Sonderzeichen aus Dateinamen entfernen

Mit Hilfe von detox können Sonderzeichen automatisch aus Dateinamen entfernt und Leerzeichen durch Unterstriche ersetzt werden. Im FreeBSD -Portbaum findet man detox unter sysutils/detox:

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

Nun kann detox auf eine Datei mit Leer- und Sonderzeichen angewendet werden, welche automatisch ersetzt oder entfernt werden:

# ls
test öäü !?_test
# detox test\ öäü\ \!\?_test 
# ls
test_oau_test

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

 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

Alle Fragen eines Programms mit Ja beantworten

Führt man ein Programm aus, welches Eingaben des Benutzers erwartet, so kann dieses nicht ohne weiteres unbeaufsichtigt ausgeführt werden:

# programm
[...]
Do you want to continue [y/n]?
Are you sure [y/n]?
[...]

Können jedoch alle Fragen mit y beantwortet werden, so können diese automatisch mit yes beantwortet werden:

# yes | programm

Sollen alle Fragen zum Beispiel mit n beantwortet werden, so können diese auch mit Hilfe von yes beantwortet werden:

# yes n | programm

Auf FreeBSD ist yes standardmässig im Basissystem vorhanden. Mehr Informationen zu yes findet man in der Manpage yes(1).

 Permalink

Kopie eines Subversion Archives erstellen

Mit Hilfe von rsvndump kann ein Subversion-Archiv kopiert werden, ohne dass man Zugriff zum Archiv via svnadmin dump hat. Im FreeBSD Portbaum findet man rsvndump unter devel/rsvndump:

# cd /usr/ports/devel/rsvndump && make install clean

Nun kann die URL zum Subversion-Archiv an rsvndump übergeben werden. Mit der -u und der -p Option ein Benutzernamen und ein Passwort angegeben werden, dass benötigt wird um auf das Subversion Archiv zuzugreifen:

# rsvndump https://trillian.chruetertee.ch/svn/freebsd-gecko > freebsd-gecko-svn.dump
* Dumped revision 0.
* Dumped revision 1.
[...]
* Dumped revision 317.

Nun kann das Archiv mit Hilfe von svnadmin load an einem neuen Ort eingelesen werden:

# svnadmin create freebsd-gecko
# svnadmin load freebsd-gecko < freebsd-gecko-svn.dump
<<< Started new transaction, based on original revision 1
     * adding path : trunk ... done.
     * adding path : branches ... done.
     * adding path : tags ... done.

------- Committed revision 1 >>>

<<< Started new transaction, based on original revision 2
     * adding path : trunk/www ... done.
     * adding path : trunk/Mk ... done.

------- Committed revision 2 >>>

<<< Started new transaction, based on original revision 3
     * adding path : trunk/www/firefox ... done.
     * adding path : trunk/www/firefox/distinfo ... done.
     * adding path : trunk/www/firefox/pkg-descr ... done.
     * adding path : trunk/www/firefox/files ... done.
     * adding path : trunk/www/firefox/files/patch-xptcall-sparc64 ... done.
     * adding path : trunk/www/firefox/files/patch-ff-414540 ... done.
     * adding path : trunk/www/firefox/files/patch-xptcall-alpha ... done.
     * adding path : trunk/www/firefox/files/patch-ff-460425 ... done.
     * adding path : trunk/www/firefox/files/patch-ff-331088 ... done.
     * adding path : trunk/www/firefox/files/patch-ff-380418 ... done.
[...]

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

 Permalink
1-7/7