Windows 11 的 WSL2 Ubuntu 22.04 安装 Seismic Unix 44R28 完整教程
本文记录在 Windows 11 的 WSL2/WSLg 环境中,使用 Ubuntu 22.04 LTS 从源码安装 Seismic Unix(SU)44R28 的完整过程。
适用于需要在 Windows 笔记本上进行地震数据处理、SEG-Y/SU 格式转换、滤波、叠加及二维地震剖面显示的用户。
1. 软件与运行环境
本文采用以下环境:
| 项目 | 版本或说明 |
|---|---|
| 宿主系统 | Windows 11 |
| Linux 环境 | WSL2 |
| Linux 发行版 | Ubuntu 22.04 LTS |
| Linux 图形环境 | WSLg |
| Seismic Unix | SU 44R28 |
| SU 安装目录 | $HOME/SeismicUnix |
| Shell | Bash |
Seismic Unix(SU)是一套开源地震数据处理软件,包含大量地震数据处理、格式转换、绘图和辅助工具。
SU 需要在 Linux 或其他 Unix 类环境中从源码编译。Windows 11 中可以利用 WSL2 运行 Ubuntu,并通过 WSLg 直接显示 suximage、suxwigb 等 X11 图形窗口。
2. SU 44R28 下载地址
2.1 官方主页
Seismic Unix 官方 Wiki:
https://wiki.seismic-unix.org/
2.2 官方下载页面
SU 44R28 官方下载目录:
https://nextcloud.seismic-unix.org/s/LZpzc8jMzbWG9BZ
进入页面后下载:
text
cwp_su_all_44R28.tgz
2.3 直接下载链接
可尝试使用:
如果直接链接失效,请进入上一节的官方 Nextcloud 页面手动下载。
3. 安装前检查
3.1 检查 Ubuntu 版本
在 Ubuntu 终端中执行:
bash
cat /etc/os-release
应看到类似:
text
NAME="Ubuntu"
VERSION="22.04.x LTS (Jammy Jellyfish)"
也可以执行:
bash
lsb_release -a
3.2 检查处理器架构
bash
uname -m
普通 Intel 或 AMD 64 位 Windows 笔记本通常输出:
text
x86_64
3.3 检查是否为 WSL2
在 Windows PowerShell 中执行:
powershell
wsl -l -v
应看到 Ubuntu 22.04 的 VERSION 为 2,例如:
text
NAME STATE VERSION
Ubuntu-22.04 Running 2
如果是 WSL1,可以在 PowerShell 中执行:
powershell
wsl --set-version Ubuntu-22.04 2
4. 更新 Ubuntu 并安装编译依赖
打开 Ubuntu 22.04 终端,先更新软件包索引:
bash
sudo apt update
可选地更新已安装的软件包:
bash
sudo apt upgrade -y
安装 SU 核心程序和 X11 图形程序所需依赖:
bash
sudo apt install -y \
build-essential \
gcc \
make \
libx11-dev \
libxt-dev \
libxext-dev \
libtirpc-dev \
x11-apps
各软件包作用如下:
| 软件包 | 作用 |
|---|---|
build-essential |
安装 GCC、Make 等基本编译工具 |
gcc |
编译 SU 的 C 语言源码 |
make |
按照 Makefile 执行编译 |
libx11-dev |
编译 X11 图形程序 |
libxt-dev |
编译 X Toolkit 图形程序 |
libxext-dev |
X11 扩展开发库 |
libtirpc-dev |
提供 TIRPC/RPC/XDR 相关头文件和库 |
x11-apps |
提供 xeyes 等 X11 测试程序 |
Windows 11 的 WSLg 已提供 Linux GUI 应用显示支持。一般不需要额外安装 Xming、VcXsrv,也不建议手动设置
DISPLAY=localhost:0.0。
5. 创建 SU 安装目录
本文将 SU 安装在当前 Ubuntu 用户的主目录中:
text
$HOME/SeismicUnix
执行:
bash
mkdir -p "$HOME/SeismicUnix"
设置当前终端中的 CWPROOT 和 PATH:
bash
export CWPROOT="$HOME/SeismicUnix"
export PATH="$CWPROOT/bin:$PATH"
检查:
bash
echo "$CWPROOT"
输出应类似:
text
/home/your_linux_username/SeismicUnix
为什么安装到 Linux 用户主目录
建议将 SU 安装在:
text
/home/用户名/SeismicUnix
不建议直接安装到:
text
/mnt/c/
/mnt/d/
原因包括:
- Linux 文件系统中的编译速度通常更快;
- 可以避免部分权限问题;
- 可以避免符号链接和文件名大小写问题;
- 不需要使用
sudo make install。
6. 将压缩包复制到安装目录
下载得到的文件名应为:
text
cwp_su_all_44R28.tgz
根据压缩包的实际位置选择一种方法。
6.1 压缩包位于 Ubuntu 的 Downloads 目录
bash
cp "$HOME/Downloads/cwp_su_all_44R28.tgz" "$CWPROOT/"
6.2 压缩包位于 Windows 的 Downloads 目录
先查找文件:
bash
find /mnt/c/Users -type f -name "cwp_su_all_44R28.tgz" 2>/dev/null
假设查找到:
text
/mnt/c/Users/Windows用户名/Downloads/cwp_su_all_44R28.tgz
复制:
bash
cp "/mnt/c/Users/Windows用户名/Downloads/cwp_su_all_44R28.tgz" \
"$CWPROOT/"
请将 Windows用户名 替换为实际用户名。
6.3 检查文件
bash
ls -lh "$CWPROOT/cwp_su_all_44R28.tgz"
确认文件存在且大小正常。
7. 解压 SU 44R28
进入安装目录:
bash
cd "$CWPROOT"
解压:
bash
tar -xzvf cwp_su_all_44R28.tgz
如果不想显示大量文件名,可使用:
bash
tar -xzf cwp_su_all_44R28.tgz
检查源码目录:
bash
ls "$CWPROOT/src"
应能看到类似内容:
text
Makefile
Makefile.config
configs
cwp
par
su
Xtcwp
检查 Ubuntu 22.04 配置文件:
bash
ls "$CWPROOT/src/configs/Makefile.config_Linux_Ubuntu_22.04"
8. 永久设置环境变量
SU 使用环境变量 CWPROOT 指定安装根目录,并要求将 $CWPROOT/bin 加入 PATH。
建议使用防重复写入方式:
bash
if ! grep -q "# Seismic Unix 44R28" "$HOME/.bashrc"; then
cat >> "$HOME/.bashrc" <<'EOF'
# Seismic Unix 44R28
export CWPROOT="$HOME/SeismicUnix"
export PATH="$CWPROOT/bin:$PATH"
EOF
fi
让设置立即生效:
bash
source "$HOME/.bashrc"
检查:
bash
echo "$CWPROOT"
以及:
bash
echo "$PATH" | tr ':' '\n' | grep SeismicUnix
正常应看到:
text
/home/用户名/SeismicUnix
/home/用户名/SeismicUnix/bin
9. 选择 Ubuntu 22.04 编译配置
进入源码目录:
bash
cd "$CWPROOT/src"
备份原配置文件:
bash
cp Makefile.config Makefile.config.backup
复制 SU 自带的 Ubuntu 22.04 配置:
bash
cp configs/Makefile.config_Linux_Ubuntu_22.04 Makefile.config
检查 TIRPC/XDR 配置:
bash
grep -E "XDRFLAG|XDRIFLAGS|XDRLFLAGS" Makefile.config
正常情况下,应看到包含以下内容的配置:
text
-DSUTIRPC
/usr/include/tirpc
-ltirpc
SU 44R28 源码中已经提供 Ubuntu 22.04 的官方配置文件,因此通常不需要像 Ubuntu 24.04 那样额外修改较多兼容参数。
10. 编译和安装 SU 核心程序
确认当前为普通 Ubuntu 用户:
bash
whoami
不要使用 root 用户,也不要执行:
bash
sudo make install
正确命令:
bash
cd "$CWPROOT/src"
make install
安装过程中可能出现:
- 软件许可协议提示;
- 是否发送安装信息的提示;
- 要求输入
y、n或按 Enter。
按照屏幕提示操作即可。
make install 完成后,核心程序会安装到:
text
$CWPROOT/bin
常用程序包括:
text
segyread
segywrite
sufilter
sugain
suwind
sustack
suplane
sugethw
11. 编译和安装 X11 图形程序
核心程序安装完成后执行:
bash
cd "$CWPROOT/src"
make xtinstall
该命令会安装常用图形程序:
text
ximage
xwigb
suximage
suxwigb
suxmovie
完成后刷新 Bash 命令缓存:
bash
hash -r
12. 验证安装结果
12.1 检查核心命令
bash
command -v suplane
command -v sufilter
command -v segyread
正常输出类似:
text
/home/用户名/SeismicUnix/bin/suplane
/home/用户名/SeismicUnix/bin/sufilter
/home/用户名/SeismicUnix/bin/segyread
12.2 检查图形程序
bash
command -v suximage
command -v suxwigb
command -v ximage
12.3 测试非图形处理流程
bash
suplane | sugethw key=ns,dt | head
如果正常输出 ns 和 dt 道头信息,说明核心程序与管道处理正常。
例如:
text
ns=64 dt=4000
ns=64 dt=4000
13. 测试 WSLg 和 SU 图形窗口
13.1 检查 WSLg 环境变量
bash
echo "$DISPLAY"
echo "$WAYLAND_DISPLAY"
可能输出:
text
:0
wayland-0
13.2 测试普通 X11 窗口
bash
xeyes &
如果 Windows 桌面弹出 xeyes 窗口,说明 WSLg 的 X11 显示正常。
关闭窗口:
bash
pkill xeyes
13.3 测试 SU 彩色图像显示
bash
suplane | suximage title="Seismic Unix 44R28 Test" &
13.4 测试 SU 波形显示
bash
suplane | suxwigb title="SU 44R28 Wiggle Test" &
如果都能正常弹出窗口,说明 SU 核心程序、X11 图形程序和 WSLg 均工作正常。
14. 可选模块安装
对于 SEG-Y 读写、常规滤波、增益、动校正、叠加和二维剖面显示,通常只需要:
bash
make install
make xtinstall
以下模块不是必需项。
14.1 Fortran 程序
bash
sudo apt install -y gfortran
cd "$CWPROOT/src"
make finstall
14.2 OpenGL 程序
bash
sudo apt install -y \
libglu1-mesa-dev \
freeglut3-dev \
libxmu-dev \
libxmu-headers \
libxi-dev
然后:
bash
cd "$CWPROOT/src"
make mglinstall
14.3 Motif 程序
bash
sudo apt install -y libmotif-dev
cd "$CWPROOT/src"
make xminstall
14.4 其他工具
bash
cd "$CWPROOT/src"
make utils
15. 常见问题
15.1 suplane: command not found
执行:
bash
source "$HOME/.bashrc"
hash -r
检查:
bash
echo "$CWPROOT"
echo "$PATH"
ls "$CWPROOT/bin/suplane"
确认 ~/.bashrc 中存在:
bash
export CWPROOT="$HOME/SeismicUnix"
export PATH="$CWPROOT/bin:$PATH"
15.2 rpc/types.h: No such file or directory
安装:
bash
sudo apt update
sudo apt install -y libtirpc-dev
重新复制配置:
bash
cd "$CWPROOT/src"
cp configs/Makefile.config_Linux_Ubuntu_22.04 Makefile.config
然后重新编译:
bash
make install
15.3 Error: Can't open display
检查:
bash
echo "$DISPLAY"
如果过去为 Xming 或 VcXsrv 手动设置过:
bash
export DISPLAY=localhost:0.0
建议删除或注释这些旧设置。
在 Windows PowerShell 中执行:
powershell
wsl --update
wsl --shutdown
重新进入 Ubuntu 后测试:
bash
xeyes
suplane | suximage
15.4 xeyes 可以显示,但 suximage 不存在
执行:
bash
sudo apt install -y libx11-dev libxt-dev libxext-dev
cd "$CWPROOT/src"
make xtinstall
然后:
bash
hash -r
command -v suximage
15.5 编译失败后重新安装
可以先重试:
bash
cd "$CWPROOT/src"
make install
必要时清理:
bash
cd "$CWPROOT/src"
make clean
然后重新复制配置并安装:
bash
cp configs/Makefile.config_Linux_Ubuntu_22.04 Makefile.config
make install
make xtinstall
15.6 不要使用 sudo make install
本文安装目录是:
text
$HOME/SeismicUnix
普通用户具有写权限,不需要 sudo。
使用 sudo make install 可能造成:
- 安装文件属于 root;
- 后续更新出现权限问题;
- root 环境无法读取普通用户的
CWPROOT; - 普通用户无法修改生成文件。
15.7 路径中尽量不要包含空格或中文
建议使用:
text
/home/用户名/SeismicUnix
复制 Windows 文件时,如果路径包含空格,应使用双引号。
15.8 不建议直接在 /mnt/c 或 /mnt/d 中编译
SU 本体建议放在:
text
$HOME/SeismicUnix
地震数据可以放在 Windows 磁盘,例如:
text
/mnt/d/SeismicData
这样既保持编译稳定,也便于 Windows 与 WSL 共享数据。
16. 可直接执行的核心命令合集
假设压缩包位于:
text
$HOME/Downloads/cwp_su_all_44R28.tgz
16.1 安装依赖
bash
sudo apt update
sudo apt install -y \
build-essential \
gcc \
make \
libx11-dev \
libxt-dev \
libxext-dev \
libtirpc-dev \
x11-apps
16.2 创建目录并复制压缩包
bash
export CWPROOT="$HOME/SeismicUnix"
export PATH="$CWPROOT/bin:$PATH"
mkdir -p "$CWPROOT"
cp "$HOME/Downloads/cwp_su_all_44R28.tgz" "$CWPROOT/"
16.3 解压
bash
cd "$CWPROOT"
tar -xzf cwp_su_all_44R28.tgz
16.4 写入环境变量
bash
if ! grep -q "# Seismic Unix 44R28" "$HOME/.bashrc"; then
cat >> "$HOME/.bashrc" <<'EOF'
# Seismic Unix 44R28
export CWPROOT="$HOME/SeismicUnix"
export PATH="$CWPROOT/bin:$PATH"
EOF
fi
source "$HOME/.bashrc"
16.5 选择 Ubuntu 22.04 配置并编译
bash
cd "$CWPROOT/src"
cp Makefile.config Makefile.config.backup
cp configs/Makefile.config_Linux_Ubuntu_22.04 Makefile.config
make install
make xtinstall
16.6 验证
bash
hash -r
command -v suplane
command -v sufilter
command -v segyread
command -v suximage
suplane | sugethw key=ns,dt | head
suplane | suximage title="SU 44R28 Test" &
17. 安装目录结构
安装完成后,$CWPROOT 中主要目录如下:
text
SeismicUnix/
├── bin/ # SU 可执行程序
├── include/ # 头文件
├── lib/ # 编译生成的库
├── src/ # SU 源码
├── doc/ # 文档
├── demos/ # 示例或演示内容
└── cwp_su_all_44R28.tgz
常用命令位于:
text
$CWPROOT/bin
例如:
text
$CWPROOT/bin/segyread
$CWPROOT/bin/sufilter
$CWPROOT/bin/suximage
18. SU 基本使用示例
SU 大量采用 Linux 管道组合命令。
生成测试数据并显示:
bash
suplane | suximage
查看道头:
bash
suplane | sugethw key=tracl,cdp,ns,dt | head
输出 SU 文件:
bash
suplane > test.su
显示 SU 文件:
bash
suximage < test.su
波形方式显示:
bash
suxwigb < test.su
查看命令帮助:
bash
sufilter
或:
bash
sudoc sufilter
19. 安装注意事项总结
-
推荐使用 WSL2 + Ubuntu 22.04 + WSLg + SU 44R28。
-
SU 需要从源码编译,不能通过
apt install seismic-unix直接安装。 -
推荐安装目录为
$HOME/SeismicUnix。 -
不建议在
/mnt/c或/mnt/d中直接编译。 -
必须正确设置
CWPROOT和$CWPROOT/bin。 -
Ubuntu 22.04 应使用 SU 自带的:
textMakefile.config_Linux_Ubuntu_22.04 -
核心安装命令是:
bashmake install make xtinstall -
不要使用
sudo make install。 -
libtirpc-dev对 Ubuntu 22.04 的 RPC/XDR 编译非常重要。 -
WSLg 用户通常不需要安装第三方 X Server。
-
不要保留过去为 Xming/VcXsrv 手动设置的
DISPLAY。 -
编译完成后应同时测试命令行程序和图形程序。
-
Fortran、OpenGL 和 Motif 模块均为可选项。
-
安装报错时应保留完整终端输出,便于定位问题。
20. 参考资料
-
Seismic Unix 官方 Wiki
-
SU 官方安装说明
-
SU 44R28 官方下载页面
-
Seismic Unix GitHub 仓库
-
Ubuntu 22.04 的 SU Makefile 配置
-
Microsoft:在 WSL 中运行 Linux GUI 应用
-
Microsoft:WSL 安装说明
结语
在 Windows 11 中使用 WSL2 和 WSLg,可以在不安装双系统或完整 Linux 虚拟机的情况下运行 Seismic Unix。Ubuntu 22.04 与 SU 44R28 自带的编译配置匹配较好。完成依赖安装、CWPROOT 配置、make install 和 make xtinstall 后,即可使用大部分常规地震数据处理与图形显示功能。