CentOS
RHEL
scl

SCLをログイン時に有効にする方法(和訳)

More than 1 year has passed since last update.

※ 2017/04/13 追記

本記事で和訳した手法より、scl-utilsパッケージに含まれるscl_sourceコマンドを利用した方がよさそうです。

$ cat /etc/profile.d/enablepython33.sh

#!/bin/bash
source scl_source enable python33

注意: この方法で設定した場合、コレクションを後から無効化できません。

参考URL:

※ 2017/04/13 追記終了

SCLはRHEL/CentOSで最新のプログラミング言語やデータベースを利用するための仕組みです。

SCLでインストールされたパッケージを利用するには以下のようにコマンドを実行する必要がありますが面倒くさいですよね?

scl enable php54 'php --version'

Red Hat developer blogの記事 によい解決方が書かれていましたので紹介します。

以下はブログの意訳です。


Permanently Enable a Software Collection(意訳)

投稿に時間が掛かったこと謝罪したい。我々は既にこの主題の投稿を既に書いたと思っていた。何についてだろうか?一つあるいは複数のsoftware collections をログイン時に自動的に有効にする方法である。

これを実現するためには幾つかの方法がある。

まずは以下の例のように.bashrcに"source"行を追加するものだ。

source /opt/rh/python33/enable

しかしながら, このRed Hat kbase discussesによると、この問題の最善の解決策は、新規ファイルを作成し"source"行を追加するの加え、適切な環境変数を修正することである。

$ cat /etc/profile.d/enablepython33.sh

#!/bin/bash
source /opt/rh/python33/enable
export X_SCLS="`scl enable python33 'echo $X_SCLS'`"

同kbaseの記事や伝聞によると、本題を実現するためのよりよい方法を提供するコードがいくつかコミットされている。これらはまだサポートされていないが、すぐにscl-utilsのリリースバージョンに含まれるだろう。