G

[Golang] Fedora上运行Wails构建出现libwebkit缺失问题

RoLingG Golang 2026-04-04

Fedora上运行Wails构建出现libwebkit缺失问题

现在 Wails 2.x 版本在 Fedora 上 build 构建可能会有 libwebkit 库缺失的问题:

→ wails build
# Building target: linux/amd64

  • Generating bindings: Done.
  • Installing frontend dependencies: Done.
  • Compiling frontend: Done.
  • Compiling application: # github.com/wailsapp/wails/v2/internal/frontend/desktop/linux
# [pkg-config --cflags  -- gtk+-3.0 webkit2gtk-4.0 gtk+-3.0 webkit2gtk-4.0 gtk+-3.0 webkit2gtk-4.0 gtk+-3.0 gtk+-3.0 webkit2gtk-4.0 gtk+-3.0 webkit2gtk-4.0 gtk+-3.0 webkit2gtk-4.0 webkit2gtk-4.0 gtk+-3.0 webkit2gtk-4.0]
Package webkit2gtk-4.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `webkit2gtk-4.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
Package 'webkit2gtk-4.0' not found
  ERROR   exit status 1

  ERROR   exit status 1
 ♥   If Wails is useful to you or your company, please consider sponsoring the project:
https://github.com/sponsors/leaanthony

一般出现这种情况有两种:① 真的缺失 libwebkit 依赖,无法根据对依赖执行构建。② Wails build 依赖识别出问题。

缺失 libwebkit 依赖

如果是缺失依赖的话,我们只需要执行相应的 dnf 指令安装对应依赖就好了:

# 安装依赖(包括Wails相关构建依赖)
sudo dnf install gcc pkg-config gtk3-devel webkit2gtk4.0-devel

# 验证依赖版本
pkg-config --modversion webkit2gtk-4.0

部分 Fedora 版本可能会有所不同,比如相关魔改版或者像 Fedora 43 这样的新版本,webkit2gtk4.0 可能已经从 dnf 中移除,需要使用 webkit2gtk4.1 代替:

# 安装依赖(包括Wails相关构建依赖)
sudo dnf install gcc pkg-config gtk3-devel webkit2gtk4.1-devel

# 验证依赖版本
pkg-config --modversion webkit2gtk-4.1
如果系统版本没有 webkit2gtk-4.0 的话,那大概率即便你装了依赖也会遇到问题②或者额外的问题,请继续往下看。

Wails build 依赖识别问题

在 build 前我们可以用 wails doctor 看一下依赖是否齐全,如果像我(Fedora 43)这样即便安装了 webkit2gtk-4.1 也提示查找不到 libwebkit,就说明 Wails 2.x 版本的依赖识别也发生在了你的机器上。

→ wails doctor
                                
          Wails Doctor          
                                   
# Wails
Version         | v2.12.0
Package Manager | dnf    

# System
┌──────────────────────────────────────────────────────────┐
| OS           | Fedora Linux                              |
| Version      | 43                                        |
| ID           | fedora                                    |
| Branding     |                                           |
| Go Version   | go1.26.1                                  |
| Platform     | linux                                     |
| Architecture | amd64                                     |
| CPU 1        | 13th Gen Intel(R) Core(TM) i9-13900HX     |
| CPU 2        | 13th Gen Intel(R) Core(TM) i9-13900HX     |
| CPU 3        | 13th Gen Intel(R) Core(TM) i9-13900HX     |
| CPU 4        | 13th Gen Intel(R) Core(TM) i9-13900HX     |
| GPU          | SVGA II Adapter (VMware) - Driver: vmwgfx |
| Memory       | 8GB                                       |
└──────────────────────────────────────────────────────────┘

# Dependencies
┌───────────────────────────────────────────────────────┐
| Dependency | Package Name       | Status    | Version |
| *docker    | moby-engine        | Installed | 29.3.0  |
| gcc        | gcc-c++            | Installed | 15.2.1  |
| libgtk-3   | gtk3-devel         | Installed | 3.24.52 |
| libwebkit  | Unknown            | Not Found |         |
| npm        | nodejs-npm         | Installed | 10.9.4  |
| pkg-config | pkgconf-pkg-config | Installed | 2.3.0   |
| *upx       | upx                | Installed | 5.1.1   |
|                                                       |
└─────────────── * - Optional Dependency ───────────────┘

# Diagnosis
 WARNING  Your system has missing dependencies!
Fatal:
Required dependencies missing: libwebkit

 ♥   If Wails is useful to you or your company, please consider sponsoring the project:
https://github.com/sponsors/leaanthony

Wails 会识别不出来相关 webkit2_41 相关的内容,其他用户使用 webkit2_40 就能够识别出来,具体是 Wails 为了适配多个 Linux 发行版导致的问题,官方只会检测 webkit2_40,因为这个 webkit 版本大部分发行版都有,只有少数像 Fedora 43 比较新的发行版会移除引入 webkit2_41 导致提示依赖缺失。

如果是这样的问题,会有两个方法:

  • 每次运行 wails build 的时候,都在后面加上 -tags 标明好 webkit 的版本号,供给 Wails 构建识别。

    wails build -tags webkit2_41
  • webkit2_41 的目录加上名为 webkit2_40 的软链接目录,这样 Wails 构建识别就能够识别到软链接目录,从而被欺骗导向使用 webkit2_41,直接运行 wails build 不再报错,wails doctor 检测 libwebkit 也可以正常检测到。

额外

Ubuntu 开发 Wails 的话可能也会遇到相关问题,Ubuntu 可能会有即便装上了 webkit4_20 也提示识别不到的问题,具体的话就看下面的 官方相关Issue① 吧,里面有人已经提出了对应的解决方法。

Fedora 开发也可能遇到 官方相关Issue② 里面遇到的问题,即便没有安装对应的依赖,wails docotr 也提示安装了对应 webkit 依赖,这个就是官方使用的检测命令误导用户导致的。

官方 doctor 用的是 dnf info installed webkit2gtk4.0-develdnf info installed webkit2gtk3-devel 进行检测,如果其中任何一个返回带有 Version 文本的输出,则 doctor 会认为用户已安装运行所需要的依赖。造成这个问题也是因为 Fedora 命令更新过导致的问题:

Fedora 41+ 切换到 DNF5,命令语法发生破坏性变更:
DNF4: dnf list installed <pkg> 或 dnf info installed <pkg>(单横线)
DNF5: dnf list --installed <pkg>(必须双横线)

dnf info installed webkit2gtk3-devel 这种旧语法,DNF5 会将已经安装的依赖和仓库依赖一并输出:

dnf info installed webkit2gtk4.1-devel
仓库更新和加载中:
仓库加载完成。
已安装的软件包    ⬅️ 如果是没安装的话,已安装这一串是不会有的
Name            : webkit2gtk4.1-devel
Epoch           : 0
Version         : 2.50.5
Release         : 1.fc43
Architecture    : x86_64
Installed size  : 5.3 MiB
Source          : webkitgtk-2.50.5-1.fc43.src.rpm
From repository : updates
Summary         : Development files for webkit2gtk4.1
URL             : https://www.webkitgtk.org/
License         : LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCS
                : A AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.
                : 0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-
                : exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD
                : -Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND
                :  Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0
Description     : The webkit2gtk4.1-devel package contains libraries, build data, and header
                : files for developing applications that use webkit2gtk4.1.
Vendor          : Fedora Project

可安装的软件包
Name           : webkit2gtk4.1-devel
Epoch          : 0
Version        : 2.50.5
Release        : 1.fc43
Architecture   : i686
Download size  : 364.6 KiB
Installed size : 5.3 MiB
Source         : webkitgtk-2.50.5-1.fc43.src.rpm
Repository     : updates
Summary        : Development files for webkit2gtk4.1
URL            : https://www.webkitgtk.org/
License        : LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA
               :  AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 
               : AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exc
               : eption-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Sou
               : rce-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apac
               : he-2.0 WITH LLVM-exception AND ICU AND BSL-1.0
Description    : The webkit2gtk4.1-devel package contains libraries, build data, and header
               : files for developing applications that use webkit2gtk4.1.
Vendor         : Fedora Project

doctor 因此会错误地将仓库中的可用版本(Available Version)识别为已安装版本,导致误认为用户安装了对应的依赖。

总结

这一篇文章主要就是将自己在 Fedora 上开发 Wails App 遇到的小问题记录分享出来。官方已经将相关问题提上 Wails 3 版本的 bug list 了,相关 -tags 貌似也写进了 Wails docs 里(虽然有点难找到),具体修复得在 Wails 3 才能感受到了。

本文问题相关的网址:官方相关Issue①官方相关Issue②

PREV
[Golang] 通过errors.AsType的改动反映反射的优化方向

评论(0)

发布评论