折腾一周,终于在Linux系统上装了Abaqus 2022,并将其与gfortran关联,成功运行用户子程序。越折腾越发现是基础问题,在此记录踩的坑和解决办法。
写在前面:
27日早,惊闻李克强总理逝世。深切悼念。记得之前同学常玩谐音梗,因为谐音“理科强”而关注李总理。再听闻消息已是逝世,而且是卸任不久后逝世。叹惋。
27日傍晚,又闻吴尊友逝世。百味杂陈,再次悼念。
安装过程
需要根据你的电脑做调整。大致可以分为三步:安装破解版的软件许可服务器;安装Abaqus;设置子程序编译器的关联。
装激活服务器程序
破解服务器是Win和Linux、几个不同软件通用的。所以可能会和UG NX什么的打架,不同版本的也会打架。Abaqus 2022要求v11.13以上版本的FLEXIM程序,我装了v11.14,版本号2018开头的那个。还有个更新一点的(20开头),未尝试。点这下载:下载v11.14-Core(通用的主程序) 下载v11.14-Module(Abaqus的许可文件)
解压、合并到一个文件夹底下(这一步操作和Win下一样)后,做2处修改:
打开后缀为
.lic
的文件,把里面的this_host
字段改成你的计算机名,或者localhost
,其余的端口什么的不变,安软件时填的要与之对应。把.sh文件开头注释里的
#!bin/sh/
改成#!bin/bash/
(指定用bash运行该脚本),然后把整个文件夹移动到有root权限的文件夹下(比如/usr
下面,不然无法启动服务:
1 |
|
然后切换到复制到的文件夹,运行脚本:
1 |
|
如果一切正常,应该不会报错。用ps
或systemctl
看看是否正常运行:
1 |
|
如果能找到就说明跑起来了。不行的话就用kill
或killall
杀掉进程,或者运行uninstall.sh
,然后重来一遍。对着错误日志查,有助排查报错,我之前遇到的问题是没有权限开启服务:
1 |
|
也可能因为版本问题缺少lsb的库,在脚本里似乎已经考虑到此问题,但以防万一,遇到报错时也可尝试:
1 |
|
也可以开启回显,把脚本运行的细节打出来(或者加个 |tee foo.bar
打到文件里)慢慢查错(但其实并没有什么用):
1 |
|
嫌用方向键找历史命令烦的话,就用grep:
1 |
|
嫌需要重新打参数烦的话,就按Alt+.。需要快速清屏,就按Ctrl+U。如果灵活运用功能键操纵光标,选择和定位都很快,建议学一下。注意命令行下复制粘贴什么的是Ctrl+Shift+C/V/X。
装Abaqus
大致思路和以往的教程类似,但需要做调整,可能需要多装几次。这里贴一些别人的教程:CentOS+Intel Fortran CentOS下安装 各版本Abaqus下载 Ubuntu下安装1
先装好依赖和gfortran,并下载Linux版的安装镜像,提取码es38或者Win+Linux完整版的镜像,提取码9a94,解压(不要挂载)。
1 |
|
可以看看几个txt文件,里面列出了每个文件夹内的安装包内容。注意当前用户是否对文件有读写、执行权限。文件夹1里的安装程序会调用其他文件夹里的内容,但我安装时会找不到目录,所以就打开装4和5里面的东西,一个个装。不要安装3里面的FLEXIM Server。我装了核心的软件(Established Products)和CAA_API(在5里面),装帮助文档没成功,放弃。
修改bash的配置文件,添加环境变量
首先要改一下系统的环境变量(env),设置跳过许可验证,并应用于终端。要编辑的是shell的全局配置文件/etc/bash.bashrc
和用户配置文件~/.bashrc
,用文本编辑器在里面加一行export NOLICENSECHECK=true
:
1 |
|
然后就发现终端字体全变成白色了。不要惊慌,因为现在使用的是全局配置文件,一会再换回用户配置文件就行。这是一个坑,因为运行安装程序时需要sudo,只有改全局配置才能确保root用户身份时能读到加进去的环境变量,不然会一直报服务器版本不对,或者No Socket Connection (-7)错误。关于许可服务器的错误代码,看这个。
当然,用户配置文件也需要加这一行。而且有趣的是,在安装成功后,我删除全局配置文件里的那行环境变量,也不影响运行。之后需要对后缀为.sh
的脚本动些手脚。
改Linux.sh的内容
进入解压后的目录,用find命令找出Linux.sh的位置,并输出到当前目录下的文件:
1 |
|
然后照着这篇教程(Scientific Linux下安装)改。因为不是官方支持列表里的系统,只能强行跳过系统版本验证。
之后,把Linux.sh和上层目录里StartGUI.sh开头注释里的#!bin/sh/
改成#!bin/bash/
(指定用bash运行该脚本)。这里得夸夸KDE的文件管理器Dolphin,在浏览文件时按F4就能打开下拉终端,很方便。
然后切回上层目录,运行安装程序:
1 |
|
之后照着教程做就行,记得留意一下都装在哪个文件夹下了。我把它装在另一个分区下,并修改了fstab文件,设置了系统自动挂载,保证每次挂到同一个地方,程序能找到。如果许可服务器配置正确,应该可以正常安装。不正确的话,排查到问题再装。我一开始选择跳过,结果一直没搞好,重装后才行……
如果选择跳过许可验证,装完之后也可以跑到程序的Commands文件夹下检查下许可服务器状态:
1 |
|
安装完就可以切回自己的配置文件了:
1 |
|
(选做)快捷方式
把Commands目录下的程序做个链接,就可以随时随地敲abaqus来调用程序了。不过要注意,在哪启动,哪里就是工作目录,程序会读取当前目录下的配置文件,计算中产生的文件都会写到当前目录下面。然后就可以打开程序看看了。
1 |
|
也可以在启动器里再加个快捷方式,但从那里默认就是从Home启动了。
设置关联
照着这篇教程做。/media/kai/Software/Linux/SIMULIA/EstProducts/2022/linux_a64/SMA/site
(软件主程序目录)下的全是配置文件,修改lnx86_64.env
是修改全局配置,在工作目录下建abaqus_v6.env
是修改局部配置。但在这台电脑上,奇怪的是,同样的配置文件,放在工作目录下才起效果。因此,运行目录下需要复制一堆abaqus_v6.env
……
之后验证一下,直到需要用的功能全都PASS。不行再去查在当前目录下生成的verify文件下的log文件:
1 |
|
加-verbose是输出更多错误相关信息。如果只验证子程序相关的,把-all
换成-user_std
和-make
。如果想把验证时输出的结果保存下来,加-log
。更多参数,查官方文档。
关于设置CUDA加速,看这篇
之后,就是拼命学怎么使用软件的事了……