[CWB] easier CWB compilation with Spack
David Lukeš
david.lukes at ff.cuni.cz
Fri Nov 3 15:55:57 CET 2017
Hi all,
in light of this recent thread
<http://liste.sslmit.unibo.it/pipermail/cwb/2017-November/002953.html>
re: compiling CWB from source, it occurred to me it might be useful to
create a CWB package for Spack <http://spack.readthedocs.io/>. Spack is
a cross-platform package manager which builds software from source,
*automatically resolving dependencies* so you don’t have to. A second
advantage is that *it doesn’t need to run with admin privileges*. You
just need Git and a fairly recent version of Python 2 (preferably,
Python 3 works as well but you might hit snags).
I added |cwb| and |cwb-perl| packages to a fork of Spack I maintain, so
installing trunk CWB can now be done like this:
|git clone --depth 1 https://github.com/dlukes/spack.git cd spack # cwb
is installed automatically as a dependency of cwb-perl ./bin/spack
install cwb-perl # symlink the cwb-perl package into perl ./bin/spack
activate cwb-perl # create a prefix where all relevant binaries will be
symlinked # (change /path/to/prefix to a directory of your choice)
./bin/spack view symlink /path/to/prefix cwb-perl # update your PATH
export PATH="/path/to/prefix/bin:$PATH" # use cwb cwb-encode ...
cwb-make ... cqp ... |
A practical note: when testing this on Arch Linux, I found out that flex
2.6.4 doesn’t compile on my system. Fortunately, with Spack, you can
request a specific version of a dependency:
|# list information about the flex package in Spack, including #
available versions ./bin/spack info flex # install cwb-perl with
specific version of flex ./bin/spack install 'cwb-perl^flex at 2.6.3' # etc. |
If you’d rather use Spack’s official repository
<https://github.com/LLNL/spack> (though my fork differs only slightly),
you can, just manually add the |cwb| and |cwb-perl| package definitions
where they belong in Spack’s directory tree:
|git clone --depth 1 https://github.com/LLNL/spack.git cd spack mkdir -p
var/spack/repos/builtin/packages/{cwb,cwb-perl}
cwb=var/spack/repos/builtin/packages/cwb/package.py
cwb_perl=var/spack/repos/builtin/packages/cwb-perl/package.py curl
https://raw.githubusercontent.com/dlukes/spack/develop/$cwb -o $cwb curl
https://raw.githubusercontent.com/dlukes/spack/develop/$cwb_perl -o
$cwb_perl ./bin/spack install cwb-perl # etc. |
Note that if you have a working setup for installing CWB from source,
you might as well keep using it :) But if you’re starting from scratch,
you might find this easier, depending on circumstances. If this method
doesn’t work for you, let me know via the issue tracker
<https://github.com/dlukes/spack/issues/new> on GitHub.
Best,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://liste.sslmit.unibo.it/pipermail/cwb/attachments/20171103/f72175f1/attachment-0001.html>
More information about the CWB
mailing list