Windows 11 的 WSL2 Ubuntu 22.04 安装 Seismic Unix 44R28 完整教程

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 直接显示 suximagesuxwigb 等 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 直接下载链接

可尝试使用:

https://nextcloud.seismic-unix.org/index.php/s/LZpzc8jMzbWG9BZ/download?path=%2F&files=cwp_su_all_44R28.tgz

如果直接链接失效,请进入上一节的官方 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 的 VERSION2,例如:

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"

设置当前终端中的 CWPROOTPATH

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

安装过程中可能出现:

  • 软件许可协议提示;
  • 是否发送安装信息的提示;
  • 要求输入 yn 或按 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

如果正常输出 nsdt 道头信息,说明核心程序与管道处理正常。

例如:

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. 安装注意事项总结

  1. 推荐使用 WSL2 + Ubuntu 22.04 + WSLg + SU 44R28

  2. SU 需要从源码编译,不能通过 apt install seismic-unix 直接安装。

  3. 推荐安装目录为 $HOME/SeismicUnix

  4. 不建议在 /mnt/c/mnt/d 中直接编译。

  5. 必须正确设置 CWPROOT$CWPROOT/bin

  6. Ubuntu 22.04 应使用 SU 自带的:

    text 复制代码
    Makefile.config_Linux_Ubuntu_22.04
  7. 核心安装命令是:

    bash 复制代码
    make install
    make xtinstall
  8. 不要使用 sudo make install

  9. libtirpc-dev 对 Ubuntu 22.04 的 RPC/XDR 编译非常重要。

  10. WSLg 用户通常不需要安装第三方 X Server。

  11. 不要保留过去为 Xming/VcXsrv 手动设置的 DISPLAY

  12. 编译完成后应同时测试命令行程序和图形程序。

  13. Fortran、OpenGL 和 Motif 模块均为可选项。

  14. 安装报错时应保留完整终端输出,便于定位问题。


20. 参考资料

  1. Seismic Unix 官方 Wiki

    https://wiki.seismic-unix.org/

  2. SU 官方安装说明

    https://wiki.seismic-unix.org/sudoc:su_installation

  3. SU 44R28 官方下载页面

    https://nextcloud.seismic-unix.org/s/LZpzc8jMzbWG9BZ

  4. Seismic Unix GitHub 仓库

    https://github.com/JohnWStockwellJr/SeisUnix

  5. Ubuntu 22.04 的 SU Makefile 配置

    https://github.com/JohnWStockwellJr/SeisUnix/blob/master/src/configs/Makefile.config_Linux_Ubuntu_22.04

  6. Microsoft:在 WSL 中运行 Linux GUI 应用

    https://learn.microsoft.com/windows/wsl/tutorials/gui-apps

  7. Microsoft:WSL 安装说明

    https://learn.microsoft.com/windows/wsl/install


结语

在 Windows 11 中使用 WSL2 和 WSLg,可以在不安装双系统或完整 Linux 虚拟机的情况下运行 Seismic Unix。Ubuntu 22.04 与 SU 44R28 自带的编译配置匹配较好。完成依赖安装、CWPROOT 配置、make installmake xtinstall 后,即可使用大部分常规地震数据处理与图形显示功能。

相关推荐
AxureMost1 小时前
Xrecode 音频格式转换利器
windows·电脑
国服第二切图仔3 小时前
05-构建与特性开关
linux·服务器·ubuntu
FREEDOM_X3 小时前
嵌入式——定时器工作原理
linux·c语言·单片机·嵌入式硬件·ubuntu
Thecozzy3 小时前
Skill和MCP和Subagent 的选择
linux·人工智能·ubuntu
西西学代码5 小时前
Flutter---StreamBuilder案例
javascript·windows·flutter
jiang_changsheng5 小时前
Conda 的默认环境创建优先级。
linux·windows·python
黄一一9112436 小时前
硬盘健康监测软件!绿色便携版!电脑硬盘还能用几年?CrystalDiskInfo工具帮你提前避开数据丢失
windows·电脑·硬件工程·开源软件
奇牙coding7 小时前
gpt-5.6-luna 调用报 400 bad_request 怎么办?同样的 messages 在 gpt-5.5 没问题——两处校验差异和修复写法
java·windows·gpt·ai
樂禮8 小时前
Windows-Arch Linux 键鼠共享 & 剪贴板同步配置
linux·运维·windows