Grundlegende Optionen auf der Kommandozeile für LilyPond
Die folgenden Kommandozeilenoptionen werden von lilypond unterstützt:
-d, --define-default=Variable=WertSiehe Fortgeschrittene Optionen auf der Kommandozeile für LilyPond.
-e, --evaluate=exprWertet den Scheme-Ausdruck expr aus, bevor die .ly Dateien gelesen und interpretiert werden. Die
-eOption kann auch mehrfach angegeben werden, die Ausdrücke werden nacheinander ausgewertet.Da der Ausdruck im
guile-userModul ausgewertet wird, ist bei der Definitionen innerhalb von expr folgendes Vorgehen nötig. An der Kommandozeile wird z.B.aimguile-userModul definiert:lilypond -e '(define-public a 42)'
Am Beginn der .ly-Datei muss dann das
guile-userModul noch geladen werden, bevor die Definition von a verfügbar ist:#(use-modules (guile-user))
Achtung: Windows-Benutzer müssen doppelte anstelle der einfachen Anführungsstriche einsetzen.
-E. --epsErzeugt EPS-Dateien.
-f, --format=FormatBestimmt das Ausgabeformat. Mögliche Werte von Format sind
svg,ps,pdfundpng.Beispiel:
lilypond -fpng Dateiname.ly-h, --helpZeigt eine Zusammenfassung der Programmbenutzung und der Optionen.
-H, --header=FELDGibt den Inhalt eines Feldes aus dem
\header-Block in die Datei Dateiname.FELD aus.-i, --init=InitialisierungsdateiBenutzt Initialisierungsdatei zur gesamten Programminitialisierung. Der Standardwert ist init.ly.
-I, --include=VerzeichnisFügt Verzeichnis zur Liste der Suchpfade hinzu.
Mehrere -I-Optionen können angegeben werden. Die Suche beginnt mit dem ersten definierten Verzeichnis und setzt in den weiteren Verzeichnissen fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird.
-j, --jail=Benutzer,Gruppe,Jail-Verzeichnis,ArbeitsverzeichnisFührt
lilypondin einem chroot-Jail aus.Die --jail Option ist eine flexiblere Alternative zu -dsafe, wenn LilyPond über das Internet verfügbar gemacht wird oder LilyPond Befehle ausführt, die aus externe Quellen stammen (siehe Fortgeschrittene Optionen auf der Kommandozeile für LilyPond).
Sie funktioniert dergestalt, dass das Wurzelverzeichnis von
lilypondauf Jail-Verzeichnis gesetzt wird, bevor die tatsächliche Kompilierung der .ly-Datei beginnt. Der Benutzer und die Gruppe werden auf die angegebenen Werte gesetzt und das aktuelle Arbeitsverzeichnis wird ebenfalls auf den angegebenen Wert Arbeitsverzeichnis gesetzt. Diese Einstellungen garantieren (zumindest in der Theorie), dass es nicht möglich ist, aus dem Jail auszubrechen. Damit --jail funktioniert, musslilypondallerdings als root ausgeführt werden, was normalerweise auf sichere Art mit dem Kommandosudoerreicht werden kann.Das Jail-Verzeichnis zu erstellen ist etwas heikel, da LilyPond alle zur Ausführung nötigen Bibliotheken und Dateien innerhalb des Jail-Verzeichnisses finden muss. Ein typisches Setup besteht aus folgenden Punkten:
- Erstellung eines getrennten Dateisystems
Ein eigenes Dateisystem muss für LilyPond erstellt werden, sodass es mit sicheren Einstellungen wie
noexec,nodevundnosuideingebunden werden kann. Damit ist es unmöglich, Programme von diesem Dateisystem auszuführen oder direkt auf eine Hardware-Schnittstelle zuzugreifen. Wenn Sie keine eigene Partition erstellen möchten, können Sie auch eine Datei der entsprechenden Größe erstellen und sie als ‚loop‘-Gerät einbinden. Ein getrenntes Dateisystem garantiert auch, dass LilyPond nicht mehr Festplattenspeicher benutzt als erlaubt.- Erstellung eines eigenen Benutzerkontos
Es sollte ein eigener Benutzer und eine eigene Gruppe (z. B.
lily/lily) mit geringen Rechten für die Ausführung von LilyPond innerhalb des Jails benutzt werden. Nur ein einziges Verzeichnis des Jails sollte für den Benutzer schreibbar sein und als Arbeitsverzeichnis anlilypondübergeben werden.- Einrichtung des Jails
LilyPond muss zahlreiche Dateien für die Ausführung einlesen. All diese Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation (typischerweise /usr/share/lilypond) sollte kopiert werden.
Falls Probleme auftreten, ist es am einfachsten, LilyPond mittels
stracezu starten, wodurch Sie relativ leicht feststellen können, welche Dateien im Jail noch fehlen.- Ausführung von LilyPond
In einem mit
noexeceingebundenen Jail ist es nicht möglich, externe Programme auszuführen. Daher muss LilyPond auf eine Art gestartet werden, die keine weitere Ausführung von Programmen benötigt. Wie bereits erwähnt muss LilyPond mit Administrator-Rechten gestartet werden (die es allerdings sofort wieder abgibt), beispielsweise mittelssudo. Außerdem ist es eine gute Idee, die LilyPond zur Verfügung stehende CPU-Zeit zu limitieren (z. B. mitulimit -t) und – falls das Betriebssystem dies unterstützt – auch den zur Verfügung stehenden Hauptspeicher. Siehe auch LilyPond in chroot-Kerker
-l, --loglevel=LogstufePasst die Ausführlichkeit der Ausgabe auf der Kommandozeile entsprechend Logstufe an. Mögliche Werte sind:
NONEKeine Ausgabe, nicht einmal Fehlermeldungen.
ERRORNur Fehlermeldungen, keine Warnungen oder Fortschrittsmeldungen.
WARNWarnungen und Fehlermeldungen, keine Fortschrittsmeldungen.
BASICGrundlegende Fortschrittsmeldungen (Erfolg), Warnungen und Fehler.
PROGRESSAlle Fortschrittsmeldungen, Warnungen und Fehler.
INFO (Standard)Fortschrittmeldungen, Warnungen, Fehlermeldungen und weiter Information über die Ausführung.
DEBUGAlle möglichen Meldungen, die auch mit der Fehlersuche (Debug) zu tun haben können.
-o, --output=DATEI oder ORDNERSchreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei DATEI. Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei benutzt wird. Die entsprechende Dateinamenserweiterung wird angehängt (z.B.
.pdffür pdf).-O, --pspdfopt¶-
Wird diese Option nicht oder mit dem Parameter
sizeverwendet, wird eine Art der Erzeugung von Postscript- EPS- bzw. PDF-Dateien gewählt, die möglichst kleine Dateien erzeugt.Der Parameter
TeXführt zu Dateien, die besonders gut zur Einbindung in pdfTeX, LuaTeX oder XeTeX geeignet sind.Sollen mehrere mit LilyPond erzeugt Dokumente in ein TeX-Dokument eingebunden werden, so bietet es sich an,
TeX-GSzu verwenden und das von TeX erzeugte PDF noch einmal mit Ghostscript zu bearbeiten. --psErzeugt PostScript.
--pngErzeugt eine Grafik-Datei im PNG-Format von jeder Seite. Diese Option impliziert auch
--ps. Die Auflösung in DPI der Grafik kann festgelegt werden durch-dresolution=110
--pdfErzeugt PDF-Dateien. Dies impliziert
--ps.-v, --versionGibt die Versionsnummer aus.
-V, --verboseGibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade aller gelesenen Dateien sowie Informationen über die Laufzeit.
-w, --warrantyZeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht KEINERLEI GARANTIE!)