Nächste: guix size
aufrufen, Vorige: guix style
aufrufen, Nach oben: Zubehör [Inhalt][Index]
guix lint
aufrufenDen Befehl guix lint
gibt es, um Paketentwicklern beim Vermeiden
häufiger Fehler und bei der Einhaltung eines konsistenten Code-Stils zu
helfen. Er führt eine Reihe von Prüfungen auf einer angegebenen Menge von
Paketen durch, um in deren Definition häufige Fehler aufzuspüren. Zu den
verfügbaren Prüfern gehören (siehe --list-checkers für eine
vollständige Liste):
synopsis
description
Überprüfen, ob bestimmte typografische und stilistische Regeln in Paketbeschreibungen und -zusammenfassungen eingehalten wurden.
inputs-should-be-native
Eingaben identifizieren, die wahrscheinlich native Eingaben sein sollten.
source
home-page
mirror-url
github-url
source-file-name
Die URLs für die Felder home-page
und source
anrufen und nicht
erreichbare URLs melden. Wenn passend, wird eine mirror://
-URL
vorgeschlagen. Wenn die Quell-URL auf eine GitHub-URL weiterleitet, wird
eine Empfehlung ausgegeben, direkt letztere zu verwenden. Es wird geprüft,
dass der Quell-Dateiname aussagekräftig ist, dass er also z.B. nicht nur
aus einer Versionsnummer besteht oder als „git-checkout“ angegeben wurde,
ohne dass ein Dateiname
deklariert wurde (siehe origin
-Referenz).
source-unstable-tarball
Analysiert die source
-URL, um zu bestimmen, ob der Tarball von GitHub
automatisch generiert wurde oder zu einer Veröffentlichung gehört. Leider
werden GitHubs automatisch generierte Tarballs manchmal neu generiert.
derivation
Prüft, ob die Ableitung der angegebenen Pakete auf allen unterstützten Systmen erfolgreich berechnet werden kann (siehe Ableitungen).
profile-collisions
Prüft, ob die Installation der angegebenen Pakete in ein Profil zu
Kollisionen führen würde. Kollisionen treten auf, wenn mehrere Pakete mit
demselben Namen aber anderer Versionsnummer oder anderem Store-Dateinamen
propagiert werden. Siehe propagated-inputs
für weitere Informationen zu propagierten Eingaben.
archival
¶Überprüft, ob der Quellcode des Pakets bei der Software Heritage archiviert ist.
Wenn der noch nicht archivierte Quellcode aus einem Versionskontrollsystem
(„Version Control System“, VCS) stammt, wenn er also z.B. mit
git-fetch
bezogen wird, wird eine Anfrage an Software Heritage
gestellt, diesen zu speichern („Save“), damit sie ihn irgendwann in deren
Archiv aufnehmen. So wird gewährleistet, dass der Quellcode langfristig
verfügbar bleibt und Guix notfalls auf Software Heritage zurückgreifen kann,
falls der Quellcode bei seinem ursprünglichen Anbieter verschwindet. Der
Status kürzlicher Archivierungsanfragen kann
online eingesehen
werden.
Wenn der Quellcode in Form eines über url-fetch
zu beziehenden
Tarballs vorliegt, wird bloß eine Nachricht ausgegeben, wenn er nicht
archiviert ist. Zum Zeitpunkt, wo dies geschrieben wurde, ermöglicht
Software Heritage keine Anfragen, beliebige Tarballs zu archivieren; wir
arbeiten an Möglichkeiten wie auch nicht versionskontrollierter
Quellcode archiviert werden kann.
Software Heritage
beschränkt,
wie schnell dieselbe IP-Adresse Anfragen stellen kann. Ist das Limit
erreicht, gibt guix lint
eine Mitteilung aus und der
archival
-Prüfer steht so lange still, bis die Beschränkung wieder
zurückgesetzt wurde.
cve
¶Bekannte Sicherheitslücken melden, die in den Datenbanken der „Common Vulnerabilities and Exposures“ (CVE) aus diesem und dem letzten Jahr vorkommen, wie sie von der US-amerikanischen NIST veröffentlicht werden.
Um Informationen über eine bestimmte Sicherheitslücke angezeigt zu bekommen, besuchen Sie Webseiten wie:
https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD
’
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD
’
wobei Sie statt CVE-YYYY-ABCD
die CVE-Kennnummer angeben –
z.B. CVE-2015-7554
.
Paketentwickler können in ihren Paketrezepten den Namen und die Version des Pakets in der Common Platform Enumeration (CPE) angeben, falls sich diese von dem in Guix benutzten Namen und der Version unterscheiden, zum Beispiel so:
(package
(name "grub")
;; …
;; CPE bezeichnet das Paket als "grub2".
(properties '((cpe-name . "grub2")
(cpe-version . "2.3"))))
Manche Einträge in der CVE-Datenbank geben die Version des Pakets nicht an, auf das sie sich beziehen, und würden daher bis in alle Ewigkeit Warnungen auslösen. Paketentwickler, die CVE-Warnmeldungen gefunden und geprüft haben, dass diese ignoriert werden können, können sie wie in diesem Beispiel deklarieren:
(package
(name "t1lib")
;; …
;; Diese CVEs treffen nicht mehr zu und können bedenkenlos ignoriert
;; werden.
(properties `((lint-hidden-cve . ("CVE-2011-0433"
"CVE-2011-1553"
"CVE-2011-1554"
"CVE-2011-5244")))))
formatting
Offensichtliche Fehler bei der Formatierung von Quellcode melden, z.B. Leerraum-Zeichen am Zeilenende oder Nutzung von Tabulatorzeichen.
input-labels
Eingabebezeichnungen im alten Stil melden, die nicht dem Namen des damit
assoziierten Pakets entsprechen. Diese Funktionalität soll bei der Migration
weg vom „alten Eingabenstil“ helfen. Siehe package
-Referenz, um mehr
Informationen über Paketeingaben und Eingabenstile zu bekommen. Siehe
guix style
aufrufen für Informationen, wie Sie zum neuen Stil
migrieren können.
Die allgemeine Syntax lautet:
guix lint Optionen Pakete…
Wird kein Paket auf der Befehlszeile angegeben, dann werden alle Pakete geprüft, die es gibt. Als Optionen können null oder mehr der folgenden Befehlszeilenoptionen übergeben werden:
--list-checkers
-l
Alle verfügbaren Prüfer für die Pakete auflisten und beschreiben.
--checkers
-c
Nur die Prüfer aktivieren, die hiernach in einer kommagetrennten Liste aus von --list-checkers aufgeführten Prüfern vorkommen.
--exclude
-x
Nur die Prüfer deaktivieren, die hiernach in einer kommagetrennten Liste aus von --list-checkers aufgeführten Prüfern vorkommen.
--expression=Ausdruck
-e Ausdruck
Als Paket benutzen, wozu der Ausdruck ausgewertet wird.
Dies ist nützlich, um die Pakete eindeutig angeben zu können, wie in diesem Beispiel:
guix lint -c archival -e '(@ (gnu packages guile) guile-3.0)'
--no-network
-n
Nur die Prüfer aktivieren, die keinen Internetzugang benötigen.
--load-path=Verzeichnis
-L Verzeichnis
Das Verzeichnis vorne an den Suchpfad für Paketmodule anfügen (siehe Paketmodule).
Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete für die Befehlszeilenwerkzeuge sichtbar sind.
Nächste: guix size
aufrufen, Vorige: guix style
aufrufen, Nach oben: Zubehör [Inhalt][Index]