[ << Ejecutar LilyPond ] | [Arriba][Índice general][Índice][ ? ] | [ LilyPond-book >> ] | ||
[ < Invocar a LilyPond ] | [ Subir : Utilización desde la línea de órdenes ] | [ Variables de entorno > ] |
3.2.2 Opciones de la línea de órdenes para lilypond
Están contempladas las siguientes opciones:
-
-e,--evaluate=expresión
Evaluar la expresión de Scheme antes de analizar los archivos ‘.ly’. Se pueden pasar varias opciones
-e
, que se evaluarán en secuencia.La expresión se evaluará en el módulo
guile-user
, de manera que si quiere usar definiciones dentro de expresión, debe utilizarlilypond -e '(define-public a 42)'
en la línea de órdenes, e incluir
#(use-modules (guile-user))
al principio del archivo
.ly
.-
-f,--format=formato
Formato de la salida. Como
formato
se puede elegir entresvg
,ps
,pdf
ypng
.Ejemplo:
lilypond -fpng archivo.ly
-
-d,--define-default=variable=valor
Establece la opción interna del programa variable al valor de Scheme valor. Si no se proporciona ningún valor, se usa #t. Para desactivar una opción se puede anteponer
no-
a la variable, p.ej.:-dno-point-and-click
es lo mismo que
-dpoint-and-click='#f'
A continuación veremos algunas opciones interesantes.
- ‘help’
La ejecución de
lilypond -dhelp
imprimirá todas las opciones-d
que están disponibles.- ‘paper-size’
Esta opción establece el tamaño predeterminado del papel,
-dpaper-size=\"letter\"
Observe que la cadena se debe incluir dentro de comillas escapadas (
\"
).- ‘safe’
No confiar en la entrada
.ly
.Cuando el proceso de tipografía de LilyPond se encuentra disponible a través de un servidor web, SE DEBEN pasar las opciones
--safe
(seguro) o--jail
(jaula). La opción--safe
evita que el código de Scheme en línea arme un desastre, por ejemplo#(system "rm -rf /") { c4^#(ly:export (ly:gulp-file "/etc/passwd")) }
La opción
-dsafe
funciona evaluando las expresiones en línea de Scheme dentro de un módulo especial seguro. Este módulo seguro deriva del módulo GUILE ‘safe-r5rs’, pero añade ciertas funciones del API de LilyPond. Estas funciones se relacionan en ‘scm/safe-lily.scm’.Además, el modo seguro prohíbe las directivas
\include
e inhabilita el uso de barras invertidas en las cadenas de TeX.En el modo seguro, no es posible la importación de variables de LilyPond dentro de Scheme.
-dsafe
no detecta la sobreutilización de recursos. Aún es posible hacer que el programa se cuelgue indefinidamente, por ejemplo alimentándo el backend con estructuras de datos cíclicas. Por tanto, si se está utilizando LilyPond sobre un servidor web accesible públicamente, el proceso debe limitarse tanto en el uso de CPU como de memoria.El modo seguro impide que muchos fragmentos útiles de código de LilyPond se puedan compilar. La opción
--jail
es una alternativa más segura, pero su preparación requiere más trabajo.- ‘backend’
el formato de salida que usar para el back-end o extremo final. Para el
formato
se puede elegir entre-
ps
-
para PostScript.
Los archivos PostScript incluyen las tipografías TTF, Type1 y OTF. No se seleccionan subconjuntos de estas tipografías. Cuando se usan conjuntos de caracteres orientales, esto puede dar lugar a archivos enormes.
-
eps
para obtener PostScript encapsulado. Esto vuelca cada una de las páginas/sistemas como un archivo ‘EPS’ distinto, sin tipografías, y como un solo archivo ‘EPS’ encuadernado con todas las páginas/sistemas con las tipografías incluidas.
Este modo se usa de forma predeterminada por parte de
lilypond-book
.-
svg
-
para obtener SVG (gráficos vectoriales escalables). Vuelca cada página como un archivo ‘SVG’ distinto, con las tipografías incrustadas. Se necesita un visor de SVG que contemple las tipografías incrustadas, o un visor de SVG que pueda sustituir las tipografías incrustadas por tipografías OTF. Bajo UNIX, puede usar Inkscape (versión 0.42 o posterior), después de copiar las tipografías OTF del directorio de LilyPond (que normalmente es ‘/usr/share/lilypond/VERSIÓN/fonts/otf/’) al directorio ‘~/.fonts/’.
-
scm
-
para obtener un volcado de las instrucciones internas de dibujo basadas en Scheme, en bruto.
-
null
no producir una salida impresa; tiene el mismo efecto que
-dno-print-pages
.
Ejemplo:
lilypond -dbackend=svg archivo.ly
-
- ‘preview’
Generar un archivo de salida que contenga solamente los títulos de cabecera y el primer sistema de la primera página.
- ‘print-pages’
Generar las páginas completas, el ajuste predeterminado.
-dno-print-pages
es útil en combinación con-dpreview
.
-
-h,--help
Mostrar un resumen de las formas de utilización.
-
-H,--header=CAMPO
Volcar un campo de cabecera al archivo ‘NOMBREBASE.CAMPO’
-
--include, -I=directorio
Añadir el directorio a la ruta de búsqueda de archivos de entrada.
-
-i,--init=archivo
Establecer el archivo de inicio a archivo (predeterminado: ‘init.ly’).
-
-o,--output=ARCHIVO
Establecer el nombre del archivo de salida predeterminado a ARCHIVO. Se añade el sufijo correspondiente (por ejemplo,
.pdf
para PDF).-
--ps
Generar PostScript.
-
--png
Generar imágenes de las páginas en formato PNG. Esto implica
--ps
. La resolución en PPP de la imagen se puede establecer con-dresolution=110
-
--pdf
Generar PDF. Implica
--ps
.-
-j,--jail=usuario,grupo,jaula,directorio
Ejecutar
lilypond
en una jaula de chroot.La opción
--jail
(jaula) proporciona una alternativa más flexible a la opción--safe
cuando el proceso de tipografía de LilyPond está disponible a través de un servidor web o cuando LilyPond ejecuta archivos fuente procedentes del exterior.La opción
--jail
funciona cambiando la raíz delilypond
a jaula justo antes de comenzar el proceso de compilación en sí. Entonces se cambian el usuario y el grupo a los que se han dado en la opción, y el directorio actual se cambia a directorio. Esta instalación garantiza que no es posible, al menos en teoría, escapar de la jaula. Observe que para que funcione--jail
se debe ejecutarlilypond
como root, lo que normalmente se puede hacer de una forma segura utilizandosudo
.La instalación de una jaula es un asunto algo delicado, pues debemos asegurarnos de que LilyPond puede encontrar dentro de la jaula todo lo que necesita para poder compilar la fuente. Una configuración típica consta de los siguientes elementos:
- Preparar un sistema de archivos separado
Se debe crear un sistema de archivos separado para LilyPond, de forma que se pueda montar con opciones seguras como
noexec
,nodev
ynosuid
. De esta forma, es imposible ejecutar programas o escribir directamente a un dispositivo desde LilyPond. Si no quiere crear una partición separada, tan sólo tiene que crear un archivo de un tamaño razonable y usarlo para montar un dispositivo loop. El sistema de archivos separado garantiza también que LilyPond nunca pueda escribir en un espacio mayor del que se le permita.- Preparar un usuario separado
Se debe usar un usuario y grupo separados (digamos
lily
/lily
) con bajos privilegios para ejecutar LilyPond dentro de la jaula. Debería existir un solo directorio con permisos de escritura para este usuario, y debe pasarse en el valor directorio.- Preparar la jaula
LilyPond necesita leer algunos archivos mientras se ejecuta. Todos estos archivos se deben copiar dentro de la jaula, bajo la misma ruta en que aparecen en el sistema de archivos real de root. Todo el contenido de la instalación de LilyPond (por ejemplo ‘/usr/share/lilypond’) se debe copiar.
Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar LilyPond usando
strace
, lo que le permitirá determinar qué archivos faltan.- Ejecutar LilyPond
Dentro de una jaula montada con
noexec
es imposible ejecutar ningún programa externo. Por tanto, LilyPond se debe ejecutar con un backend que no necesite tal programa. Como ya mencionamos, también se debe ejecutar con privilegios del superusuario (que por supuesto perderá inmediatamente), posiblemente usandosudo
. Es buena idea limitar el número de segundos de tiempo de CPU que LilyPond puede usar (p.ej., usandoulimit -t
), y, si su sistema operativo lo contempla, el tamaño de la memoria que se puede reservar.
-
-v,--version
Mostrar la información de la versión.
-
-V,--verbose
Ser prolijo: mostrar las rutas completas de todos los archivos que se leen, y dar información cronométrica.
-
-w,--warranty
Mostrar la garantía con que viene GNU LilyPond (¡no viene con NINGUNA GARANTÍA!).
[ << Ejecutar LilyPond ] | [Arriba][Índice general][Índice][ ? ] | [ LilyPond-book >> ] | ||
[ < Invocar a LilyPond ] | [ Subir : Utilización desde la línea de órdenes ] | [ Variables de entorno > ] |