此为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
如果你想要绕过intel的安装程序自己安装(intel提供了rpm包),可能需要安装rpm(如果是Fedora之类的系统就可以直接装了……)
apt-get install rpm
想要使用图形界面的IDB(这应该是intel fortran 11.0的新特性)的人需要安装java支持,装一个jre,在这里我们不讨论java(我讨厌java…):
sudo apt-get install sun-java6-jre
到这里我们大概已经解决了需要的依赖关系,使用intel提供的那个install.sh文件正常安装(大概就)可以了
没有太多可说的,不过,安装到一半可能会提示你说系统不支持云云,通常只有ubuntu版本9.04不会报这个错,因为9.04在官方支持的列表中。至少我的9.10会这样报错说:
– operating system type is not supported.
– system glibc or kernel version not supported or not detectable
– binutils version not supported or not detectable
Would you like to perform an unsupported install of this product? 之类的
不管,直接强行安装(打yes)即可。如果仍有问题,在报错的时候显示一下细节,一般会列出缺失的库,手动解决依赖罢……
安装结束后,在命令行中敲入(如果你和我一样同时装了32和64位的两个版本的话)
对于64位
source /opt/intel/Compiler/11.x/xxx/bin/ifortvars.sh intel64
ifort –help
对于32位
source /opt/intel/Compiler/11.x/xxx/bin/ifortvars.sh ia32
ifort –help
看看是否能运行。
如果安装了idb(和java支持),还可以敲入
idb
看看idb的图形界面是否可用。