Errors during npm install with gcc version

CryoSPARC >= 0.2.47 requires gcc >= 4.8 in order to correctly install. If you have an older version of gcc (check with gcc --version) you will get errors during the part of the cryoSPARC installation script that installs npm modules.

To fix the problem, one solution is to locally install gcc >= 4.8 in your own home directory (doesn’t require root/sudo).
There are some instructions here that are good:
http://luiarthur.github.io/gccinstall
It’s probably best if you install gcc 4.9 instead of 5.2 as the article suggests.

After installing using those instructions, please completely remove cryosparc (delete the installation folder), then do
export PATH=/path/where/you/installed/gcc/bin:$PATH
then in the same terminal shell, install cryosparc again using the installation command.

Note if you are on an older operating system (SL6, CentOS6, etc) you will also be missing the correct version of glibc (you’ll see an error in cryosparc/run/meteor.stdout that contains indicates GLIBCXX is missing). To fix this issue, one user solved the problem here: https://github.com/cryoem-uoft/cryosparc-issues/issues/62

if you want newer version of gcc on CentOS-6/CentOS-7, the easiest path is to install the centos-release-scl-rh package and yum install devtoolset-*gcc.

$ sudo yum install centos-release-scl-rh
$ sudo yum list devtoolset*gcc-*

devtoolset-3-gcc.x86_64 4.9.2-6.2.el6 @centos-sclo-rh
devtoolset-4-gcc.x86_64 5.3.1-6.1.el6 @centos-sclo-rh
devtoolset-6-gcc.x86_64 6.2.1-3.1.el6 @centos-sclo-rh

to get gcc-6.2.1 just:
$ sudo yum install devtoolset-6-gcc.x86_64 devtoolset-6-gcc-c++.x86_64

to enable gcc-6.2 instead of the default gcc version:
$ type gcc
gcc is hashed (/usr/bin/gcc)
$ scl enable devtoolset-6 bash
$ type gcc
gcc is /opt/rh/devtoolset-6/root/usr/bin/gcc
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-6/root/usr/libexec/gcc/x86_64-redhat-linux/6.2.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: …/configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-6/root/usr --mandir=/opt/rh/devtoolset-6/root/usr/share/man --infodir=/opt/rh/devtoolset-6/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-6.2.1-20160916/obj-x86_64-redhat-linux/isl-install --enable-libmpx --with-mpc=/builddir/build/BUILD/gcc-6.2.1-20160916/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 6.2.1 20160916 (Red Hat 6.2.1-3) (GCC)

Thanks! This is a great tip.