Autor Thema: LilyPond-Pfad erweitern  (Gelesen 2804 mal)

fugenkomponist

  • Member
LilyPond-Pfad erweitern
« am: Montag, 17. März 2014, 11:28 »
Hallo,

ich bin mir nicht ganz sicher, ob ich hier richtig bin oder das nicht doch ins Linux-Unterforum gehört (könnte ja sein, dass es für andere Betriebssysteme genauso geht). Jedenfalls heißt es ja hier:
Zitat
Ensure that the openLilyLib snippets repository is present locally and in Lilypond's search path.
Wie mache ich das? Welche Pfade sucht LilyPond ab? Ich vermute ja einfach .:/usr/share/lilypond/<version>/ly (btw: jemand eine Ahnung, warum bei mir in diesem Pfad noch 2.16.2 steht, obwohl ich 2.18.0 installiert hab?), aber wie krieg ich den dauerhaft erweitert? Ich will nicht jedes Mal lilypond mit der Option -I aufrufen müssen (ja, ich könnte mir ein Alias in der .bashrc anlegen, aber dann müsste ich das z. B. auch in Frescobaldi und an anderen Stellen noch von Hand ändern).

Für TeX/LaTeX hab ich in meiner .bashrc stehen:
export TEXINPUTS=$TEXINPUTS:/home/malte/LaTeX:.Gibts sowas auch für LilyPond?

Gruß,
Malte

Edit: hab gerade festgestellt, dass LilyPond in /usr/local/lilypond/usr/share/lilypond, nicht /usr/share/lilypond liegt, seit wann ist das so bzw. wie kommt das? Klingt irgendwie kaputt …
« Letzte Änderung: Montag, 17. März 2014, 11:35 von fugenkomponist »

erich

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #1 am: Montag, 14. April 2014, 09:04 »
Hallo Malte

Deine Frage steht nun schon fast einen Monat im Forum und Du hast keine Antwort erhalten. Schade: mich treibt gerade dieselbe Frage um; bist Du woanders fündig geworden?

Gruß
Erich

fugenkomponist

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #2 am: Montag, 14. April 2014, 09:39 »
Hallo Erich,

noch nicht, nein. Ich hab im Moment leider nicht so viel Zeit für LilyPond und die beiden Projekte, die ich gerade vor habe (Liederbuch fürs Orchester und automatischen Generalbaß), weil ich mal meine Bachelorarbeit fertig kriegen muß, hab mich also darum nicht mehr gekümmert seitdem …

Viele Grüße,
Malte

erich

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #3 am: Montag, 14. April 2014, 09:50 »
Hallo Malte

Ich habe einen ~/.lilypond Ordner eingerichtet, in dem ich meine viel benutzten Twintet-Dateien  gespeichert habe, und diesen habe ich in Frescobaldi bekannt gemacht. Das entbindet mich aber nicht der Arbeit, diese explizit mit \include einzubinden. Das ist nicht das, was wir in Linux unter einem Pfad verstehen.

Gruß
Erich

fugenkomponist

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #4 am: Montag, 14. April 2014, 10:01 »
Naja, ein \include sollte schon noch nötig sein, ich brauche ja nicht alles immer. (Wenn du deine includes grundsätzlich immer brauchst, könntest du mal schauen, ob es irgendeine Datei (init.ly?) gibt, die du entsprechend erweitern könntest.)

Nur eben \include "xyz.ly" statt \include "/home/malte/LilyPondInputs/xyz.ly". Wie das in Frescobaldi geht, schau ich mir mal an, aber eigentlich wärs mir ganz recht, wenn das auch direkt in lilypond als Option oder in irgendeiner config-Datei geht. Große Projekte mögen ja Makefiles, wenn man nicht immer vorsichtshalber alles von Hand in Frescobaldi neu kompilieren will ;)

Edit: eine Möglichkeit wäre natürlich, die fraglichen Dateien in das Verzeichnis /usr/local/lilypond/usr/share/lilypond/current/ly zu legen (zumindest als symlink). Aber schön find ich das nicht ;) (Und ich weiß auch immer noch nicht, warum dieser Pfad so komisch aussieht, da scheint irgendwas im Installationsskript anders zu laufen als es soll …)
« Letzte Änderung: Montag, 14. April 2014, 10:04 von fugenkomponist »

martinmagtenor

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #5 am: Montag, 14. April 2014, 21:18 »
Hallo Malte, hallo Erich,

wer sowieso mit der Bash (oder einer anderen Shell aus dem unixoiden Universum) unterwegs ist, dem seien diese Anregungen ans Herz gelegt:
  • Aliasse verwenden, in denen die gewünschten Suchpfade "eingebaut" sind.
  • Einen Shell-Wrapper verwenden, der dann auch gleich viel mehr Möglichkeiten bietet.

Anregung für einen einfachen Alias:

alias MyLP='lilypond -I ~/LilyPondsInput'


Grüße

Martin

fugenkomponist

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #6 am: Dienstag, 15. April 2014, 00:19 »
Wie schon geschrieben: einen Alias finde ich suboptimal. Für den Aufruf direkt in der bash geht das, aber schon in Makefiles dann nicht mehr.

Was ist denn ein Shell-Wrapper? Hab den Begriff noch nie gehört …

martinmagtenor

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #7 am: Dienstag, 15. April 2014, 22:32 »
Guten Abend,

ein Shell-Wrapper ist ein (meist kleines) Shell-Skript als "nette" Verhüllung/Verpackung (wrapper), "mit Schleifchen" um das betreffende Programm.

Ein minimaler Shell-Wrapper für Lilypond sieht ungefähr so aus:

# !/bin/bash
lilypond -I pfad1 -I pfad2 -I pfadn $@

gespeichert als (Beispiel) mylp.sh und mit Ausführungsrechten versehen (chmod 755 mylp.sh) kann ich dann aufrufen

mylp.sh projekt.ly

Und dieses mylp.sh kann man natürlich auch in einem Makefile verwenden. Letzteres ist aber eine schlechte Idee, denn dann hat schafft man einen Zusammenhang zwischen dem, was der Wrapper macht und der Konfiguration in einer Make-Datei.

In dem Wrapper steht $@ für alle Argumente ab "$1" "$2" ...

Im Prinzip kann man in dem Wrapper auch weitere nette Dinge machen, z.B. die Include-dateien aus einer Umgebungsvariable holen oder eine andere Datei als Initialisierungsdatei auswerten, ...

Man kann natürlich auch mehrere solche Wrapper anlegen. Der Phantasie sind wenig Grenzen gesetzt ...

Schönen Abend

Martin

fugenkomponist

  • Member
Re: LilyPond-Pfad erweitern
« Antwort #8 am: Dienstag, 15. April 2014, 22:54 »
Hm, ok, die Idee ist mir nicht ganz fremd (hab z. B. abhängig vom Hostnamen in den Rechnerräumen in der Uni verschiedene xmodmaps geladen), nur kannte ich den Begriff nicht ;) Mal schauen, vielleicht probier ich es dann doch mal damit …