Ubuntu 22.04 Firefox Snap 破坏了 KeePassXC 集成和其他 NativeMessaging 协议 25 个应用程序

Ubuntu 22.04 Firefox Snap 破坏了 KeePassXC 集成和其他 NativeMessaging 协议 25 个应用程序

我该如何恢复它?由于 snap,我的整个密码管理器集成现在都坏了。使用 1password 的人也会遇到同样的问题。

关于“通过 snap 重复 ppa 安装”,我将复制我的评论:从技术上讲是的,但这是一个很好的破解方法,最终是一种解决方法(如果你只是想在升级后让一些本机传输正常工作,那么这不是你要搜索的东西)。

答案1

更新: Firefox snap 中的原生消息传递支持现已推出测试版。请注意,这是相当新的 - 代码尚未合并到上游,因此不要指望它已经可以投入生产。还有一个Heise Online 的德文文章提供有关如何进行此操作的逐步指南 - 以防您想尝试一下。


很遗憾KeePassXC 无法修复此问题到目前为止扁平包装也不折断支持 NativeMessaging,但是(它们的沙盒技术阻止浏览器扩展与 KeePassXC 进程通信)。虽然解决方案正在制定中,但我们所能做的就是解决这个问题(或者切换到仍然提供浏览器作为常规软件包的发行版,如 Debian)。KeePassXC 故障排除指南建议从官方 PPA 安装浏览器。这种方法不太好,但以下方法对我有用:

  1. 卸载 Firefox snap
    sudo snap remove firefox
    
  2. Ubuntu 提供了一个firefox安装 Snap 的过渡 Debian 软件包。我们需要确保来自 Mozilla 的 PPA 的软件包具有更高的优先级(否则apt可能会再次“升级”到 Snap)。
    echo '
    Package: firefox
    Pin: release o=LP-PPA-mozillateam
    Pin-Priority: 1001
    ' | sudo tee /etc/apt/preferences.d/mozilla-firefox
    
    如果您正在使用无人值守升级,您还需要运行以下命令以确保无人值守升级考虑到 Mozilla PPA:
    echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
    
  3. 从 Mozilla 的 PPA 安装 Firefox:
    sudo add-apt-repository ppa:mozillateam/ppa
    sudo apt update
    sudo apt install firefox
    
  4. 禁用 Firefox 的 AppArmor 以确保 Firefox 扩展可以连接到 KeepassXC:
    sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/
    sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
    
  5. 运行KeePassXC并启用浏览器集成(菜单工具->设置->浏览器集成,勾选“启用浏览器集成”和“Firefox”)。
  6. 运行Firefox,打开 KeePassXC 扩展的设置 -> 连接的数据库 -> 连接。

免责声明

这种方法的缺点是 AppArmor 被完全禁用 - 请注意这会削弱安全性。也许有更多 AppArmor 经验的人可以提供一种更安全的方法让 NativeMessaging 重新工作?

故障排除

如果您遇到问题,这里有一些提示:

  • 您可以通过打开“帮助”->“关于 Firefox”来检查您正在运行的是 Snap 版本还是常规版本的 Firefox。如果版本号未提及“Snap”,则您正在运行常规版本: 在此处输入图片描述
  • 您可以通过运行来检查 apt 优先级apt-cache policy firefox。验证 Mozilla PPA 的优先级是否高于官方 Ubuntu 存储库。输出可能如下所示:
    $ apt-cache policy firefox
    firefox:
      Installed: 101.0.1+build1-0ubuntu0.22.04.1~mt1
      Candidate: 101.0.1+build1-0ubuntu0.22.04.1~mt1
      Version table:
         1:1snap1-0ubuntu2 500
            500 http://de.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
    *** 101.0.1+build1-0ubuntu0.22.04.1~mt1 1001
            500 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 Packages
            100 /var/lib/dpkg/status
    

答案2

我更喜欢使用具有原生消息传递支持的 Firefox Snap Beta(其他人提到过),而其他替代方案也有其缺点。使用以下命令安装:

sudo snap refresh firefox --beta

在完全更新的 Ubuntu 22.04 LTS 上,我不需要执行 Heise 中提到的任何其他步骤文章, 例如systemctl --user restart xdg-desktop-portal

Firefox 测试版(105.0b3)与 KeePassXC 完美兼容(2.7.1)来自官方 PPA以及 Firefox KeePassXC-Browser 扩展(版本 1.8.1)。其他 KeePassXC 软件包对我来说不起作用。使用以下命令安装 KeePassXC:

sudo add-apt-repository ppa:phoerious/keepassxc
sudo apt update
sudo apt install keepassxc

答案3

作为其他答案(没有 PPA)的替代方案,只需使用官方版本即可mozilla.org

它可以用作静态/便携式安装,可执行文件为path/to/firefox/firefox。它也可以如上所述在系统级安装这里(根据@mook75 的评论),将该文件夹复制到/opt,创建所需的符号链接(以便类似的命令firefox启动浏览器),并提供启动器。

在 22.04(便携版)中测试时,我发现与之前的非 snap 版本相比没有任何限制,所有附加组件都可以使用,只是需要单击才能完成更新Help - About Firefox

截屏

对于便携式安装,我们需要为其创建一个启动器,手动或使用菜单编辑器,例如点菜或 KDE 菜单编辑器。

答案4

稍等一下 :)

这是一个已知问题,修复正在进行中,预计在六月左右

请参阅此处的本机消息传递部分: https://ubuntu.com/blog/how-are-we-improving-firefox-snap-performance-part-1

更新

据我所知,这个问题现在已经解决了。

不确定 KeePassXC 集成是否已运行,但其他原生消息应用程序可以运行。

只需使用以下方法检查:

flatpak permissions webextensions

并添加权限:

flatpak permission-set webextensions xx.yy.zz snap.firefox yes

相关内容