Fink

Benutzerhandbuch - 6. Das fink-Tool über die Kommandozeile benutzen

6.1 Das fink-Tool benutzen

Das fink-Tool nutzt verschiedene Befehle als Suffix, um auf Pakete der Source-Distribution angewandt zu werden. Einige benötigen mindestens ein Paketname, aber können auch mit mehrere Paketnamen auf einmal umgehen. Sie können einfach den Paketnamen (z.B. gimp), einen vollständigen, zugelassenen Namen mit der Version (z.B. gimp-1.2.1) oder einen Namen mit Version und Revision (z.B. gimp-1.2.1-3) angeben. Fink wird automatisch die aktuellste, verfügbare Version und Revision aussuchen, falls sie jeweils nicht angegeben sind. Andere haben verschiedene Optionen.

Es folgt eine Auflistung der Befehl für das fink-Tool:

6.2 Globale Optionen

Einige Optionen gelten für alle fink Kommandos. Mit dem Aufruf fink --help erhält man eine Liste dieser Optionen:

(ab fink-0.26.0)

-h, --help - gibt den Hilfetext aus.

-q, --quiet - macht fink weniger geschwätzig, das Gegenteil von --verbose. Es überschreibt die Verbose Option in fink.conf.

-V, --version - gibt die Versionsinformation aus.

-v, --verbose - macht fink geschwätziger, das Gegenteil von --quiet. Es überschreibt die Verbose Option in fink.conf.

-y, --yes - übernehme die voreingestellte Antwort für alle Fragen.

-K, --keep-root-dir - macht, dass fink das Verzeichnis root-[name]-[version]-[revision] im Buildpath nach der Erstellung eines Pakets nicht löscht. Dies entspricht der KeepRootDir Option in fink.conf.

-k, --keep-build-dir - macht, dass fink das Verzeichnis [name]-[version]-[revision] im Buildpath ach der Erstellung eines Pakets nicht löscht. Dies entspricht der KeepBuildDir Option in fink.conf.

-b, --use-binary-dist - lade vorübersetzte Pakete aus der Binärdistribution, wenn verfügbar (d. h. spare Übersetzungszeit und Plattenplatz). Beachten sie bitte, dass fink die Version herunter lädt, die es will und nicht eine auswählt, die eben binär verfügbar ist. Dies entspricht der UseBinaryDist Option in fink.conf.

--no-use-binary-dist - Benutze keine vorübersetzte Pakete aus der Binärdistribution, das Gegenteil der --use-binary-dist Option. Dies ist die Voreinstellung, wenn nicht in der Konfigurationsdatei fink.conf die Option UseBinaryDist: true gesetzt ist.

--build-as-nobody - falle zurück auf einen non-root Nutzer für die unpack, patch, compile and install Phasen. Beachten sie, dass Pakete, die so erstellt wurden, nicht unbedingt funktionieren. Sie sollten diese Modus nur beim Entwickeln und Debugging von Paketen verwenden.

-m, --maintainer - (fink-0.25 und neuer) folgende Aktionen, die für die Maintainer von Paketen hilfriech sind, werden ausgeführt: Validiere vor der Paketerstellung die .info Datei und nach der Paketerstellungn die .deb Datei; behandle bestimmte Warnungen der Erstellungsphase wie fatale Fehler; (fink-0.26 und neuer) durchlaufe die Test Suites wie in dem entsprechenden Feld angegeben. Dies setzt --tests und --validate auf on.

--tests[=on|off|warn] - (fink-0.26.0 und neuer) macht, dass die InfoTest Felder aktiviert werden und die Test Suites, die in TestScript angegeben sind, ausgeführt werden (siehe auch Fink Packaging Manual). Ohne ein Argument für diese Option oder wenn das Argument on ist, dann werden Fehler in den Test Suites während der Paketerstellung wie fatale Fehler behandelt. Ist das Argument warn, werden Fehler wie Warnungen behandelt.

--validate[=on|off|warn] - macht, dass Pakete bei ihrer Erstellung validiert werden. Ohne ein Argument für diese Option oder wenn das Argument on ist, dann werden Fehler in den Test Suites während der Paketerstellung wie fatale Fehler behandelt. Ist das Argument warn, werden Fehler wie Warnungen behandelt.

