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:
- %n - Paketname
- %v - Paketversion
- %r - Paketrevision
-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:
- status - Pakete aus der dpkg status Datenbank.
- virtual - Alle virtuellen Pakete, die die Fähigkeiten des Systems wiedergeben.
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:
fink --trees=stable,virtual,status install foo
Installiere foo wie wenn
fink
den stable Baum benutzt würde, selbst wenn der unstable Baum infink.conf
eingeschaltet ist.fink --exclude-trees=local install foo
Installiere die Version von foo in Fink und nicht die lokal modifizierte Version.
fink --trees=local/main list -i
Liste die lokal modifizierten Pakete auf, die installiert sind.
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 /opt/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 /opt/sw/fink/dists
-Verzeichnisbaum für direktes Git 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-git
Mit diesem Kommando verwendet fink selfupdate
Git, um die Paketliste zu aktualisieren.
Von der Aktualisierung mit Git 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 /opt/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.