一、进入Ubuntu子系统界面进入Ubuntu子系统界面在开始界面搜索框中进行搜索点击“打开”进入Ubuntu子系统界面二、替换软件源进入目录zkjDESKTOP:~$ cd /etc/apt/sources.list.d/ zkjDESKTOP:/etc/apt/sources.list.d$展示文件夹内容zkjDESKTOP:/etc/apt/sources.list.d$ ll total 12 drwxr-xr-x 2 root root 4096 Apr 23 2024 ./ drwxr-xr-x 8 root root 4096 Apr 23 2024 ../ -rw-r--r-- 1 root root 3016 Oct 27 2025 ubuntu.sources zkjDESKTOP:/etc/apt/sources.list.d$我们需要替换掉ubuntu.sources文件的内容首先我们给它建立一个备份zkjDESKTOP:/etc/apt/sources.list.d$ sudo cp ubuntu.sources ubuntu.sources.bak [sudo] password for zkj:注意[sudo] password for zkj你自己的用户名这里直接按键盘输入即可界面中是不会显示出来的输完密码之后直接回车Enter键即可。然后查看目录是否建立备份。zkjDESKTOP:/etc/apt/sources.list.d$ ll total 16 drwxr-xr-x 2 root root 4096 Jul 6 21:07 ./ drwxr-xr-x 8 root root 4096 Apr 23 2024 ../ -rw-r--r-- 1 root root 3016 Oct 27 2025 ubuntu.sources -rw-r--r-- 1 root root 3016 Jul 6 21:07 ubuntu.sources.bak注意到ubuntu.sources文件此时没有修改权限-rw-r---r--我们首先需要加上修改权限zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$ ll total 16 drwxr-xr-x 2 root root 4096 Jul 6 21:07 ./ drwxr-xr-x 8 root root 4096 Apr 23 2024 ../ -rw-r--r-- 1 root root 3016 Oct 27 2025 ubuntu.sources -rw-r--r-- 1 root root 3016 Jul 6 21:07 ubuntu.sources.bak zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$ sudo chmod aw ubuntu.sources [sudo] password for zkj: zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$ ll total 16 drwxr-xr-x 2 root root 4096 Jul 6 21:07 ./ drwxr-xr-x 8 root root 4096 Apr 23 2024 ../ -rw-rw-rw- 1 root root 3016 Oct 27 2025 ubuntu.sources -rw-r--r-- 1 root root 3016 Jul 6 21:07 ubuntu.sources.bak zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$注意到权限由原来的-rw-r---r--变为-rw-rw-rw-代表该文件可被用户修改然后需要改动ubuntu.sources文件的内容适用vim命令zkjDESKTOP:/etc/apt/sources.list.d$ vim ubuntu.sources回车进入后界面为进入后执行以下操作第一步按键盘上的“Esc”键。第二步键盘直接输入ggdG则会显示全部删除第三步键盘按“i键进入修改模式修改模式下会显示--INSERT--第四步复制以下内容Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ Suites: noble noble-updates noble-backports Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ Suites: noble-security Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: https://mirrors.ustc.edu.cn/ubuntu/ Suites: noble noble-updates noble-backports Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: https://mirrors.ustc.edu.cn/ubuntu/ Suites: noble-security Components: main universe restricted multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg第五步回到Ubuntu界面鼠标点击以下界面第六步按鼠标右键就会进行粘贴操作第七步按”Esc键回到普通模式普通模式下的界面左下角的--IINSERT--会消失第八步然后键盘输入:wq然后回车即可保存修改回到目录然后执行软件源的更新操作zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$ sudo apt-get update等待更新完成三、下载压缩包和依赖包从OpenFOAM的官方路径下载OpenFOAM-v2106安装包Source: https://dl.openfoam.com/source/v2106/OpenFOAM-v2106.tgzThirdParty: https://dl.openfoam.com/source/v2106/ThirdParty-v2106.tgz一般是下载到windows的位置我们需要将其复制到Ubuntu子系统中首先我们先建立一个文件夹zkjDESKTOP-7SL209P:/etc/apt/sources.list.d$ cd ~ zkjDESKTOP-7SL209P:~$ mkdir OpenFOAM zkjDESKTOP-7SL209P:~$ ll total 64 drwxr-x--- 4 zkj zkj 4096 Jul 6 21:39 ./ drwxr-xr-x 4 root root 4096 Oct 27 2025 ../ -rw------- 1 zkj zkj 151 Jul 6 20:59 .bash_history -rw-r--r-- 1 zkj zkj 220 Oct 27 2025 .bash_logout -rw-r--r-- 1 zkj zkj 3771 Oct 27 2025 .bashrc drwx------ 2 zkj zkj 4096 Oct 27 2025 .cache/ -rw-rw-r-- 1 zkj zkj 0 Jul 6 20:47 .motd_shown -rw-r--r-- 1 zkj zkj 807 Oct 27 2025 .profile -rw-r--r-- 1 zkj zkj 0 Jul 6 21:07 .sudo_as_admin_successful -rw------- 1 zkj zkj 28881 Jul 6 21:32 .viminfo drwxr-xr-x 2 zkj zkj 4096 Jul 6 21:39 OpenFOAM/ zkjDESKTOP-7SL209P:~$进入OpenFOAM文件夹中zkjDESKTOP-7SL209P:~$ cd OpenFOAM/ zkjDESKTOP-7SL209P:~/OpenFOAM$然后将windows中的压缩包复制过来zkjDESKTOP-7SL209P:~/OpenFOAM$ cp -rf /mnt/d/Downloads/OpenFOAM-v2106.tgz . zkjDESKTOP-7SL209P:~/OpenFOAM$注意/mnt则代表是windows文件目录然后我的压缩包位置是D盘Downloads文件夹因此路径是/mnt/d/Downloads/OpenFOAM-v2106.tgz你需要根据你的路径进行相应修改。然后不要忘记最后的.它代表粘贴到当前文件夹下。检查一下是否复制成功zkjDESKTOP-7SL209P:~/OpenFOAM$ ll total 64432 drwxr-xr-x 2 zkj zkj 4096 Jul 6 21:41 ./ drwxr-x--- 4 zkj zkj 4096 Jul 6 21:39 ../ -rwxr-xr-x 1 zkj zkj 65968877 Jul 6 21:41 OpenFOAM-v2106.tgz*显示已经复制成功然后需要zkjDESKTOP-7SL209P:~/OpenFOAM$ tar -xvzf OpenFOAM-v2106.tgz等待解压完成查看是否成功OpenFOAM-v2106/modules/visualization/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/system/topoSetDict OpenFOAM-v2106/META-INFO/build-info OpenFOAM-v2106/META-INFO/manifest.txt OpenFOAM-v2106/META-INFO/modules-manifest.txt zkjDESKTOP-7SL209P:~/OpenFOAM$ ll total 64436 drwxr-xr-x 3 zkj zkj 4096 Jul 6 21:45 ./ drwxr-x--- 4 zkj zkj 4096 Jul 6 21:39 ../ drwxr-xr-x 12 zkj zkj 4096 Jun 28 2021 OpenFOAM-v2106/ -rwxr-xr-x 1 zkj zkj 65968877 Jul 6 21:41 OpenFOAM-v2106.tgz* zkjDESKTOP-7SL209P:~/OpenFOAM$对于ThirdParty: https://dl.openfoam.com/source/v2106/ThirdParty-v2106.tgz执行同样的操作结果为zkjDESKTOP-7SL209P:~/OpenFOAM$ ll total 309200 drwxr-xr-x 4 zkj zkj 4096 Jul 6 22:03 ./ drwxr-x--- 4 zkj zkj 4096 Jul 6 21:58 ../ drwxr-xr-x 14 zkj zkj 4096 Jul 6 22:00 OpenFOAM-v2106/ -rwxr-xr-x 1 zkj zkj 65968877 Jul 6 21:41 OpenFOAM-v2106.tgz* drwxr-xr-x 11 zkj zkj 4096 Jun 10 2021 ThirdParty-v2106/ -rwxr-xr-x 1 zkj zkj 250627915 Jul 6 22:03 ThirdParty-v2106.tgz* zkjDESKTOP-7SL209P:~/OpenFOAM$然后安装OpenFOAM-v2106依赖的包zkjDESKTOP-7SL209P:~/OpenFOAM$ sudo apt-get install build-essential autoconf autotools-dev cmake gawk gnuplot碰到类似下面的问题The following packages will be upgraded: dpkg gcc-14-base libbz2-1.0 libc-bin libc6 libgcc-s1 libpcre2-8-0 libstdc6 locales 9 upgraded, 109 newly installed, 0 to remove and 259 not upgraded. Need to get 110 MB/121 MB of archives. After this operation, 390 MB of additional disk space will be used. Do you want to continue? [Y/n]一律输入“Y进行同意Do you want to continue? [Y/n] Y完成后安装其他的包操作类似zkjDESKTOP-7SL209P:~/OpenFOAM$ sudo apt-get install flex libfl-dev libreadline-dev zlib1g-dev openmpi-bin libopenmpi-dev mpi-default-bin mpi-default-dev同样地同意占用内存操作”Y”完成后安装其他包操作类似Processing triggers for install-info (7.1-3build2) ... zkjDESKTOP-7SL209P:~/OpenFOAM$ sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev bison在 ~/.bashrc 中添加OpenFOAM的环境变量首先进入文件zkjDESKTOP-7SL209P:~/OpenFOAM$ vim ~/.bashrc进入后界面长这样然后键盘按GG操作可以移动到文件末尾然后键盘按“i”键进入编辑模式按键盘上的上下左右键将光标调整到下一行位置右移动两下然后回车然后复制一下内容alias of2106source ~/OpenFOAM/OpenFOAM-v2106/etc/bashrc然后按鼠标右键粘贴到文末位置然后键盘按“Esc”键回到普通模式然后键盘输入:wq就可以保存退出zkjDESKTOP-7SL209P:~/OpenFOAM$ vim ~/.bashrc zkjDESKTOP-7SL209P:~/OpenFOAM$更新环境变量zkjDESKTOP-7SL209P:~/OpenFOAM$ source ~/.bashrc zkjDESKTOP-7SL209P:~/OpenFOAM$然后执行zkjDESKTOP-7SL209P:~/OpenFOAM$ of2106 No completions for /home/zkj/OpenFOAM/OpenFOAM-v2106/platforms/linux64GccDPInt32Opt/bin [ignore if OpenFOAM is not yet compiled]这种显示代表操作没问题然后编译OpenFOAM库zkjDESKTOP-7SL209P:~/OpenFOAM$ foam zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ ./Allwmake四、版本不匹配的编译问题的处理编译几分钟后会碰到如下的报错信息如没有请忽略-fPIC -c primitives/strings/word/word.C -o /home/zkj/OpenFOAM/OpenFOAM-v2106/build/linux64GccDPInt32Opt/src/OpenFOAM/primitives/strings/word/word.o primitives/strings/word/word.C: In function ‘Foam::word Foam::name(const void*)’: primitives/strings/word/word.C:168:32: error: ‘uintptr_t’ was not declared in this scope 168 | buf 0x std::hex uintptr_t(ptr); | ^~~~~~~~~ primitives/strings/word/word.C:33:1: note: ‘uintptr_t’ is defined in header ‘cstdint’; did you forget to ‘#include cstdint’? 32 | #include sstream |#include cstdint 33 | make: *** [/home/zkj/OpenFOAM/OpenFOAM-v2106/wmake/rules/General/transform:35: /home/zkj/OpenFOAM/OpenFOAM-v2106/build/linux64GccDPInt32Opt/src/OpenFOAM/primitives/strings/word/word.o] Error 1 zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$这是由于编译环境太新zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ gcc -v Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper OFFLOAD_TARGET_NAMESnvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversionUbuntu 13.3.0-6ubuntu2~24.04.1 --with-bugurlfile:///usr/share/doc/gcc-13/README.Bugs --enable-languagesc,ada,c,go,d,fortran,objc,obj-c,m2 --prefix/usr --with-gcc-major-version-only --program-suffix-13 --program-prefixx86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir/usr/libexec --without-included-gettext --enable-threadsposix --libdir/usr/lib --enable-nls --enable-bootstrap --enable-clocalegnu --enable-libstdcxx-debug --enable-libstdcxx-timeyes --with-default-libstdcxx-abinew --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checkingrelease --with-target-system-zlibauto --enable-objc-gcauto --enable-multiarch --disable-werror --enable-cet --with-arch-32i686 --with-abim64 --with-multilib-listm32,m64,mx32 --enable-multilib --with-tunegeneric --enable-offload-targetsnvptx-none/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checkingrelease --buildx86_64-linux-gnu --hostx86_64-linux-gnu --targetx86_64-linux-gnu --with-build-configbootstrap-lto-lean --enable-link-serialization2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1)OpenFOAM-v2106是比较老的版本因此我们需要手动修改一个文件zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ vim src/OpenFOAM/primitives/strings/word/word.C进入后移动光标到这个位置然后键盘按“o键复制粘贴一下信息#include cstdint显示先按”Esc键回到普通模式然后按:wq保存退出然后重新编译zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ vim src/OpenFOAM/primitives/strings/word/word.C zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ foam zkjDESKTOP-7SL209P:~/OpenFOAM/OpenFOAM-v2106$ ./Allwmake编译过程长达几个小时请不要断电和息屏保持电脑常亮。结束时候运行五、参考说明本文参考以下文章原文链接https://blog.csdn.net/Jerry_CLD/article/details/133343607