-l, --log-output - speichere die Terminalausgabe für jeden Prozess der Paketerstellung. Die Voreinstellung ist, die Datei als /tmp/fink-build-log_[name]-[version]-[revision]_[date]-[time] zu speichern, aber mittels --logfile kann man einen alternativen Dateinamen angeben.

--no-log-output - kein Speichern der Terminalausgabe bei der Paketerstellung. Das Gegenteil der --log-output Option. Dies ist die Voreinstellung.

--logfile=filename - abspeichern der Paketerstellungsprotokolls in der Datei mit dem Namen filename und nicht mit der Voreinstellung (siehe die Option --log-output, die implizit mit der Option --logfile gesetzt wird). Sie können Prozent-Erweiterungscodes verwenden, um bestimmte Paketinformationen automatisch einzufügen. Die komplette Liste der Prozent-Erweiterungscodes findet man im Fink Packaging Manual; häufig verwendete Prozent-Erweiterungscodes sind:

-t, --trees=expr - nur Pakete in Bäumen berücksichtigen, die zu expr passen. Das Format des Ausdrucks is eine mit Komma getrennte Liste von Bäumen. Die Bäume in fink.conf werden mit expr verglichen. Nur solche Bäume, die mit einer Spezifikation übereinstimmen, werden von fink berücksichtigt und zwar in der Reihenfolge der Spezifikation, mit der sie als erste übereinstimmen. Ohne die Option --trees werden alle Bäume aus fink.conf der Reihe nach berücksichtigt. Die Spezifikation eines Baums kann das Zeichen "/" enthalten. Dies erfordert eine exakte Übereinstimmung. Andernfalls stimmt es mit dem ersten Pfadelement des Baums überein. Z. B. stimmt --trees=unstable/main nur mit dem Baum unstable/main überein, während --trees=unstable sowohl mit unstable/main als auch mit unstable/crypto überein stimmt. Es gibt magische Spezifikationen, in expr enthalten sein können:

Ausschluss dieser magischen Bäume (oder das Misslingen des Einschlusses) wird derzeit nur für Operationen unterstützt, die keine Pakete installieren oder entfernen.

-T, --exclude-trees=expr Berücksichtige nur Pakete in Bäumen, die nicht mit dem Ausdruck expr übereinstimmen. Die Syntax von expr ist die gleich wie für --trees, einschließlich der magischen Baumspezifikationen. Allerdings werden die Bäume ausgeschlossen. Beachte sie bitte, dass Bäume, die sowohl mit --trees und --exclude-trees überein stimmen, ausgeschlossen werden.

Beispiel für --trees und --exclude-trees:

Die meisten der Optionen sind selbsterklärend. Die meisten können auch in der Konfigurationsdatei von Fink (fink.conf) gesetzt werden, wenn man sie dauerhaft einschlaten möchte und nicht nur für den jeweiligen Aufruf von fink.

6.3 install

Der install-Befehl wird verwendet, um Pakete zu installieren. Es lädt, konfiguriert, erstellt und installiert die Pakete, die Sie angeben. Es installiert auch vorausgesetzte Pakete automatisch, fragt Sie aber davor nach einer Bestätigung. Beispiel:

fink install nedit

Reading package info...
Information about 131 packages read.
The following additional package will be installed:
 lesstif
Do you want to continue? [Y/n]

Die Benutzung der Option --use-binary-dist bei fink install kann den Prozess der Paketerstellung bei komplizierten Paketen erheblich beschleunigen.

Aliases für den Befehl install: update, enable, activate, use (die meisten aus historischen Gründen).

6.4 remove

Der remove-Befehl entfernt Pakete von Ihrem System, wenn Sie 'dpkg --remove' aufrufen. Die aktuelle Implementation hat einige Schwachstellen: es überprüft nicht die Abhängigkeiten selbst, sondern überlässt dies dem dpkg-Tool (allerdings sollte das kein Problem darstellen).

Der remove-Befehl entfernt nur die eigentlichen Dateien, lässt aber die .deb-Datei der komprimierten Pakete unberührt. Das bedeutet, dass Sie die Pakete später wieder installieren können, ohne diese neu kompilieren zu müssen. Wenn Sie den Plattenplatz benötigen, können Sie die .deb-Datei vom /sw/fink/dists-Baum löschen.

