Skip to content

Instantly share code, notes, and snippets.

@alanorth
Last active July 30, 2020 20:26
Show Gist options
  • Save alanorth/2cf9c15834dc68a514262fcb04004cb0 to your computer and use it in GitHub Desktop.
Save alanorth/2cf9c15834dc68a514262fcb04004cb0 to your computer and use it in GitHub Desktop.
Preparing the Mirage 2 build environment on Ubuntu 16.04

Build Environment for Mirage 2 on Ubuntu 16.04

My earlier notes for 14.04 basically work fine on Ubuntu 16.04 but I've corrected and improved a few things in this version.

DSpace 5's Mirage 2 requires some extra setup if you want to tweak the base config and rebuild it. As Mirage 2 is based on the Bootstrap framework it needs a few NodeJS and Ruby packages to be available in the build environment.

We build and deploy DSpace from the tomcat7 system user (which is the default user for Tomcat on Ubuntu), and there are a few assumptions that must be met to allow the installation of NodeJS and Ruby:

  • The tomcat7 user must be able to write to its home folder — /usr/share/tomcat7 — so it can create the ~/.nvm, ~/.npm, ~/.rvm, ~/.gnupg and other directories during installation
  • The ~tomcat7/.profile file must exist and be writable before installing nvm and rvm, as this is the default config file for login shells, ie sudo su - tomcat7. These tools will append lines to those files to setup their environments on login.

This setup is based on the documentation that shipped with Mirage 2 in DSpace 5.

Node Version Manager (NVM)

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

After the intstallation is finished, close and re-open your shell to activate NVM. Then install NodeJS v8 and use npm to install the DSpace dependencies:

$ nvm install v8
$ npm install -g bower grunt grunt-cli

Ruby Version Manager (RVM)

Make sure the following dependencies are installed on the system (required by the Ruby build process):

$ sudo apt update
$ sudo apt install libyaml-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev gawk g++ libreadline6-dev zlib1g-dev libssl-dev libsqlite3-dev libgmp-dev

Then install RVM:

$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby

After the intstallation is finished, close and re-open your shell to activate RVM. Then use gem to install the DSpace dependencies:

$ gem install sass -v 3.3.14
$ gem install compass -v 1.0.3
@serious-steve
Copy link

Instructions adapted to Ubuntu 18.04-LTS (WIP)

apt-get install ruby-compass ruby-sass
sudo -H -u dspace sh -c ''wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash"
# TODO - install as dspace user: nvm install v8
# TODO - install as dspace user: npm install -g bower grunt grunt-cli
sudo -H -u dspace bash -c 'export GEM_HOME=/var/lib/gems/2.5.0 && export GEM_PATH=/var/lib/gems/2.5.0 && export NVM_DIR="$HOME/.nvm" && source "$NVM_DIR/nvm.sh" && cd /tmp/dspace-src && mvn -e clean package -Dmirage2.on=true -Dmirage2.deps.included=false'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment