DebianにIntel C++/Fortran Compilerをインストールする

事の発端

 計算用のPCを交換するということで、PentiumII + RedHat9という構成のPCが、Pentium4 3.2GHzに交換されることになった。しかし買ってきたマザボがシリアルATAがデフォルトというもので、ちゃんと起動しなかった。じゃぁRedHatもなくなったし、Debianでも入れるかということで、Debian Sargeをインストール。計算用と銘打っているのでIntelコンパイラでも入れるかと思いたち、インストールを試みた。

手順

まずは、IntelからライセンスとRPMパッケージを取得する。Free Software for Linux Open Source Developersというページから取得できる。
 RPMは、Debianではどうしようもないので、alienでdebパッケージに変換する。

~$ fakeroot alien intel-icc8-8.1-023.i386.rpm

で、rootになってインストール

/home/chome# dpkg --install intel-icc8_8.1-24_i386.deb

すると/opt/intel_cc_80/にインストールされる。

/opt/intel_cc_80/bin$ file * | grep text
Errormatch.txt: ASCII text, with CRLF line terminators
icc:            Bourne shell script text executable
icc.cfg:        ASCII text
iccvars.csh:    Tenex C shell script text executable
iccvars.sh:     Bourne shell script text executable
icpc:           Bourne shell script text executable
icpc.cfg:       ASCII text
uninstall.sh:   Bourne shell script text executable

icc、iccver.csh、iccver.sh、icpcはシェルスクリプトだが、<INSTALLDIR>というのがあってちゃんと動かない。RPMでインストールした時はRPMによってインストールディレクトリに置換されるのだろう。
 そこで、INSTALLDIRという変数を定義して、<INSTALLDIR>を$INSTALLDIRに置換することにした。patchは以下の通り。

あとはPATH、MANPATH、LD_LIBRARY_PATHを設定すればOK。私の.bashrcには次のような記述がある。

# for Intel C++/Fortran Compiler

INTEL_CC=/opt/intel_cc_80
INTEL_FC=/opt/intel_fc_80

PATH=$PATH:$INTEL_CC/bin:$INTEL_FC/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INTEL_CC/lib:$INTEL_FC/lib
MANPATH=$MANPATH:$INTEL_CC/man:$INTEL_FC/man
export PATH
export MANPATH
export LD_LIBRARY_PATH

テスト

はじめに"Hello World"ありき。ということで、

#include <iostream>

int main(){
    std::cout<< "Hello World"<< std::endl;
    return 0;
}

を、hello.ccに書いてコンパイルしてみる。

$ icc hello.cc -I/opt/intel_cc_80/include/c++ -cxxlib-icc
$ ./a.out
Hello World

うまくいった。

まとめ

DebianにIntel C++/Fortran Compilerをインストールした。IntelからはRPMで配布されるため、alienでdebパッケージに変換し、シェルスクリプト中の<INSTALLDIR>を$INSTALLDIRに置換し、INSTALLDIRという変数を宣言することで対応した。