Diese Optionen können mit dem Kommando fink remove verwendet werden.

-h,--help             - zeige die verfügbaren Optionen.
        -r,--recursive        - entferne auch die Pakete, die von dem Paket abhängen, das entfernt werden soll (mit anderen Worten: Überwinde das oben dargestellte Problem).

Aliases: disable, deactivate, unuse, delete.

6.5 purge

Das Kommando purge entfernt Pakete aus dem System. Es macht das gleich wie das Kommando remove, außer dass es auch Konfigurationsdateien löscht.

Dieses Kommando akzeptiert die Optionen:

-h,--help
-r,--recursive

.

6.6 update-all

Diese Kommando aktualisiert all instalierten Pakete auf ihre neueste Version. Es benötigt keine Liste der Pakete, sondern man gibt einfach folgendes ein:

fink update-all

--use-binary-dist ist auch bei diesem Kommando nützlich.

6.7 list

Dieser Befehl erstellt eine Liste aller verfügbarer Pakete, mit dem Stand der Installation, die aktuellste Version und eine kurze Beschreibung. Wenn Sie den Befehl ohne Parameter aufrufen, listet fink alle verfügbaren Pakete auf. Sie können auch einen Namen oder eine Shell-Strukur (pattern) übergeben, und fink wird alle passenden Pakete auflisten.

Die erste Spalte zeigt den Installationszustand mit den folgenden Bedeutungen:

    nicht installiert
 i   aktuellste Version ist installiert
(i)  installiert, es ist aber eine aktuellere Version verfügbar
 p  a virtual package provided by a package that is installed

Es gibt auch einige Parameter (flags) für den fink list-Befehl

-h,--help
	  Zeigt die verfügbaren Optionen.
-t,--tab
	  Gibt die Liste in einem durch Tabs getrennten Format aus,
	  was nützlich ist, wenn Sie die Ausgabe durch ein Skript
	  verarbeiten lassen wollen.
-i,--installed
	  Zeigt nur die Pakete, die aktuell installiert sind.
-o,--outdated
	  Zeigt nur die Pakete, die veraltet sind.
-u,--uptodate
	  Zeigt nur die Pakete, die up to date sind.
-n,--notinstalled
	  Zeigt die Pakete, die nicht installiert sind.
-s expr,--section=expr
	  Zeigt nur die Pakete in den Rubriken, die auf den
	  regulären Ausdruck passen.
-m expr,--maintainer=expr
          Show only packages with the maintainer  matching the
          regular expression expr.
-w=xyz,--width=xyz
	  Stellt die Breite der dann so formatierten Ausgabe ein.
	  xyz ist entweder ein numerischer Wert oder auto.
	  auto setzt die Breite auf die Breite des Terminalfensters.
	  Standard ist auto.

Einige Anwendungsbeispiele:

fink list                 - listet alle Packete auf.
fink list bash            - überprüft ob bash in welcher version verfübar ist.
fink list --tab --outdated | cut -f 2 
                          - listet alle die Pakete auf, die veraltet sind.
fink list --section=kde   - listet alle Pakete in der kde-Rubrik auf.
fink list --maintainer=fink-devel
                          - list the packages with no maintainer
fink --trees=unstable list --maintainer=fink-devel
                          - list the packages with no maintainer, but only in the unstable tree.
fink list "gnome*"        - listet alle die Pakete auf, die mit 'gnome' beginnen.

Die Anführungsstriche im letzten Beispiel sind notwendig, um die Shell davon abzuhalten, die Struktur selber zu interpretieren.

6.8 apropos

Dieser Befehl verhält sich fast identisch wie fink list. Der größte merkliche Unterschied ist, dass fink apropos auch die Paketbeschreibungen durchsucht, um Pakete zu finden. Der zweite Unterschied ist, dass der Suchstring angegeben werden muss und nicht optional ist.

fink apropos irc          - listet alle Pakete auf, in denen 'irc' im Namen oder
                            in der Beschreibung vorkommt.
fink apropos -s=kde irc   - wie oben aber auf die kde-Rubrik beschränkt.

6.9 describe

