Redhat6.x + SCL 使う時に気をつけたい3つのポイント
Redhat系で新しいパッケージを公式サポートしてくれる SCL : Software Collections を使った際にはまったポイントを3つメモしておきます。慣れた方なら当たり前な事かもしれませんが、初心者にはハードル高く、何度もつまづきました。
SCL とは
Redhatはサポート期間が長く、一つ前のメジャーバージョンでも標準パッケージのバージョンが古い事が結構多いです(Redhat 6.xの場合:Apache2.2.x , Python 2.6.x など)。今からスタートするサービスに使うには、古さを感じました。
そこで各種パッケージの新しいバージョンに、公式に対応してくれる仕組みが SoftwareCollections (以下、SCL)。提供される追加リポジトリを登録するなどすれば、新しいバージョンが、標準リポジトリでの導入バージョンと衝突しないで利用できるという仕組み。
例えば Redhat 6.x の場合、こんな感じ。良さそうですよね。
導入した後のポイント3つ
導入手順は、他にまかせるとしまして、導入してから苦労したポイントは次のところでした。
まず衝突回避のため、導入先ディレクトリが /opt/rh/ 配下になっており、いろいろ通常パッケージとは扱いが異なります。
デフォルト利用
SCLリポジトリから導入したツールは、次のように scl コマンドで関連環境変数を有効にして使います。
これがなかなか面倒。pythonってうったら、SCLのものが有効になってればOKって場合には、/etc/profile.d/配下の仕組みを使います。
上記のサイトをみて、僕の場合は、次のファイルを作成しました。これで、ログイン毎に、自動的にpython3.3.xを有効化できます。
$ cat /etc/profile.d/enablepython33.sh #!/bin/bash source /opt/rh/python33/enable export X_SCLS="`scl enable python33 'echo $X_SCLS'`"
その他
導入手順の参考にしたサイトは、こちらです。
公式サポートってところに安心感はありますが、ちょっと手間がかかったなぁというのが今回の感想です。