Intel C++/Fortran Compiler for Linux 的發行版只包含了給 RedHat 用的 .rpm 包裝,所以要把它裝到 Debian 上的話,不能用 Intel 給的安裝 script,得花點小工夫。
取得 Intel C++ Compiler 的 tarball。用 tar xvfz l_cc_pc_8[1].1.022.tar.gz 解開。
因為 Debian 的政策不希望使用者直接以 rpm 安裝軟體,而且用 rpm 似乎不太容易把包裝檔拆開來,所以我們要用 alien 先把 ICC (Intel C++ Compiler) 裡的 rpm 包裝轉成 deb:
sudo alien -d intel-icc8-8.1-022.i386.rpm
如果是用標準的 ia32 是這個檔;如果是在 ia64 下就改用 .ia64.rpm。
然後會生成一個 intel-icc8_8.1-23_i386.deb 檔案,我們用:
dpkg -x intel-icc8_8.1-23_i386.deb test
把它解到暫存目錄裡面。
我喜歡把這些外加的套件裝到 /usr/local ,所以請:
sudo mv test/opt/intel_cc_80 /usr/local
把整個目錄搬過去。
因為我們完全用手動的方式安裝,所以 $ICCROOT/bin 下所有 script 的路徑都沒有設定,得要自已改成正確的;
這個字串要取代成 /usr/local/intel_cc_80 。 可以把以下的 python script 存到 $ICCROOT/bin 裡面 (我取名為 cinst.py ,記得要 chmod a+x cinst.py):
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from re import sub
from glob import glob
fns = glob("*[!.py]")
for fn in fns:
f = open( fn )
lines = f.readlines()
f.close()
f = open( fn, 'w' )
for l in lines:
f.write( sub("", "/usr/local/intel_cc_80", l) )
f.close()
print "%s processed." % fn執行它,就會自動把該目錄所有 script 內的
取代成 /usr/local/intel_cc_80 。如果你安裝的位置不同於我,請修改這個檔案。在執行這個 script 之前,最好也先把 $ICCROOT/bin 備份起來。 修改 $ICCROOT/bin/iccvars.sh (或 iccvars.csh),把從 if [ -z "${MANPATH}" ] 開始的那一段設定 (共 6 行) comment out 掉 (即在行首加上 # 字元)。這段對 $MANPATH 的設定在 Debian 上沒什麼用。
想要把 ICC 的 manpage 加到系統裡,在 /etc/manpath.config 裡加上下面這一行:
MANPATH_MAP /usr/local/intel_cc_80/bin /usr/local/intel_cc_80/man
就可以了。
把你的 license file 複製到 $ICCROOT/licenses 。
. $ICCROOT/bin/iccvars.sh 後,即可開始使用 Intel C++ Compiler。
P.S. 以上的指令有用到 sudo 的,表示要用 root 的權限執行,你當然也可以直接 su 成 root。
P.P.S. 我用 $ICCROOT 來表示 ICC 安裝的目錄,你不必真的建立這個環境變數。