lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: multiple versions on Linux


From: Urs Liska
Subject: Re: multiple versions on Linux
Date: Wed, 24 Jul 2013 09:39:40 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

Am 24.07.2013 08:24, schrieb address@hidden:
Provided is the unpacked source of the lilypond version to be installed. A 
descripton of the steps to install lilypond one finds in INSTALL.txt. More 
infos one may find at 
http://lilypond.org/doc/v2.17/Documentation/contributor-big-page#compiling.

Every version will be installed in a specific directory, say i. e. in a 
directory with the version number. Makes sense beccause one remebers and finds 
it easily. (Any directory name is possible as long as it is not already present 
in the home directory.) Assumed, that one compiles from the subdirectory build 
the first step is

../config --prefix=$HOME/2.16.2

(Warning: actually most Linux distributions update to guile 2.0.5 - does not 
work! Best use a gule version 1.8)

Provied there are no error messages the follow up steps are
make and
sudo make install

now there is a complete evrsion of lilipond in the directory:

address@hidden:~$ ls ./2.16.2
bin  lib  share
address@hidden:~$ ls ./2.16.2/bin
abc2ly      etf2ly    lilypond       lilypond-invoke-editor  midi2ly
convert-ly  lilymidi  lilypond-book  lilysong                musicxml2ly
address@hidden:~$ ls ./2.16.2/lib
lilypond
address@hidden:~$ ls ./2.16.2/lshare
ls: cannot access ./2.16.2/lshare: No such file or directory
address@hidden:~$ ls ./2.16.2/share
emacs  info  lilypond  locale  man
address@hidden:~$



To use this particular version one needs a simple shell script:

   #!/bin/bash
   exec "$HOME/2.16.2/bin/lilypond" "$@"

Here is assumed that one want to compile with the version 2.16.2. Save this 
shell script to $HOME/bin, say as LP-2.16.2 (or any other), so you can call 
that spcefic version from any direcctory

address@hidden:~$ ls -l $HOME/bin/LP*
-rw-r--r-- 1 ich ich 58 Jul 23 14:17 /home/bb/bin/LP-2.16.2

Don't forget to make the file executable:

address@hidden:~$ chmod u+x $HOME/bin/LP*
address@hidden:~$  ls -l $HOME/bin/LP*
-rwxr--r-- 1 ich ich 58 Jul 23 14:17
address@hidden:~$

Done!

If one hass installed that stable version 2.16.2 in the described way you may install the 
maybe newest unbstable version beside in the "norml" way without interference. 
If you like to compile a lilypond file with the stable version do it this way:
LP-12-16-2 mylilypondfile.ly
with other version:
lilypond mylilypondfile.ly


Regards

I'm not 100% sure what your objectives are with your description, so I don't know if what I suggest is a simpler way to accomplish the same or a complementary approach to accomplish a similar thing. Nevertheless:

You can have multiple versions of LilyPond installed side by side, for example the latest stable and the latest development version.
What I do with each new release I want to install is:

Run the installation script as a normal user (to install in ~/lilypond)

~$ mv lilypond bin/lilyponds/VERSION
~$ ln -s bin/lilyponds/VERSION lilypond

If I had already installed a version that way I _start_ the process with
~$ rm lilypond
(which only removes the symlink)

This way I use the scripts in ~/bin that the install script creates and simply point them to the desired LilyPond installation. Switching between installations is done by deleting the symlink and create a new one.

This is _my_ way, not any 'canonical' way.
Placing installations side by side and creating individual scripts is equally valid and may be better if you change versions often (e.g. to compare output of different versions).

Such a script could also be improved in various ways: A few ideas:
- Inject an additional first argument containing the version string, so
myLily 2.16.2 score.ly
would select 2.16.2 to compile
- make the script add an option to tag the output filename so the above call would produce the file score-2-16-2.pdf for example

Best wishes
Urs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]