Snap 使用

Snap 是一个或多个应用程序的捆绑包,可在许多不同的 Linux 发行版中使用,无需依赖或修改。Snap 可从 Snap Store(一个拥有数百万用户的公共应用程序商店)中发现和安装。很多常用的软件,如 VS CodeSpotify 都可以在 Snap Store 上找到。

具体来说,Snap Store 相当于 Linux 上的 App Store

常用命令

snap find "media player"                  # 搜索 snap
snap info <snap>                          # 查看 snap 详细信息
snap list                                 # 列出已安装 snap
sudo snap refresh                         # 更新全部 snap
sudo snap remove <snap>                   # 卸载 snap
sudo snap install <snap>                  # 安装 snap
sudo snap install --channel=edge <snap>   # 安装时指定 channel
sudo snap switch --channel=stable <snap>  # 切换 channel

大部分 snap 应用程序可以从命令行或者桌面启动器运行。如果不起作用,尝试使用 snap run 命令:

snap run <snap>

Snap 应用程序链接位于 /snap/bin,已经添加到系统 $PATH。

参考:Quickstart tour | Snapcraft

已知问题

1Password 浏览器插件通信问题

Ubuntu 已经将系统自带的 Firefox 全部改由 Snap 安装。然而 Snap 的沙盒机制会导致 Snap 版 Firefox 无法与外界程序通信。这导致 1Password 浏览器插件无法连接到 1Password 桌面应用。反过来 Snap 版 1Password 桌面应用也会因为沙盒机制而无法与 1Password 浏览器插件通信。相关解释:If the 1Password browser extension doesn't unlock when you unlock the 1Password app | 1Password Support

Firefox 无法上传文件

沙盒机制也会导致 Snap 版的 Firefox 无法从计算机上传文件。

因此,建议 1Password 和 Firefox 都不要安装 Snap 版本。安装普通版 Firefox 的方法参考使用基于 Debian 发行版的 .deb 包安装 Firefox | Mozilla Support

我个人不太喜欢使用 Snap 包,最喜欢的还是使用 DEB 包安装程序。

卸载 snap

卸载 snap 会导致 Ubuntu Pro Livepatch 无法启动

  1. 卸载 snap 软件包:

    snap list                       # 查看已安装软件包
    sudo snap remove lxd            # 移除 lxd
    sudo snap remove core20 core22  # 移除 snap 基础运行时环境
    sudo snap remove snapd          # 移除 snap
    
  2. 停止 snapd 服务:

    sudo systemctl stop snapd.service
    sudo systemctl disable --now snapd.socket
    
  3. 删除 snapd 的 core 文件:

    for m in /snap/core/*; do
       sudo umount $m
    done
    
  4. 删除 snap 管理工具:

    sudo apt purge --autoremove snapd
    
  5. 删除 snap 目录:

    rm -rf ~/snap
    sudo rm -rf /snap
    sudo rm -rf /var/snap
    sudo rm -rf /var/lib/snapd
    sudo rm -rf /var/cache/snapd
    
  6. 禁止 apt 安装 snapd:

    echo '
    Package: snapd
    Pin: release a=*
    Pin-Priority: -1
    ' | sudo tee /etc/apt/preferences.d/no-snapd
    
  7. 禁用 snap 版 FireFox:

    echo '
    Package: firefox
    Pin: release a=*
    Pin-Priority: -1
    ' | sudo tee /etc/apt/preferences.d/no-firefox
    

参考:Ubuntu 22.04 禁用(彻底移除)Snap | SYStem INside

posted @ 2024-07-31 00:56  Undefined443  阅读(204)  评论(0)    收藏  举报