在ubuntu上安装Intel Fortran和C++

转自 http://blog.163.com/zhibinfan@yeah/blog/static/16209617020113941516622/

 

Intel软件包下载地址http://software.intel.com/zh-cn/articles/non-commercial-software-download/


按照下面的方法是可以顺利安装的。但是,在test时会报错说:
ifort: internal error: error generating temporary file name  (shared/driver/hostutil.c, line 366)
因为我明明知道我的tmp是有空间的,所以非常奇怪。但是为了确保不会出问题,还是把/tmp的权限修改成了777.结果错误通过!
=========================================================
首先:准备必要的库。
在64位ubuntu下安装intel fortran 11

此 为64位ubuntu下安装intel fortran 11 for linux的一些问题的解决步骤,写这个的原因是有几个师兄师弟在64位的系统下装intel fortran都没有安装成功(多半应该是依赖关系没有解决),所以尝试写一个教程,在这里记录备用。
我自己是只在ubuntu下装过,用apt 类型的包管理器的系统应该都一样了,不过就算包管理器换成了yum应该也没什么区别,把apt-get install 换成yum install也差不多了吧……以下是一些步骤:

首先保证你的系统装有ifort需要的编译使用的基本库。如gcc g++等,正常的话,一般的系统都已经安装了。
如果没有,可以使用下面命令安装,安装过程中可能会询问你是否要让apt-get自己解决依赖关 系,把问题都交给计算机好了。
apt-get install gcc
apt-get install build-essential
apt-get install g++

如 果你像我一样在64位系统上同时也安装32位的ifort,你会需要再安装一些32位库支持,不过,据一些 同学报告,即使只安装amd64版本的编译器也需要这些库(!),所以不管怎样都装了吧,也不差那几百KB的空间……这些库在我这里是已经安装了的,如果 你没有,使用命令:
apt-get install ia32-libs
之后就可以安装其他一些32位的库了,可能还会需要安装下面这些 库,如果你的机器之前做过32位程序的编译的话,这些库应该都已经安装了:
apt-get install libstdc++5
apt-get install lib32stdc++6
apt-get install libc6-dev-i386
apt-get install gcc-multilib
apt-get install g++-multilib

然而,如果你用的是 9.10版本的ubuntu,你可能会发现9.10的库里面已经不提供libstdc++5了(……装ifort这个库是必要的)
不过我们可以使 用debian的库(来,debian的用户都来骂ubuntu吧),到
http://packages.debian.org/stable/base/libstdc++5
下 载i386和amd64的版本deb包
cd到deb包所在的目录,直接安装amd64的包:
dpkg -i libstdc++5_xxxxx_amd64.deb
而对于i386的包会有些麻烦,因为如果你直接安装这个包的话(可能会需要加 --force-architecture参数),安装程序会将32位的库覆盖64位的……
所以可能需要手动解压这个包:
dpkg --extract libstdc++_xxxxx_i386.deb ./

之后将解出的文件夹中的lib目录下的 libstdc++.so.5.xxx复制到系统的32位库中,再将它链接到libstdc++.so.5上面即可。
cd usr/lib
cp libstdc++.so.5.xxx /usr/lib32
cd /usr/lib32
ln -s libstdc++.so.5.xxx libstdc++.so.5


