从 Flathub 安装的 DBeaver 缺少一个组件 io.dbeaver.DBeaverCommunity.Client.pgsql
,导致无法完成 PostgreSQL 数据库的导出。但很遗憾,虽然可以通过:
flatpak install flathub io.dbeaver.DBeaverCommunity.Client.pgsql
这样的命令来安装该组件,但是安装的是久远前的旧版,已和新版 DBeaver 不兼容了,该组件的 flathub 仓库已经好久无人更新。
参考 PR #7 的评论,目前可行的办法是在本地 build 然后安装。
比如,先删掉可能的旧版:
flatpak remove io.dbeaver.DBeaverCommunity.Client.pgsql
再克隆仓库:
git clone https://github.com/flathub/io.dbeaver.DBeaverCommunity.Client.pgsql.git temp
cd temp
手动修改一下 io.dbeaver.DBeaverCommunity.Client.pgsql.json
文件第五行的 sdk 版本,比如改为 23.08:
"sdk": "org.freedesktop.Sdk//23.08",
最后再去 https://git.postgresql.org/gitweb/?p=postgresql.git;a=tags 上找到对应的 PostgreSQL 版本和 commit hash,替换 27、28 行,比如选用 15.3 版本:
"tag": "REL_15_3",
"commit": "8382864eb5c9f9ebe962ac20b3392be5ae304d23"
之后构建:
flatpak-builder --user --install-deps-from=flathub build-dir io.dbeaver.DBeaverCommunity.Client.pgsql.json --force-clean --default-branch=stable
然后再安装:
flatpak-builder --user --install --force-clean --default-branch=stable build-dir io.dbeaver.DBeaverCommunity.Client.pgsql.json
还有一步
,需要安装 Flatseal
,找到 DBeaver 然后在 Filesystem -> Other files 内填入:
~/.local/share/flatpak/runtime/io.dbeaver.DBeaverCommunity.Client.pgsql/x86_64/stable/active/files/bin
这样就可以检测到组件了。