
去年接了个项目要用Abaqus 6.13做显式动力学分析实验室那台工作站装的是Ubuntu 16.04 LTS老板还指定必须用6.13版。Windows底下装Abaqus已经是出了名的折腾换成Linux之后的坑可想而知网上能找到的中文资料不是缺步骤就是版本对不上我前后踩了一周多的坑才终于把这东西完全跑起来。这篇就专门记录我在Ubuntu 16.04 LTS上安装Abaqus 6.13的完整经历从依赖库整理、安装流程、许可证服务器配置到各种报错排查全部写清楚。不管你是做土木、机械还是材料仿真只要你的计算平台是Ubuntu且需要装这款有限元软件这份记录应该能帮你少走不少弯路。1. 安装思路与版本选型解析1.1 为什么这个组合这么难装Abaqus 6.13是2013年底发布的版本而Ubuntu 16.04是2016年发布的系统。这两者的组合之所以麻烦核心问题在于二进制兼容性。Abaqus的Linux版大量使用老旧的库文件比如libstdc5、libjpeg.so.62这类在现代Linux发行版里早就被替换掉的东西而16.04默认的gcc是5.4版本系统仓库里根本没带这些旧库。装Abaqus 6.13很大一部分工作就是在和这些老库打交道。另外Abaqus 6.13的图形界面用的是老版本的Qt和Motif组件在现代的桌面环境上经常出现白屏、字体异常、无法启动CAE等问题。这个不是单纯的安装问题而是运行环境兼容问题。我见过不少人在这一步放弃转回Windows去装但其实这些问题都有对应的解决套路。1.2 安装前必须理清的三条主线装Abaqus 6.13和装其他大型商业软件不一样它不是双击一个安装程序就完事的。它的安装逻辑可以拆成三条主线第一是许可证服务器。Abaqus用的是FlexLM授权体系不管你是正版授权还是学习用的测试授权都必须先在Linux上把许可证服务跑起来。这是单独的一套安装程序安装顺序上需要最先完成。第二是Abaqus主程序。包括CAE前处理、Standard/Explicit求解器、Abaqus/Viewer等模块安装过程中会让你指定许可证服务器的地址。第三是文档。Abaqus自带完整的用户手册和理论文档这部分的体积非常大如果不是离线环境未必用得到而且装它特别耗时完全可以跳过不装。理清这三条线之后再动手思路就清晰很多遇到问题也知道往哪个方向去查。2. 安装前的系统环境准备与依赖库配置2.1 新建用户、检查主机名和临时目录Abaqus官方要求不能直接用root账户安装运行这主要是防止安装和后续计算时权限过大导致误操作。所以我先建了一个专门跑仿真用的普通用户命令如下sudo adduser simuser实际操作中还要注意主机名的问题。Abaqus许可证服务器在启动时需要正确识别主机名所以最好提前检查一下/etc/hostname和/etc/hosts是否配置一致。举个例子如果你机器的主机名是workstation那/etc/hosts里至少要有一行127.0.0.1 localhost 127.0.1.1 workstation我一开始忽略了这一步结果许可证服务一直起不来报错是找不到主机名。另外还有一个特别关键的点Abaqus安装程序在安装过程中会向/tmp和/var/tmp写入临时文件如果这两个目录权限不对安装程序会中途莫名退出。稳妥起见检查一下chmod 1777 /tmp /var/tmp2.2 依赖库安装一个都不能少这一部分是整个安装过程中最容易出问题的地方。Ubuntu 16.04自带的软件源里默认没有Abaqus 6.13需要的老库需要逐个安装。我实际用到的安装命令如下sudo apt-get update sudo apt-get install -y csh ksh lsb-core libstdc5 libjpeg62 libmotif-dev libxp6 libxpm4 libxt6 libxm4逐条说一下这些包各自的用途csh和kshAbaqus的安装脚本和启动脚本是用C Shell写的没有csh根本无法执行安装这是最容易忽略的一条。lsb-coreAbaqus需要LSBLinux Standard Base兼容层缺了它安装程序会直接提示缺少/lib/ld-lsb.so.3这类文件。libstdc5Abaqus 6.13的Java组件和部分求解器模块依赖这个老版本C标准库。在16.04的源里还能找到高版本Ubuntu就必须手动下载了。libjpeg62这个是老版本JPEG图像库主要是文档和图形输出模块在用。libmotif-devMotif是Abaqus/CAE图形界面依赖的组件库不装它CAE启动时大概率报错或者白屏。libxp6和libxpm4老版本X11协议相关的扩展库属于历史遗留需求。这里多说一句libmotif-dev还需要它依赖的libxmu-dev和libxt-devapt会自动处理一般不会漏。2.3 安装包的准备和临时目录规划Abaqus 6.13的Linux安装包通常是以ISO镜像文件的形式分发里面分了三个主要目录许可证服务器安装程序、Abaqus主程序安装程序以及文档安装程序。我当时的做法是直接解压而不是挂载ISO因为多张镜像反复挂载比较麻烦。mkdir ~/abaqus_install cd ~/abaqus_install # 假设镜像文件在 /mnt/iso unzip -d Abaqus613_1 Abaqus613_linux64_1.zip unzip -d Abaqus613_2 Abaqus613_linux64_2.zip需要注意解压后文件名里的目录层级默认带着很长的路径直接复制到另一个地方时容易因为路径过长而失败。我的建议是解压后立刻把文件夹重命名为简短的路径比如~/abaqus_install/1、~/abaqus_install/2后续执行安装脚本时省去很多因为路径复杂导致的麻烦。提示安装包解压之后的大小接近10GB确认磁盘剩余空间足够再开始安装。另外安装Abaqus主程序本身大概占用5GB以上空间也要提前规划好。3. 正式安装过程与许可证服务器配置3.1 许可证服务器的安装流程许可证服务器在整个体系里地位特殊因为它决定了Abaqus主程序能不能启动。按照官方文档应该先安装许可证服务器。进入解压后的文件夹里面有一个Linux64子目录运行里面的setupcd ~/abaqus_install/1/Linux64 ./setup这时候会弹出一个图形化的安装引导界面。如果你是在本地机器上操作一般直接能看到界面如果是通过SSH远程安装则需要提前用export DISPLAY:0.0之类的设置把图形界面转发到本地。这个我后面在问题排查部分细说。安装过程中会有几个交互选项比较关键的是选择安装类型这里要选License Server不要选Product。指定安装目录默认是/opt/SIMULIA/License可以直接用默认值或者统一安装到/usr/SIMULIA下看自己的习惯。许可证文件位置它会让你指定一个license文件但真正可靠的流程是安装完成后去替换它推荐的默认文件。安装完成后许可证服务器的二进制文件位于安装目录下的linux_a64子目录我们需要把授权文件放在这里并启动服务。假设授权文件叫abaqus.lic手动启动的命令是cd /opt/SIMULIA/License/linux_a64 ./lmgrd -c abaqus.lic -l /var/tmp/license.log如果license文件配置正确日志里会出现类似Server started on hostname的信息。3.2 授权文件的具体配置细节授权文件是许可服务器能否正常启动的关键。Abaqus的授权文件开头通常是这样的结构SERVER this_host 001122334455 27011 VENDOR ABAQUSLM /opt/SIMULIA/License/linux_a64/ABAQUSLM USE_SERVER其中SERVER这行第一个字段是主机名可以直接写this_host。但在这台机器上如果写这个不生效就手动把this_host替换成/etc/hostname里显示的名字。第二字段是主机网卡的物理地址也就是MAC地址。用ifconfig看当前活动网卡的HWaddr填进去。注意这里必须是真实存在的网卡地址不能随便填。第三个字段是端口号默认27011如果你机器上端口冲突可以换成其他未占用端口但后续配置的所有地方都要保持一致。对于正版用户license文件里的SERVER和FEATURE行都是代理商根据你的机器信息生成好的难度不大重点在于格式别弄乱。对于学习版用户来说更要注意改MAC地址这个操作一定要准确。3.3 Abaqus主程序的安装步骤详解许可证服务器装好并确认能启动之后就可以开始安装Abaqus主程序了。进入主程序安装包目录仍然运行setupcd ~/abaqus_install/2/Linux64 ./setup这里和许可证安装不同选择安装Abaqus/CAE、Standard、Explicit等主程序模块。安装过程中有几个关键界面值得重点关注指定安装路径默认是/usr/SIMULIA/Abaqus保持默认即可。官方建议路径不要包含空格和特殊符号Linux下一般都不会踩这个坑。指定许可证服务器地址这一步最考验耐心。界面上会问License服务器类型和地址格式是27011hostname其中27011是刚才许可证SERVER行里的端口号hostname是你许可证服务器的机器名。我一开始在这里填了IP地址结果运行时Abaqus能连上但识别不了授权后来改成主机名就正常了。选择执行文件目录默认是/usr/SIMULIA/Commands也就是存放abaqus启动命令的地方。安装过程比较长从开始到结束大概需要20-40分钟取决于机器性能。期间不要中断也不要去动图形界面窗口。3.4 安装后的目录结构与权限检查主程序安装完成后建议先检查一下目录结构和关键文件权限避免后面启动时报各种奇怪的错误。一个正常的安装目录结构大概是这样/usr/SIMULIA/Abaqus/6.13-1/ ├── CAEresources ├── Exec ├── Site ├── code ├── installation_info └── ...Site目录里有一个custom_v6.env文件这是Abaqus启动时读取的核心环境配置文件。如果安装过程中许可证地址写错了直接改这个文件比重新安装高效得多。打开这个文件检查是否有这样一行abaquslm_license_environmentABAQUSLM_LICENSE_FILE license_server27011your_hostname如果license_server行不对用文本编辑器改成实际配置即可。提示修改custom_v6.env之前最好备份一份原始文件这个文件里有大量求解器相关的环境变量乱动可能导致整个Abaqus启动失败。4. 环境变量配置与安装验证4.1 配置Abaqus启动环境Abaqus主程序装完后系统还不知道去哪里找abaqus命令。安装程序默认把启动命令放在/usr/SIMULIA/Commands下但是不会自动把它加进PATH环境变量。我个人的习惯是把这些命令目录追加到/etc/profile.d/下的自定义配置里这样所有用户都能直接用sudo bash -c echo export PATH/usr/SIMULIA/Commands:\$PATH /etc/profile.d/abaqus.sh source /etc/profile.d/abaqus.sh配置完成后在终端输入which abaqus如果能输出路径就说明环境变量设置成功。这一步虽然看起来简单但很多人装完直接输abaqus提示找不到命令问题就是环境变量没配好。4.2 许可证环境变量的设置除了PATH之外许可证相关的环境变量也要一并设置否则即使which abaqus能输出路径启动时也会报ABAQUSLM_LICENSE_FILE未定义的错误。在同一个/etc/profile.d/abaqus.sh文件里继续追加export ABAQUSLM_LICENSE_FILE27011your_hostname注意这里写的端口号和主机名必须和授权文件SERVER行、custom_v6.env里保持一致。三个地方的配置只要有一个不一致Abaqus就没法正常获取授权。4.3 运行verify命令完成自检Abaqus自带了完整的环境自检工具verify可以帮助我们确认各个模块是否安装正确。这一步强烈建议做很多潜在问题在验证阶段就能暴露出来而不是等到真正运行作业时才发现。abaqus verify -all这个命令会依次检查CAE、Standard、Explicit、文档等各个模块输出结果会用OK、WARNING或FAILED标记。重点关注是否有FAILED项目。我自己跑验证时Standard和Explicit求解器都显示OK但CAE出现了WARNING提示显示环境存在兼容性问题。这个不影响求解器使用但对于需要图形前处理的用户来说还是需要解决的具体办法在下面问题排查部分详细说。4.4 图形界面的基本运行测试验证无误后直接输入abaqus cae测试启动界面。第一次启动会比较慢因为要加载大量资源文件耐心等半分钟到一分钟。如果图形界面能正常出现并且能进入Part模块创建一个部件那安装就算大功告成。如果界面白屏、闪退、或者只有菜单栏没有绘图窗口那就往下看问题排查章节问题大多出在Motif和显示库的细节上。5. 常见问题与故障排查方法5.1 问题速查表我把安装过程中最容易踩的坑整理成一张表方便大家对照排查现象根本原因解决方法setup安装界面闪退或无法启动缺少csh或者DISPLAY变量没设置sudo apt install csh本地操作确认DISPLAY已设置许可证服务启动后日志报Cannot find hostname/etc/hosts里没有本机主机名的映射在/etc/hosts添加本机IP和主机名对应关系许可证卡在Waiting for vendor daemon to startlicense文件里VENDOR行的路径不对检查ABAQUSLM的实际绝对路径必须在license文件里写完整abaqus命令提示找不到PATH环境变量未配置把/usr/SIMULIA/Commands加入PATH启动CAE后界面白屏缺少libmotif或libXm相关库安装libmotif-dev、libxm4并确认没有缺失依赖报error while loading shared libraries: libjpeg.so.62缺libjpeg62sudo apt install libjpeg62运行求解器时报UnicodeDecodeError或locale问题系统locale没有正确设置设置为en_US.UTF-8且不要保留中文乱码环境图形界面中文显示乱码X11字体配置问题设置export ABAQUS_USE_XFT1或安装fonts-wqy-zenhei5.2 许可证服务启动失败深度排查许可证问题是安装完后第一批遇到的问题。正常情况下启动后日志里会有Server started这样的字样。如果卡在Waiting for vendor daemon to start我建议从三个方面去排查第一确认license文件里的VENDOR行是否指定了正确的ABAQUSLM路径。这个路径是安装许可证服务器时的实际路径比如/opt/SIMULIA/License/linux_a64/ABAQUSLM如果输错vendor daemon永远起不来。第二确认端口没有被防火墙或者已占用的进程干扰。Ubuntu 16.04默认的ufw防火墙可能在运行临时关掉再测试一下sudo ufw disable。第三确认license文件里的MAC地址是否真的匹配当前网卡。这一步尤其容易被忽略如果你机器上有多个网卡比如wireless和ethernet共存务必要使用和主机名对应的那张网卡的物理地址。如果manual配置搞不定Abaqus其实还提供了一个图形化配置工具abaqus license utilities这个界面上能直接查看许可服务的状态、测试连接比手动敲命令直观很多。5.3 CAE图形界面启动白屏或闪退的处理Abaqus 6.13的CAE界面在Linux上白屏是高概率事件尤其是Ubuntu这类新内核的桌面环境上。我踩这个坑的时候试了很多方案最终有效的是两个措施配合安装libmotif库和libXm库这个是Abaqus界面的基础依赖缺的化白屏概率极高。设置Qt运行环境变量export ABAQUS_USE_XFT1这个可以强制让界面使用Xft字体渲染能解决大部分字体和渲染异常问题。如果还不行可以尝试关闭桌面环境的硬件加速。在GNOME桌面下打开终端运行export LIBGL_ALWAYS_SOFTWARE1再启动abaqus cae这个相对冷门但在我另一台机器上确实成功过。5.4 远程SSH安装时图形界面不显示的问题很多人是在机房服务器上装Abaqus通过SSH远程操作。这就会遇到图形界面无法显示的问题。基本思路是使用X11转发ssh -X simuser服务器地址在SSH会话里确认DISPLAY环境变量是否设置成功echo $DISPLAY如果输出类似localhost:10.0说明X11转发已经生效然后运行setup就能在本地看到图形界面。如果DISPLAY为空检查服务器的sshd配置里X11Forwarding yes是否打开以及本地是否运行了X server。对于Windows本地用户建议安装Xming或VcXsrv这类X服务器工具否则即使SSH带X转发本地也没有能显示图形界面的程序。5.5 求解器运行时的隐性问题安装和图形界面都没问题之后有本事求解器运行到一半会报一些奇怪错误。最常见的是报错信息和内存相关比如abaqus error: PYTHONHOME is not set correctly这是因为Abaqus自带的Python环境和系统Python环境冲突。解决方法很简单在环境变量配置里明确指定Abaqus自带的Python路径或者确保环境变量里没有手动设置过PYTHONHOME。我的做法是把Abaqus的Commands目录放在PATH最前面并且在/etc/profile.d/abaqus.sh里避免引入系统Python相关变量。另外跑并行多核作业时如果机器上的CPU核心数很多需要提前在环境变量里设置许可数量限制否则会因为许可不够而报错。设置方式在custom_v6.env或求解器参数里控制这个是后话但建议提前了解。6. 安装成功之后的一些使用心得安装本身折腾但用起来更需要注意一些细节。我自己实际跑完几个模型之后总结了几个和安装直接相关的使用建议。第一建议保留安装包和解压文件不要删。Abaqus运行时某些资源文件确实是从安装目录读取的但当你需要添加新模块或者修复损坏文件时重新解压和安装比重新下载整个镜像省事太多。我就是当初删了解压文件后来想补装Documentation模块结果得重新找安装包折腾了好几天。第二建议定期备份Site目录和custom_v6.env。这个文件是Abaqus运行时的核心配置如果你后续调整过求解器内存参数、临时文件目录或授权设置不小心改坏会导致整个Abaqus无法启动。备份一个几十KB的文件关键时刻能救命。第三环境变量配置集中管理。我后来把/etc/profile.d/abaqus.sh里的环境变量整合成一个函数脚本包含PATH、许可变量、临时目录设置等再用abaqus verify定期检查环境变化。这样即使系统更新导致变量重置也能快速恢复。第四不要试图在Ubuntu 18.04以上的系统里强行安装Abaqus 6.13。虽然部分依赖可以通过手动下载旧库解决但系统底层的glibc和图形栈变化太大很多模块会跑不起来。如果一定要用6.13版本建议用虚拟机装一套Ubuntu 16.04作为仿真专用环境成本远低于在更高版本系统上折腾。最后再分享一个安装过程中的小技巧。在我实际安装时用lsb_release -a确认系统版本很重要因为不少用户在16.04和16.10之间搞混了不同小版本的内核和库版本差异会导致Abaqus安装表现不同。安装前把系统的内核、架构和关键库版本记录下来后续排查时能省下大量时间。