トップ «前の日記(2009/12/07(Mon)) 最新 次の日記(2009/12/09(Wed))»
【ソース+水=麦茶色の何か】

半期 四半期 全カテゴリ

今日の一言


2009/12/08(Tue) その前に課題を片付けなければ! [長年日記] 4:30現在 9℃

_ [FC][Ubuntu][Linux][プロジェクト実習][研究関係]複数のgccを切り替えて使う(alternatives)

時に、gccのバージョンによってコンパイルできないプログラムがある。

その場合、下手に色々いじるよりは、複数のgccを入れた方が手っ取り早い。(gcc4.0系と3.4とかで意外とよく起きる問題だったりするし)

その場合、

 # rm /usr/bin/gcc
 # ln -s /usr/bin/gcc-3.4 /usr/bin/gcc

として直接シンボリックリンク自体を張り替えてもいいのだが、ここでは「update-alternatives」を使う方法を述べる。

*update-alternatives は、以前にJAVAの切り替えでも使った/usr/sbin/alternativesへのシンボリックリンク。

元々はDebian系のツールだったらしいが、今はRedhat系にも移植されているらしいので、意外と使える。

実はいろいろと面白い使い方が出来そうなツールだが、ここでは詳細は省き、とりあえずの使い方だけ説明する。

まず、alternativesのグループにプログラムを追加する。

指定の仕方は、

 # update-alternatives --install 実行リンク グループ名 プログラムパス 優先度

優先度とかは別に好みで決めればいいと思う。ここでは、とりあえず新しいバージョンを優先するとして、

# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 34
# update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 41
# update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-3.4 34
# update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.1 41

とでもしておく。

で、

 # update-alternatives --config gcc

と入力すると選択画面が現れるので、変更したいgccのSelection番号を入力すれば切り替えることが出来る。(gccの場合、訳分からんことになりそうなので、一緒にcppも変更する事をおすすめする)

で、グループに追加済みのプログラムをグループから削除したい場合は、

 # update-alternatives --remove グループ名 プログラムパス

てな感じで指定する。

基本的にはこれでOK。

詳しい使い方を知りたい場合は、ココ(http://blog.eni.co.jp/tech/2009/08/update-alternatives.html#about_alternatives)とかを参考にするのがいいと思われ。