rhel 6.9 インストールで devtoolset-2 を使用しているため、devtoolset-2 が提供する gcc 4.8 バージョンを使用できます。以前の rhel 6.2 インストール (VM 上) では、/etc/profile.d/ にスクリプトを追加して devtoolset-2 の有効化スクリプトをソースにすることで、devtoolset-2 の gcc を有効にすることができました。
$ cat /etc/profile.d/devtoolset2.sh
#!/bin/bash
source scl_source enable devtoolset-2
これはうまく機能し、開いたターミナル ウィンドウから gcc 4.8 にアクセスできるようになりました。
この新しい 6.9 のインストール (実際のハードウェア上) で、同じ場所で同じスクリプトを試しましたが、決してソースになりません。新しい端末ウィンドウは、常にシステムの gcc 4.4 にデフォルト設定されます。ただし、有効化スクリプトを手動でソースすることはできますが、機能します。
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
$ source scl_source enable devtoolset-2
$ gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
グーグルで調べた後、いくつかの異なるコマンドでもスクリプトを取得しようとしました:
. /opt/rh/devtoolset-2/enable
source /opt/rh/devtoolset-2/enable
... etc.
この設定をすべてのユーザーの端末に適用したいのですが、完全にするために、.bashrc スクリプトと .bash_profile スクリプトの両方からソースを取得しようとしましたが、どちらもユーザーには機能しませんでした。
最後に気付いたのは、通常のユーザーではなく root としてログインすると、/etc/profile.d/ のスクリプトが source devtoolset-2 を問題なく実行したことです。
他のユーザーではなく、ルートに対して自動的にソースを取得する理由はありますか?