======================================================================
然后安装rpm包
经过测试表明,直接运行安装包中的 install.sh 文件确实无法完成安装。通过上网搜索找到了相关的安装方法,下面只是把安装步骤记录一下。
提示:下面的信息是按照 10.1.008 版本编译器安装步骤记录的,如果是其他步骤,请自行调整版本编号等信息。
1、获得软件包及相关文件
首 先去http://www.intel.com/cd/software/products/apac/zho/compilers /326135.htm,填写自己的 email 地址,并下载自己想要的编译器安装包,在出现下载连接地址之后,可以选择需要安装的版本,我选择的版本为免费非商业版本 10.1.008。这也是写这篇文档时最新的版本,其他版本安装过程应该是类似的。
下载名为 l_cc_p_10.1.008.tar.gz 和 l_fc_p_10.1.008.tar.gz 的安装包,分别为 Intel C++ 编译器 和 Intel Fortran 编译器。
同时去注册的 email,收取 Intel 公司发来的邮件,邮件附件中包含有相关的 license 文件,名字分别为 NCOM_L_CMP_CPP_NB96-62KR6ZTD.lic 和 NCOM_L_CMP_FOR_NDXX-WMM6JDJF.lic。
安装过程中需要 alien 工具将 RPM 包转换为 debian 安装包,如果没有,执行
代码:
sudo apt-get install alien
安装。
2、安装软件包
其实两款编译器的安装过程是类似的,这里一起写下了。
解压:
代码:
tar xzvf l_cc_p_10.1.008.tar.gz
tar xzvf l_fc_p_10.1.008.tar.gz
编译器安装
C++ 编译器:
代码:
cd l_cc_p_10.1.008/data
sudo alien -cv intel-icc101008-10.1.008-1.i386.rpm
sudo dpkg -i intel-icc101008_10.1.008-2_i386.deb
Fortran 编译器:
代码:
cd l_fc_p_10.1.008/data
sudo alien -cv intel-ifort101008-10.1.008-1.i386.rpm
sudo dpkg -i intel-ifort101008_10.1.008-2_i386.deb
3、LICENSE 文件
创建 /opt/intel/licenses 目录
代码:
sudo mkdir -p /opt/intel/licenses
把邮件附件中的文件拷贝到这个目录下
代码:
sudo cp /your/license/path/NCOM_L_CMP_CPP_NB96-62KR6ZTD.lic /opt/intel/licenses
sudo cp /your/license/path/NCOM_L_CMP_FOR_NDXX-WMM6JDJF.lic /opt/intel/licenses
4、设置环境变量
Intel C++ 编译器:
代码:
cd /opt/intel/cc/10.1.008/bin
使用 perl 修改文件中的内容(注意第二行中的 \/opt\/intel\/cc\/10.1.008/ 表示安装路径,其他版本按照实际情况调整)
代码:
sudo perl -pi -w -e 's/!\/bin\/sh/!\/bin\/bash/g;' *
sudo perl -pi -w -e 's/<INSTALLDIR>/\/opt\/intel\/cc\/10.1.008/g;' *
执行脚本文件
代码:
. ./iccvars.sh
如果希望每次打开终端都能够自动设置,将
代码:
source /opt/intel/cc/10.0.008/bin/iccvars.sh
加入到 ~/.bashrc 文件末尾。
Intel Fortran 编译器:
代码:
cd /opt/intel/fc/10.1.008/bin
使用 perl 修改文件中的内容(注意第二行的 \/opt\/intel\/fc\/10.1.008/ 表示安装路径,其他版本按照实际情况调整)
代码:
sudo perl -pi -w -e 's/!\/bin\/sh/!\/bin\/bash/g;' *
sudo perl -pi -w -e 's/<INSTALLDIR>/\/opt\/intel\/fc\/10.1.008/g;' *
执行脚本文件
代码:
. ./iccvars.sh
如果希望每次打开终端都能够自动设置,将
代码:
source /opt/intel/fc/10.1.008/bin/ifortvars.sh
加入到 ~/.bashrc 文件末尾。
5、验证安装
执行命令
代码:
icc --version
应当看到如下信息:
代码:
icc (ICC) 10.1 20070913
Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
执行命令
代码:
ifort --version
应当看到如下信息:
代码:
ifort (IFORT) 10.1 20070913
Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
如果一切正常,表明安装成功。
6、卸载
卸载过程还是比较简单的。
代码:
sudo apt-get remove intel-icc101008
sudo apt-get remove intel-ifort101008
编辑 ~/.bashrc 文件,删除代码
代码:
source /opt/intel/cc/10.1.008/bin/iccvars.sh
source /opt/intel/fc/10.1.008/bin/ifortvars.sh
评论
#SCYANGYU 发表于2008-05-02 13:45:33 IP: 61.171.13.*
不错!
照着这样做,解决了我的问题!
不过有两点没有说清,我来补充一下:
需要把lic文件的读写权限进行修改,否则会出现lic找不到的问题。
sudo chmod 777 NCOM_L_CMP.lic
#SCYANGYU 发表于2008-05-02 13:47:50 IP: 61.171.13.*
使用 perl 修改文件中的内容,就是修改ifortvars.sh文件的内容。

你可能感兴趣的:(fortran)