Dieser Befehl gibt eine Beschreibung für das Paket an, welches Sie per Kommandozeile angeben. Beachten Sie, dass nur ein kleiner Teil der Pakete zur Zeit eine Beschreibung hat.

Aliases: desc, description, info

6.10 plugins

Liste die (optionalen) Plugins auf, die für fink zur Verfügung stehen. Derzeit werden der Mechanismus für Benachrichtigungen und der Prüfsummen-Algorithmus für Quell-Tarballs aufgelistet.

6.11 fetch

Lädt die angegebenen Pakete herunter, installiert sie aber nicht. Dieser Befehl lädt die Tarball-Dateien, sogar wenn Sie zuvor heruntergeladen wurden.

Die folgenden Optionen können mit dem Kommando fetch verwendet werden:

-h,--help		Zeigt die verfügbaren Optionen.
-i,--ignore-restrictive	Hole keine Pakete mit der "License: Restrictive".
                      	Nützlich für Spiegelserver, weil einige restriktive Pakete das Spiegeln der Quellen nicht erlauben.
-d,--dry-run		Gib nur Informationen über die Datei(en) aus, die für das Paket herunter geladen würden; lade aber nichts herunter.
-r,--recursive		Hole auch die Pakete, von denen das Paket abhängt.

6.12 fetch-all

Lädt alle Quelldateien herunter. Wie fetch lädt es die Tarball-Dateien auch herunter, sollten sie zuvor schon heruntergeladen worden sein.

Die folgenden Optionen können mit dem Kommando fink fetch-all verwendet werden:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.13 fetch-missing

Lädt all fehlenden Quelldateien herunter. Dieser Befehl lädt nur die Dateien heruntern, die nicht auf dem Computer vorhanden sind.

Die folgenden Optionen können mit dem Kommando fink fetch-missing verwendet werden:

-h,--help
-i,--ignore-restrictive
-d,--dry-run

6.14 build

Erstellt ein Paket, aber installiert es nicht. Wie gewöhnlich werden die Quell-Tarballs heruntergeladen, wenn Sie nicht gefunden werden können. Das Resultat des Befehls ist ein installierbares -deb-Paket, welches Sie später schnell mit dem install-Befehl installieren können. Dieser Befehl wird nichts tun, wenn die .deb-Datei bereits existiert. Beachten Sie, dass die vorausgesetzten Pakete dennoch installiert und nicht nur erstellt werden.

6.15 rebuild

Erstellt ein Paket (wie der build-Befehl), ignoriert und überschreibt aber die vorhandene .deb-Datei. Wenn Sie ein Paket installieren, wird die neu erstellte .deb-Datei auch via dpkg auf Ihr System installiert. Sehr nützlich während der Paketentwicklung.

Die Option --use-binary-dist kann hier verwendet werden.

6.16 reinstall

Wie der Befehl install installiert reinstall ein Paket. Allerdings tut es dies via dpkg, auch wenn es schon installiert ist. Sie können diesen Befehl nutzen, wenn Sie Paketdateien aus Versehen gelöscht haben, und Sie die Standardeinstellungen zurück haben wollen.

6.17 configure

Führt den Konfigurationsprozess noch einmal aus. So können Sie unter anderen Ihre Mirror-Server und Proxy-Einstellungen ändern.

Neu in fink-0.26.0: Wenn gewünscht, können sie mit diesem Kommando auch den unstable Baum einschalten.

6.18 selfupdate

Dieser Befehl automatisiert die Aktualisierung von Fink auf eine neues Release. Es überprüft die Fink-Webseite, um zu sehen, ob eine neue Version verfügbar ist. Wenn dies so ist, lädt es die Paketbeschreibungen und Updates der core-Pakete einschließlich von fink selber. Dieser Befehl kann auf reguläre Releases aktualisieren, es kann aber auch Ihren /sw/fink/dists-Verzeichnisbaum für direktes CVS einrichten. Das bedeutet, dass Sie dann auf die aktuellsten Versionen aller Pakete zugreifen können.

Ist die Option --use-binary-dist eingeschaltet, wird auch die Liste der verfügbaren Pakete in der binären Distribution aktualisiert.

6.19 selfupdate-rsync

Mit diesem Kommando verwendet fink selfupdate rsync, um die Paketliste zu aktualisieren.

