前言

SRIM 是一个 Windows 平台上用于计算带电粒子能损的软件包,典型的应用包括计算入射离子在靶材中的射程和 dE/dxdE/dx 能损曲线等。由于这是一个单字节程序,因此在中文系统中会存在显示问题,可以通过更改系统的区域和语言为美国/英语重启之后解决[2],但是会很麻烦,而且可能导致其他软件出现问题(例如部分软件可能读取到错误的区域),如下图所示。

错误显示的 SRIM
错误显示的 SRIM

为了解决这个问题,我们可以选择在 WSL 上安装 wine,通过 wine 来调用 SRIM。请注意,此处需要 WSL 更新到最新版本以支持 WSLG

本机环境
WSL: 1.2.5.0
WSLg: 1.0.51
Ubuntu: 20.04.6
wine: 8.0.2

wine

wine 目前最新稳定版本更新至 8.0.2,但是 ubuntu 自带的软件源中仍为 5.0 版本。可以根据需要自行选择安装版本。

wine 5.0

  1. 更新与安装 wine。
1
sudo apt update && sudo apt install wine -y
  1. 检查 wine32 是否安装,如果没有则另外安装。
1
2
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install wine32 -y
  1. 配置 Windows 10 环境。
1
winecfg
wine 配置
wine 配置

wine 8.0

ubuntu 提供的 wine 已经落后了好几个版本,所以可以通过 WineHQ 自己的储存库安装较新版本的 wine。WineHQ 存储库仅提供适用于 AMD64 和 i386 的软件包,如果需要 ARM 版本,可以使用 Ubuntu 软件包。[4]

  1. 开启 32 位支持。
1
sudo dpkg --add-architecture i386 
  1. 下载并添加仓库密钥,随后添加仓库并更新。[5]
1
2
3
4
5
sudo wget -nc -O /usr/share/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo su
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ focal main" >> /etc/apt/sources.list.d/winehq.list
exit
sudo apt update
  1. 安装 wine 8.0。
1
2
3
4
# Stable
sudo apt install --install-recommends winehq-stable
# Develop
sudo apt install --install-recommends winehq-devel
  1. 按照 5.0 中的设置选择 Windows 10。
1
winecfg

SRIM

SRIM 2008 与 2013

直接安装 SRIM 2013 会提示组件缺失,而按照官方教程去安装组件较为繁琐,而且可能失败。因此一个取巧的方法是先安装 SRIM 2008,这一版本的 SRIM 附带有自动安装程序,完成后卸载 2008 版本并保留相关组件,随后再安装 SRIM 2013。两个版本的下载地址如下:

下载完成之后,我们需要将其后缀名从 e 改为 exe,方便后续操作。

SRIM 2008 的安装

  1. 创建临时目录,下载安装包并运行命令提取安装包中的文件到目录中。
1
2
3
4
mkdir srim08 && cd ~/srim08
wget http://www.srim.org/SRIM/SRIM-2008.e
mv SRIM-2008.e SRIM-2008.exe
wine SRIM-2008.exe
提取 SRIM-2008 文件
提取 SRIM-2008 文件
  1. 运行 SETUP.exe 进行安装,安装位置可以随意填写,例如 ~/.wine/drive_c/Program\ Files/SRIM。如果提示图标安装失败,选择 Ignore 即可。
1
wine SETUP.exe
设置安装路径
设置安装路径
忽略错误
忽略错误
  1. 检查组件是否安装到位,在 ~/.wine/drive_c/windows/syswow64 目录中应当存在 4 个 OCX 文件。
1
2
3
4
5
~/srim08 ❯ ls ~/.wine/drive_c/windows/syswow64 | rg OCX
.rw-r--r-- 594Ki fox fox 23 May 2000 COMCTL32.OCX
.rw-r--r-- 137Ki fox fox 23 May 2000 COMDLG32.OCX
.rw-r--r-- 207Ki fox fox 10 Mar 2004 RICHTX32.OCX
.rw-r--r-- 204Ki fox fox 31 Aug 2001 TABCTL32.OCX
  1. 卸载 SRIM 2008。运行命令打开管理器,选中 SRIM 进行卸载。
1
wine uninstaller
移除 SRIM 2008
移除 SRIM 2008
保留组件
保留组件

SRIM 2013 的安装与配置

  1. 创建临时目录,下载安装包并运行命令提取安装包中的文件到目录中。
1
2
3
4
mkdir srim13 && cd ~/srim13
wget http://www.srim.org/SRIM/SRIM-2013-Std.e
mv SRIM-2013-Std.e SRIM-2013-Std.exe
wine SRIM-2013-Std.exe
  1. 测试能否正常运行。
1
wine SRIM.exe
SRIM 2013
SRIM 2013
  1. .zshrc (或者 .bashrc) 中添加指令。
1
alias srim="wine ~/srim13/SRIM.exe"

问题

  1. 提示 sh: 1: xdg-open: not found,安装 xdg-utils [6]
1
sudo apt-get install xdg-utils

参考资料

  1. Linux虚拟机用wine安装仿真软件SRIM
  2. 【离子注入】TRIM2013pro仿真卡屏解决方法(win10)
  3. SRIM - wineHQ
  4. Ubuntu - wineHQ
  5. Wine builds 软件仓库镜像使用帮助
  6. In Ubuntu, xdg-open command is not working