Dependencies and requirements
Alambic is written in Perl and uses the Mojolicious web framework. It relies on a database to store configuration and projects information. As for now only PostgreSQL is supported as a back-end database.
Note You may want to install perlbrew to have separate perl instances. Even better, perlbrew can be setup with a basic Unix user account.
The docker image serves as a use case test for installation of Alambic. As such, the list of requirements used to build the
$ALAMBIC_HOME/Alambic/docker/image_base_centos can be used as a reference for the dependencies.
- Perl 5.x versions 5.22, 5.24 and 5.26 have been tested. See the development page for more details on testing.
- PostgreSQL 9.5 or later. Some bleeding edge features are used (like update on insert), both by Alambic and the Minion job queuing system.
- Alambic has been developed and tested on Gnu/Linux systems (CentOS, Ubuntu, Debian). It may work on Windows, but this is not tested and thus not supported.
- Some plugins use the R software for advanced visualisation and computations.
Installing Mojolicious: see instructions here or simply use the CPAN module:
$ perl -MCPAN -e 'install Mojolicious'
The list of Perl requirements notably include the following modules from CPAN:
XML::LibXMLfor analysis of PMD XML results.
List::MoreUtilsfor the uniq function.
File::statfor filesystem operations.
IO::Socket::SSL(version 1.94+) for https.
Minionfor the job queuing feature.
Test::Perl::Criticfor testing, and
Pod::ProjectDocsfor documentation generation.
Text::CSV(which may import
Crypt::PBKDF2for password hashes
JIRA::RESTfor data source plugins.
One can install everything in one command using
cpanm. Note the
POSTGRES_HOME env var.
POSTGRES_HOME=/usr/pgsql-9.5 cpanm Sub::Identify DBI DBD::Pg inc::Module::Install Digest::MD5 Crypt::PBKDF2 Date::Parse DateTime File::chdir File::Basename File::Copy File::Path File::stat List::Util List::MoreUtils Minion Mojolicious Mojo::JSON Mojo::UserAgent Mojo::Pg XML::LibXML Text::CSV Time::localtime Mojolicious::Plugin::Mail Test::More Test::Perl::Critic Net::IDN::Encode IO::Socket::SSL Git::Repository JIRA::REST Mojolicious::Plugin::InstallablePaths Pod::ProjectDocs GitLab::API:v3 Moose HTML::Entities Template Mojolicious::Plugin::Minion::Admin URI::Escape::XS
Note that plugins have different specific requirements. As an example the StackOverflow plugin requires a R installation and a few packages (knitr for the weaving, snowballc for the wordcloud, etc.). See the documentation of plugins for more information.
Most plugins use the R engine for the computations and/or the visualisations. As of Alambic 3.3.2, the list of R modules required to run Alambic plugins notably includes:
jsonlitefor data formats,
rmarkdownfor literate programing,
dygraphsfor specific graphics.
The complete list of of R modules can be installed with the following command:
Rscript -e 'install.packages(c("BH", "DBI", "NLP", "R6", "RColorBrewer", "Rcpp", "SnowballC", "assertthat", "backports", "base64enc", "bitops", "caTools", "colorspace", "curl", "dichromat", "digest", "dplyr", "dygraphs", "evaluate", "ggplot2", "ggthemes", "googleVis", "gtable", "hexbin", "highr", "htmltools", "htmlwidgets", "httr", "jsonlite", "knitr", "labeling", "lazyeval", "magrittr", "markdown", "mime", "munsell", "openssl", "packrat", "pander", "plotly", "plyr", "purrr", "reshape2", "rmarkdown", "rprojroot", "scales", "slam", "stringi", "stringr", "tibble", "tidyr", "tm", "viridisLite", "wordcloud", "xtable", "xts", "yaml", "zoo", "svglite"), repos="http://cran.r-project.org")'