Skip to content

LocalSourceInstallNoSudo

Maxie D. Schmidt edited this page Jan 23, 2022 · 19 revisions

Local source install without sudo

For those users without sudo access on their target desktop environment, we provide instructions for compiling the dependencies of RNAStructViz starting from source in the user's home directory. These sudo-enabled instructions are intended for Linux and Unix users with access to the sudo command and with the ability to install system packages.

We will minimally require Cairo, FLTK and the ViennaRNA (RNAlib) libraries to be available in the user's home directory to compile RNAStructViz from source. Note that we also assume that you are able to locally install the OpenSSL (for string hashing) and Boost filesystem libraries (for portable C++ filesystem operations).

The next local install instructions cover the difficult use cases where specialized instructions are needed to install the libraries without sudo. Please post a new issue for support if your local use case requires documentation of the install instructions OpenSSL or Boost. However, note that it should be possible to handle specifying local build library and include paths for any custom library required to build RNAStructViz by tweaking the documented Makefile hidden settings and variables.

A local install of Cairo

Download the libcairo source and build it from scratch using the following commands (this can take a while):

$ cd ~
$ wget https://cairographics.org/releases/cairo-1.16.0.tar.xz
$ tar xf cairo-1.16.0.tar.xz
$ cd cairo-1.16.0
$ ./configure --prefix=`readlink -f .`
$ make

A local install of FLTK

The stock binary install of modern FLTK versions will in all likelihood not have Cairo support enabled by default. We assume that you will have Mesa / GL, Cairo (see above), etc. along with other dependencies needed on your system to build the FLTK windowing library (with-cairo support) on your local system. If for some reason these dependencies are not met on your Linux system, then we recommend that you contact your system administrator to install these necessary packages for you before proceeding to the next step. You can verify that the appropriate libraries are installed by running the following commands:

$ pkg-config glu --cflags --libs
-I/usr/include/libdrm -lGLU -lGL
$ pkg-config cairo --cflags --libs
-I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -lcairo
$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 18.0.5

Note that the output of these commands does not need to exactly match what appears above. The sample output from the previous commands is intended to give the user a good sense if you're on the right track.

Installing FLTK from source

Note that Mac OSX users attempting this local install method should opt for a recent release of the development branch of the FLTK 1.4.x library. The instructions vary somewhat on Apple-based platforms, so on Mac we highly suggest that new users install the FLTKWithCairo formula using Homebrew to have their FLTK dependencies met (see the Mac install notes). First, we fetch and extract a recent stable version of the FLTK library development source (v1.4.x) and extract it to our local home directory:

$ cd ~
$ wget https://github.com/gtDMMB/homebrew-core/raw/master/LocalPatches/fltk-1.3.8-source-patched.tar.bz2
$ tar xvjf fltk-1.3.8-source-patched.tar.bz2
$ cd fltk-1.3.8-source-patched

Now we need to enable the configure-time options which will enable Cairo support by default in our FLTK build:

$ ./configure --enable-cairo --enable-threads --enable-shared
$ make 

Setting export variables

Next, to tell the RNAStructViz Makefile where to find your local install of FLTK, we need to export the following variable:

$ export FLTKCONFIG=$(readlink -f ./bin)
$ export FLTK_INSTALL_DIR=$(readlink -f ./)

A local install of ViennaRNA

Run the following commands to download and build ViennaRNA locally:

$ cd ~
$ wget https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/ViennaRNA-2.4.14.tar.gz
$ tar xvzf ViennaRNA-2.4.14.tar.gz
$ cd ViennaRNA-2.4.14
$ make clean
$ ./configure --disable-debug --disable-dependency-tracking --prefix=`readlink .`
$ make


## Configuring pkg-config locally

We need to append the relevant entries to the ``PKG_CONFIG_PATH`` environment variable so that ``pkg-config`` can provide the correct local locations for the compile and link time paths in the *Makefile*. The following commands show the locations of these files in our home directory installations of the libraries:
```bash
$ ls -l ~/ViennaRNA-2.4.13/RNAlib2.pc
$ ls -l ~/cairo-1.16.0/src/cairo.pc

Now we need only set the PKG_CONFIG_PATH variable to include these paths:

$ export PKG_CONFIG_PATH="`readlink ~/cairo-1.16.0/src`:`readlink ~/ViennaRNA-2.4.13`:$PKG_CONFIG_PATH"

Finally, continue on to the building RNAStructViz from source step from the sudoers install guide.

Clone this wiki locally