OpenFOAM 无网络安装教程


  • 网格教授 OpenFOAM教授 管理员

    一些同学电脑涉密不能上网,现写一个无网络安装教程,相对较为复杂,大家慢慢看。

    OpenFOAM安装主要有2种方式,一种是直接安装(类似win的绿色版),一种是编译安装。详细可参考 http://dyfluid.com/docs/install.html 同理ParaView也一样。直接安装的好处是省事,但是不能编译自己的求解器(需要安装预安装包)。编译安装需要安装预安装包,然后编译,较慢。

    无网络情况下,OpenFOAM编译安装主要分为2部分:

    1. 一个是安装预安装包

    2. 一个是编译OpenFOAM

    预安装包是编译OpenFOAM必备的软件,比如Gcc、Flex等。并且OpenFOAM的版本和Gcc版本要匹配。个人经验来看,第一部分比较复杂,第二部分编译比较简单。

    预安装包安装(Ubuntu server)

    本次采用Ubuntu server作为演示,讲解如何无网络安装预安装包。整个套路大体是在一个能联网的Ubuntu server上,下载好各种预安装包,然后拷贝到U盘。将U盘内容拷贝到不能联网的服务器,安装所有预安装包,编译OpenFOAM。

    1. 需要一个有网络的笔记本,安装一个Ubuntu server 18.04

    2. sudo vi /etc/apt/sources.list 将其中的

      deb http://archive.ubuntu.com/ubuntu bionic main
      deb http://archive.ubuntu.com/ubuntu bionic-security main
      deb http://archive.ubuntu.com/ubuntu bionic-updates main
      

      改成

      deb http://archive.ubuntu.com/ubuntu bionic main universe
      deb http://archive.ubuntu.com/ubuntu bionic-security main universe
      deb http://archive.ubuntu.com/ubuntu bionic-updates main universe
      

      否则你可能找不到openmpi-bin等预安装包

    1. 运行命令:

       sudo apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev libscotch-dev libptscotch-dev
      

      其会自行将这些包下载并安装好

    2. 现在切换到下面的目录:cd /var/cache/apt/下,其中文件夹archives下就是刚才我们下载的所有的预安装包的安装包,我们将archives文件夹打包并拷贝到优盘中。

    3. 将优盘中的打包好的archives文件夹复制到不能上网的Ubuntu server,解压缩后,在当前文件夹下运行sudo dkpg -i *.deb,其会自行安装所有的预安装包以及依赖文件,这样,OpenFOAM预安装包就安装好了

    后续的OpenFOAM编译参考 http://dyfluid.com/docs/install.html 并无差异。这个安装方法我在Ubuntu-desktop和Ubuntu-server上测试成功。

    其他linux发行版

    手头没有其他linux发行版。但感觉其他linux发行版也可以采用类似的套路,以Suse举例

    1. 找一个能联网的跟你服务器一样的Suse,下载预安装包

    2. 把预安装包拷贝到不能联网的Suse

    3. 安装预安装包,然后编译

    感兴趣的可以测试下

    可能的问题

    OpenFOAM这面不同的版本需要不同的Gcc,比如比较老的OpenFOAM(如OpenFOAM-1.5)需要Gcc-4.1,但一些较新的系统(比如Ubuntu 18)的Gcc为4.9,采用不匹配的Gcc编译OpenFOAM可能会发生错误,比如missing operator等。


  • 网格教授 OpenFOAM教授 管理员

    目前主要问题是服务器千兆网卡,目前其他设备不支持千兆,但千兆网卡向下不妥协,上不了网…



  • 是的,现在我遇到的一个问题就是GCC的版本问题,还不知道怎么在单机状态下把GCC的版本更新了。。这个还需要我去探究


  • 网格教授 OpenFOAM教授 管理员

    @范准
    要降级GCC还是升级?



  • 浏览邱师兄博客发现无网络安装也可以在相应版本虚拟机上安装好后直接打包拷贝到节点,附上链接:http://xiaopingqiu.github.io/2015/09/13/OpenFOAM-install-centOS/希望有用




  • 网格教授 OpenFOAM教授 管理员

    在虚拟机里安装跟集群上一样的系统,然后在虚拟机里编译好 OpenFOAM ,再拷贝到集群上去用(据信 cenoFOAM project 提供的安装包也是在虚拟机编译好的,而且在 cfd-online 论坛上也见有人推荐这么做)。

    这样拷贝可以使用,但不能实现重新编译。要实现再编译,只能:

    由于集群上缺少一些 OpenFOAM 依赖的包,要是一个一个去下载源码编译以补齐那些依赖的包,实在很费劲,