Das ist die Empfehlung, um Fink aus den Quellen zu aktualisieren.

Beachte: rsync aktualisiert nur die aktiven Bäume (d.h. ist unstable in fink.conf nicht eingeschaltet, wird die Liste der unstable Pakete nicht aktualisiert.

6.20 selfupdate-cvs

Mit diesem Kommando verwendet fink selfupdate CVS, um die Paketliste zu aktualisieren.

Von der Aktualisierung mit CVS wird abgeraten. Ausnahmen sind Entwickler und Situationen, in denen eine Firewall den Zugriff mit rsync verhindert.

6.21 index

Erneuert den Paket-Zwischenspeicher (Cache). Sie brauchen diesen Befehl normalerweise nicht ausführen, da fink automatisch kontrolliert, wann es aktualisert werden muss.

6.22 validate

Dieser Befehl führt verschiedene Kontrollen über die .info- und .deb-Dateien durch. Paket-Maintainer sollten ihre Paketbeschreibungen und die korrespondierenden Pakete vor dem Hochladen damit überprüfen.

Die folgenden Optionen können verwendet werden:

-h,--help            - Zeigt die verfügbaren optionen.
-p,--prefix          - Simuliert einen alternativen Basispfad für Fink mit dem Prefix (%p) innerhalb der Dateien, die validiert werden.
--pedantic, --no-pedantic
                     - Verhindere die Ausgabe pedantischer Formatwarnungen.
                      --pedantic ist die Voreinstellung.

Aliases: check

6.23 scanpackages

Aktualisiere die apt-get Datenbank der debs Dateien. Dies schliesst die normalerweise die Aktualisierung aller Bäume ein, kann aber auf einen oder mehrere Bäume beschränkt, die als Argument übergeben werden.

6.24 cleanup

Entfernt veraltete und temporäre Dateien und kann damit erheblichen Plattenplatz frei geben. Es können mehrere Modi angegeben werden:

--debs               - Lösche .deb Dateien (übersetzte binäre Paketarchive),
                       wenn sie weder in einer Paketbeschreibungsdatei (.info) im derzeit aktiven Baum vorkommen noch installiert sind.
--sources,--srcs     - Lösche Quelldateien (tarballs, etc.), die von keiner Paketbeschreibungsdatei (.info) im derzeit aktiven Baum benutzt werden.
--buildlocks, --bl   - Lösche alte buildlock Pakete.
--dpkg-status        - Lösche Einträge für Pakete, die nicht aus den dpkg Datenbank "status" installiert sind.
--obsolete-packages  - Versuche alle installierten, aber obsoleten Pakete zu deinstallieren. (neu in fink-0.26.0)
--all                - Alle obigen Modi. (neu in fink-0.26.0)

Ohne Angabe eines Modus ist --debs --sources die Voreinstellung.

Zusätzlich können folgende Modi benutzt werden:

-k,--keep-src        - Verschiebe alte Quelldateien nach /sw/src/old/ anstatt sie zu löschen.
-d,--dry-run         - Gib die namen der Dateien aus, die gelöscht werden würden, aber lösche sie nicht.
-h,--help            - Zeige die verfügbaren Modi und Optionen.

6.25 dumpinfo

Nur in fink Versionen neuer als 0.21.0 verfügbar

Zeigt wie fink die Teile einer .info-Datei analysiert. Verschiedene Felder und Prozentangaben werden gemäß der folgenden Optionen angezeigt:

-h, --help           - Zeigt die verfügbaren Optionen an.
-a, --all            - Zeigt alle Felder der Paketbeschreibungen.
                       Das ist der Standardmodus wenn keine --field
                       oder --percent-Parameter angegeben sind.
-f fieldname,        - Zeigt die angegebenen Feldnamen,
  --field=fieldname    in der gelisteten Reihenfolge.
-p key,              - Zeigt die angegebenen Prozentschlüssel
   --percent=key       in der gelisteten Reihenfolge.
      

6.26 show-deps

Nur in fink-0.23-6 und neuer verfügbar.

Gib für eine Liste von Paketen eine für Menschen lesbare Liste der compile-time (build) Abhängigkeiten und der run-time (installation) Abhängigkeiten aus.