When trying to build nodejs (v6.9.1) on CentOS6, `make` got an error.
It requires gcc and g++ 4.8 or later, but CentOS6's gcc is 4.4.7.
node-v6.9.1/BUILDING.md
Prerequisites:
* `gcc` and `g++` 4.8 or newer, or
* `clang` and `clang++` 3.4 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
So I decided to install gcc and g++ 4.8 or later with scl.
$ sudo yum install centos-release-scl $ sudo yum install scl-utils $ sudo yum install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils $ scl enable devtoolset-4 bash $ gcc --version gcc (GCC) 5.2.1 20150902 (Red Hat 5.2.1-2) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
There are devtoolset-3 and devtoolset-4. I installed devtoolset-4.
I installed only gcc, g++ and binutils necessary for building nodejs, because it is massive when installing all with devtoolset-4.
$ scl enable < collection1> [< collection1> ...] bash
This makes bash start with the environment where the installed collection can be used.
To enable software collections for users after reboot, create under /etc/profile.d with the following content.
$ cat /etc/profile.d/enabledevtoolset-4.sh #!/bin/bash source scl_source enable devtoolset-4
https://access.redhat.com/solutions/527703
Caution
When devtoolset-4 is enabled, sudo is sometimes broken such as `sudo -i` results in error.
$ sudo -i [sudo] password for foo: /var/tmp/sclXXXXXX: line 8: -i: command not found
https://bugzilla.redhat.com/show_bug.cgi?id=1319936
In such cases, you can use `/usr/bin/sudo` explicitly.