1.2.3 Umgebungsvariablen
lilypond erkennt und benützt die folgenden Umgebungsvariablen:
-
LILYPOND_DATADIR Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien, Meldungen und Übersetzungen finden kann. Dieses Verzeichnis sollte Unterverzeichnisse ‘ly/’, ‘ps/’, ‘tex/’, etc. beinhalten.
-
LANG Gibt die Sprache an, in der Warnungen und Fehlermeldungen ausgegeben werden.
-
LILYPOND_GC_YIELD Eine Variable (von 1 bis 100), die die Speicherverwaltung regelt. Bei niedrigeren Werten wird mehr Prozessor-Zeit, dafür weniger Hauptspeicher benötigt. Voreinstellung ist ein Wert von
70.
| [ << lilypond starten ] | [Anfang][Inhalt][Index][ ? ] | [ Dateien mit convert-ly aktualisieren >> ] | ||
| [ < Umgebungsvariablen ] | [ Nach oben : Benutzung auf der Kommandozeile ] | [ Fehlermeldungen > ] | ||
LilyPond in chroot-Kerker
Einen Server einzurichten, der LilyPond in einem chroot-Kerker bedient, ist
recht kompliziert. Die einzelnen Schritten finden sich unten aufgeliestet.
Beispiele sind für Ubuntu Linux und erfordern evtl. die Benutzung von
sudo an den entsprechenden Stellen.
- Installieren Sie die nötigen Pakete: LilyPond, GhostScript und ImageMagick.
- Erstellen Sie einen neuen Benutzer mit dem Namen
lily:adduser lily
Hierdurch wird auch eine Gruppe
lilyund ein Heimat-Ordner/home/lilyfür den neuen Benutzer erstellt. - Im Heimat-Ordner des Benutzers
lilyerstellen Sie eine Datei, die als eigenes Dateisystem eingesetzt wird:dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
In diesem Beispiel wird eine 200-MB-Datei als Kerker-Dateisystem erstellt.
- Erstellen Sie ein loop device, erstellen Sie ein Dateisystem und
mounten Sie es, dann erstellen Sie dort einen Ordner, in dem der Benutzer
lilySchreibrechte hat:mkdir /mnt/lilyloop losetup /dev/loop0 /home/lily/loopfile mkfs -t ext3 /dev/loop0 200000 mount -t ext3 /dev/loop0 /mnt/lilyloop mkdir /mnt/lilyloop/lilyhome chown lily /mnt/lilyloop/lilyhome
- In der Konfiguration des Servers ist der Kerker (JAIL)
/mnt/lilyloopund das Verzeichnis (DIR)/lilyhome. - Erstellen Sie einen großen Verzeichnisbaum in dem Kerker, indem Sie die
notwendigen Dateien dorthin kopiert, wie das Beispielskript unten zeigt.
Sie könne
sedbenutzen, um die notwendigen Kopierbefehle für ein bestimmtes Programm zu erstellen:for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \ do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \ cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \ \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
Beispiel-Skript für 32-bit Ubuntu 8.04
#!/bin/sh
## defaults set here
username=lily
home=/home
loopdevice=/dev/loop0
jaildir=/mnt/lilyloop
# the prefix (without the leading slash!)
lilyprefix=usr/local
# the directory where lilypond is installed on the system
lilydir=/$lilyprefix/lilypond/
userhome=$home/$username
loopfile=$userhome/loopfile
adduser $username
dd if=/dev/zero of=$loopfile bs=1k count=200000
mkdir $jaildir
losetup $loopdevice $loopfile
mkfs -t ext3 $loopdevice 200000
mount -t ext3 $loopdevice $jaildir
mkdir $jaildir/lilyhome
chown $username $jaildir/lilyhome
cd $jaildir
mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
chmod a+w tmp
cp -r -L $lilydir $lilyprefix
cp -L /bin/sh /bin/rm bin
cp -L /usr/bin/convert /usr/bin/gs usr/bin
cp -L /usr/share/fonts/truetype usr/share/fonts
# Now the library copying magic
for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
"/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
\/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
| sed '/.*=>.*/d'; done | sh -s
# The shared files for ghostscript...
cp -L -r /usr/share/ghostscript usr/share
# The shared files for ImageMagick
cp -L -r /usr/lib/ImageMagick* usr/lib
### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
### you should be able to run:
### Note that /$lilyprefix/bin/lilypond is a script, which sets the
### LD_LIBRARY_PATH - this is crucial
/$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
| [ << lilypond starten ] | [Anfang][Inhalt][Index][ ? ] | [ Dateien mit convert-ly aktualisieren >> ] | ||
| [ < Umgebungsvariablen ] | [ Nach oben : Benutzung auf der Kommandozeile ] | [ Fehlermeldungen > ] | ||