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` を使うしかないようだ。

Mac OS XのtopはCPU順でない

Mac OS XのtopはデフォルトがCPU順でない。pidの降順となっている。
ソートを変更するには、

$ top -o cpu

または

$ top -o -cpu

で起動するか、top起動後に、o と入力後、cpu(または-cpu) と入力してReturnキーを押す。

+を付けると昇順になる。

その他のソート可能項目については、man top を参照。