CentOS6にsclのdevtoolsetをインストール

CentOS6でnodejs(v6.9.1)をビルドしようとしたら、makeでエラーになった。
gccとg++の4.8以降が必要だが、CentOS6のgccは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

そこで、sclでgccとg++の4.8以降をインストールしてビルドすることにした。

$ 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.

devtoolset-3、devtoolset-4がある。devtoolset-4にしてみた。
devtoolset-4で全部インストールすると大量なので、nodejsのビルドに必要なgcc、g++とbinutilsのみインストールした。

$ scl enable < コレクション1> [< コレクション2> ...] bash

で、インストールしたコレクションが利用できる環境がセットされたbashが起動する。

システム起動時からsclでインストールしたコレクションを有効にしたい場合は、/etc/profile.dに以下のようなファイルを作成しておけばよい。

$ cat /etc/profile.d/enabledevtoolset-4.sh
#!/bin/bash
source scl_source enable devtoolset-4

https://access.redhat.com/solutions/527703

注意点

devtoolset-4を有効にすると、`sudo -i` がエラーになったり、リモートコンピューターからのrsyncで `--rsync-path="sudo rsync"` がエラーになるなど、sudoの動作がおかしい場合がある。

$ sudo -i
[sudo] password for foo:
/var/tmp/sclXXXXXX: line 8: -i: コマンドが見つかりません

https://bugzilla.redhat.com/show_bug.cgi?id=1319936

そのような場合は、明示的に `/usr/bin/sudo` を使うしかないようだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください