Paint.NET 5.2 的首个 alpha 发布还不到两周,第三个 alpha 就已经出现。比更新速度更值得注意的是,项目开始尝试通过 Wine 在 Linux 上运行。发布说明把这项能力明确标成了 “Extremely experimental”,因此它目前更像一条供开发者验证的兼容路径,而不是面向普通用户的正式 Linux 版本。
这不是原生 Linux 移植
Wine 支持和原生移植是两件不同的事。Paint.NET 仍然是一款 Windows .NET 图像编辑器;这里的变化,是开发者开始处理或评估它在 Wine 兼容层中的运行问题。
这一区别直接影响预期:
- 安装程序和应用本体仍按 Windows 软件的方式运行。
- 文件选择器、字体、剪贴板和窗口行为需要经过 Wine 映射。
- 图形渲染、色彩管理、打印以及输入设备可能与 Windows 表现不同。
- 插件通常比主程序更容易碰到兼容问题,因为插件还可能依赖额外的 Windows API、运行库或驱动。
所以,看到“支持 Linux”时,更准确的理解应该是“Paint.NET 5.2 正在增加 Wine 兼容性”,而不是“Paint.NET 已经提供 Linux 原生安装包”。
为什么一个图像编辑器的 Wine 支持并不简单
普通桌面工具只要能打开窗口、读写文件,往往就能完成第一轮兼容验证。图像编辑器的要求更高:画布需要持续重绘,缩放和滤镜会制造 GPU 与 CPU 压力,拖放、剪贴板和数位板输入还要穿过桌面环境与兼容层。
因此,“能够启动”只说明安装和初始化链路基本可用。真正有价值的测试至少还应覆盖:
- 创建、打开和保存常用图像格式。
- 多图层编辑、撤销与重做。
- 缩放、旋转画布以及执行高负载滤镜。
- 从浏览器复制图像,再粘贴到编辑器。
- 输入中文、选择系统字体并重新打开文件。
- 在 X11 与 Wayland 会话中比较窗口和输入行为。
- 关闭程序后再次启动,确认配置文件没有损坏。
这些测试也有助于区分 Paint.NET 自身缺陷、Wine 兼容问题和 Linux 图形栈问题。
用独立 Wine 前缀进行一次可回滚测试
下面是一套可以直接改造的隔离测试流程。假设你已经安装 Wine,并把下载的 Paint.NET 5.2 alpha 安装程序重命名为 paintdotnet-5.2-alpha.exe,放在 ~/Downloads 中。文件名只是本地约定,不代表官方包名。
export WINEPREFIX="$HOME/.local/share/wineprefixes/paintdotnet-52-alpha"
export WINEARCH=win64
mkdir -p "$WINEPREFIX"
wineboot -u
winecfg
wine "$HOME/Downloads/paintdotnet-5.2-alpha.exe"
winecfg 会初始化前缀,并允许调整 Windows 版本、显示和音频设置。不要把 alpha 版本直接装进承载其他应用的默认 ~/.wine:独立前缀便于清理,也能减少运行库和注册表配置互相影响。
如果程序启动失败,可以收集一份相对聚焦的日志:
export WINEPREFIX="$HOME/.local/share/wineprefixes/paintdotnet-52-alpha"
WINEDEBUG=+seh,+tid wine start /unix \
"$WINEPREFIX/drive_c/Program Files/paint.net/PaintDotNet.exe" \
>"$HOME/paintdotnet-wine.log" 2>&1
安装目录可能不同,运行前可以这样查找实际路径:
find "$WINEPREFIX/drive_c" -iname 'PaintDotNet.exe' -print
测试结束后,如果确认前缀中没有需要保留的图片或配置,可以删除整个隔离环境:
rm -rf "$HOME/.local/share/wineprefixes/paintdotnet-52-alpha"
执行删除命令前务必核对路径。更稳妥的做法是先把测试图片存放在 Wine 前缀之外,例如 ~/Pictures/paintdotnet-tests。
报告问题时,环境信息比“打不开”更有用
实验性兼容支持的价值,很大程度上取决于问题报告的质量。复现记录应包括 Linux 发行版、内核版本、Wine 版本、桌面会话类型、显卡和驱动,以及 Paint.NET 的准确 alpha 版本。
可以用下面的命令生成基础环境报告:
{
printf 'OS: '; sed -n 's/^PRETTY_NAME=//p' /etc/os-release
printf 'Kernel: '; uname -r
printf 'Wine: '; wine --version
printf 'Session: %s\n' "${XDG_SESSION_TYPE:-unknown}"
printf 'Desktop: %s\n' "${XDG_CURRENT_DESKTOP:-unknown}"
printf 'GPU: '; lspci | sed -n '/VGA\|3D controller/{p;q;}'
} | tee "$HOME/paintdotnet-environment.txt"
提交日志前应检查其中是否包含用户名、文件路径或其他隐私信息。还应说明问题是否能在全新 Wine 前缀中复现,以及禁用第三方插件后是否仍然存在。
现阶段适合谁采用
Paint.NET 5.2 的 Wine 支持目前适合愿意验证兼容性、保留日志并接受数据风险的测试者。生产设计流程、唯一副本的图片文件以及依赖特定插件的工作负载,都不应该立刻迁移过去。
实际采用时可以遵循一份简短清单:使用独立 Wine 前缀;只操作测试文件或已有备份的文件;记录 Wine 与驱动版本;先验证保存和重新打开,再测试复杂滤镜;升级 alpha 前保留旧前缀。对 Linux 用户而言,这次变化真正重要的地方不是“现在已经能用了”,而是一个长期绑定 Windows 的成熟应用开始把 Wine 纳入工程视野。