Opcions bàsiques de la línia d’ordres per al LilyPond

Estan contemplades les opcions següents:

-d, --define-default=variable=valor

Vegeu Opcions avançades de la línia d’ordres per al LilyPond.

-e, --evaluate=expressió

Avalua l’expressió del Scheme abans d’analitzar els fitxers .ly. Es poden passar diverses opcions -e, que s’avaluaran en seqüència.

L’expressió s’avaluarà al mòdul guile-user, de manera que si voleu usar definicions dins d’expressió, heu d’utilitzar

lilypond -e '(define-public a 42)'

a la línia d’ordres, i incloure

#(use-modules (guile-user))

al principi del fitxer .ly.

Nota: Els usuaris de Windows han d’utilitzar cometes dobles en comptes de cometes simples.

-f, --format=format

quins formats s’han d’escriure. Les opcions per a format són ps, pdf, i png.

Exemple: lilypond -fpng fitxer.ly

-h, --help

Mostra un resum de les formes de utilització.

-H, --header=CAMP

Bolca un camp de capçalera al fitxer NOMBASE.CAMP

-i, --init=archivo

Establir el fitxer d’inici a fitxer (predeterminat: init.ly).

-I, --include=directori

Afegir el directori a la ruta de cerca de fitxers d’entrada.

Es poden escriure diverses opcions -I. La cerca s’inicia al primer directori definit, i si el fitxer que s’ha d’incloure no es troba, la cerca continua als directoris següents.

-j, --jail=usuari,grup,gàbia,directori

Executar lilypond a una gàbia de chroot.

L’opció --jail (gàbia) proporciona una alternativa més flexible a l’opció -dsafe quan el procés de tipografia del LilyPond està disponible a un servidor web o quan el LilyPond executa instruccions enviades per fonts externes (vegeu Opcions avançades de la línia d’ordres per al LilyPond).

L’opció --jail funciona canviant l’arrel de lilypond a gàbia just o abans de començar el procés de compilació en sí. Si es fa això es canvien l’usuari i el grup als que s’han donat a l’opció, i el directori actual es canvia a directori. Aquesta instal·lació garanteix que no és possible, al menys en teoria, escapar a la gàbia. Observeu que perquè funcioni --jail, s’ha d’executar lilypond com root, cosa que normalment es pot fer d’una forma segura utilitzant sudo.

La instal·lació d’una gàbia pot ser un assumpte relativament complex, atès que hem d’assegurar-nos que el LilyPond pot trobar dins de la pròpia gàbia tot el que necessita per poder compilar la font. Una típica configuració de gàbia de chroot consta dels següents elements:

Preparació d’un sistema de fitxers separat

S’ha de crear un sistema de fitxers separat per al LilyPond, de forma que es pugui muntar amb opcions segures com noexec, nodev i nosuid. D’aquesta forma, és impossible executar programes o escriure directament a un dispositiu des del LilyPond. Si no voleu crear una partició separada, tan sols té que crear un fitxer d’una mida raonable i usar-lo per muntar un dispositiu loop. El sistema de fitxers separat garanteix també que el LilyPond mai no pugui escriure en un espai major del què se li permeti.

Preparar un usuari separat

Es pot usar un usuari i grup separats (diguem-ne lily/lily) amb pocs privilegis per executar el LilyPond dins d’una gàbia. Hauria d’existir un sols directori amb permisos d’escriptura per a aquest usuari, i s’ha de passar el valor directori.

Preparació de la gàbia

El LilyPond necessita llegir alguns fitxers mentre s’executa, Tots aquests fitxers s’han de copiar dins de la gàbia, sota la mateixa ruta en la qual apareixen al sistema de fitxers real de root. Tot el contingut de la instal·lació del LilyPond (per exemple /usr/share/lilypond) s’ha de copiar.

Si sorgeixen problemes, la forma més senzilla de rastrejar-los és executar el LilyPond usant strace, cosa que li permetrà determinar quins fitxers falten.

Execució del LilyPond

Dins d’una gàbia muntada amb noexec és impossible executar cap programa extern. Per tant, el LilyPond s’ha d’executar amb un backend que no necessiti un programa extern. Com ja hem mencionat, s’ha d’executar amb privilegis del superusuari (que per suposat perdrà immediatament), possiblement usant sudo. També de CPU que el LilyPond pot usar (per exemple usant ulimit -t), i, si el vostre sistema operatiu ho contempla, la mida de la memòria que es pot reservar. Vegeu també El LilyPond a una gàbia de chroot.

-l, --loglevel=NIVELL

Fixa el grau en el qual la sortida de consola és neta al nivell NIVELL. Els valors possibles són:

NONE

Cap sortida en absolut, ni tan sols missatges d’error.

ERROR

Sols missatges d’error, cap advertiment o indicacions de progrés.

WARN

Advertiments i missatges d’error, no de progrés.

BASIC

Missatges de progrés bàsics (èxit), advertiment i errors.

PROGRESS

Tots els missatges de progrés, advertiments i errors.

INFO (predeterminat)

Missatges de progrés, advertiments, errors i informació d’execució addicional.

DEBUG

Tots els missatges possibles, fins i tot la informació detallada de depuració.

-o, --output=FITXER o CARPETA

Estableix el nom del fitxer de sortida predeterminat a FITXER o, si hi ha una carpeta amb aquest nom, dirigeix la sortida cap a CARPETA, agafant el nom de fitxer del document d’entrada. S’afegeix el sufix corresponent (per exemple, .pdf per a PDF) als dos casos.

--ps

Generar PostScript.

--png

Genera imatges de les pàgines en format PNG. Això implica --ps. La resolució en PPP de la imatge es pot establir amb

-dresolution=110
--pdf

Genera PDF. Implica --ps.

-v, --version

Mostra la informació de la versió.

-V, --verbose

Sigues detallat: mostra les rutes completes de tots els fitxers que se llegeixen, i dóna informació cronomètrica.

-w, --warranty

Mostra la garantia del GNU LilyPond (no ve amb CAP GARANTIA!).


LilyPond: manual d’utilització del programa v2.25.15 (branca de desenvolupament).