[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