如何彻底删除 snap 并用 flatpak 替换?

如何彻底删除 snap 并用 flatpak 替换?

我想删除 Ubuntu 上与以下相关的所有现有软件/软件包折断并替换为扁平包装

如何在 Ubuntu 19.04 中彻底删除 snap 并用 flatpak 替换,而不会导致现有系统崩溃或混乱?

答案1

您可以手动或使用取消(更多内容见最后)。

为什么?

这里是一篇不错的文章。基本上,快速安装仅有的来自所有权规范存储库,您无权更改它。将文件安装到非标准位置

另一方面,flatpak 也有其缺点:

移除快照

可能对于那些希望 Canonical 放弃 Snap/snapcraft(至少对于桌面版)的人来说:

# Stop snapd services
sudo systemctl stop snapd && sudo systemctl disable snapd

# Purge snapd
sudo apt purge -y snapd gnome-software-plugin-snap

# Remove no longer needed folders
rm -rf ~/snap
sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd /usr/lib/snapd

# Prevent reinstall
sudo apt-mark hold snap snapd
cat <<EOF | sudo tee /etc/apt/preferences.d/snapd
Package: snapd
Pin: origin *
Pin-Priority: -1
EOF

如果你不确定是否要完全删除 snap,你至少可以将其减少到最低限度:删除 snap-store,从 GNOME 软件中删除 snap 插件;当然,也可以删除任何以 flatpak 形式提供的 snap,例如未在 Google 上搜索过的 Chromium 1
值得一提的是“可以删除所有 snap,然后删除 snapd...桌面将正常运行”(来自前 snap 开发人员;请参阅下面的 unsnap)。gnome-... snaps只是 GTK snap 应用的后端

sudo snap remove snap-store  # And anything you don't use of  snap list
sudo apt purge gnome-software-plugin-snap
sudo apt install gnome-software-plugin-flatpak

来源

删除 snap 也从找不到命令

也可以改变找不到命令停止建议安装 snap 包的行为(未找到命令‘某物’,但可以使用以下命令安装:),从类上调整advice方法(已过时)。在末尾(第 365 行)附近添加以强制结果为空。CommandNotFound/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py/usr/share/doc/command-not-found/README.mdsnaps, mispell_snaps = ['','']

         packages = self.get_packages(command)
         snaps, mispell_snaps = self.get_snaps(command)
         snaps, mispell_snaps = ['','']
         logging.debug("got debs: %s snaps: %s" % (packages, snaps))

这适用于 bash。在 zsh 上/usr/lib/command-not-found似乎可以使用。

安装 Flatpak

  1. 在 Ubuntu 18.10 或更高版本上安装 Flatpak(查看这里(对于旧版本)。

    sudo apt install flatpak
    
  2. 安装软件 Flatpak 插件:Software 应用程序的 Flatpak 插件使无需命令行即可安装应用程序。要安装,请运行:

    sudo apt install gnome-software-plugin-flatpak
    
  3. 添加 Flathub 存储库:Flathub 是获取 Flatpak 应用的最佳场所。要启用它,请运行:

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    

    --user如果要安装每个用户应用程序,请添加。

  4. 重新启动系统reboot)。

调整 flatpak 权限检查平封flatpak install flatseal)。

常用命令

使用flatpak install/uninstall nameOfTheApp通常就足够了。它将运行模糊搜索并建议替代方案。

  • flatpak run name:运行已安装的应用程序。

  • flatpak install remote name:从远程源安装应用程序。--user将按用户安装。示例:

    $ flatpak install flathub org.gnome.gedit
    $ flatpak --user install flathub org.gnome.gedit//3.30
    $ flatpak --user install https://flathub.org/repo/appstream/org.gnome.gedit.flatpakref
    
  • flatpak list:列出所有已安装的应用程序和运行时。

  • flatpak update:更新所有已安装的应用程序和运行时。

  • flatpak remove name:删除已安装的应用程序。--unused还删除系统上未使用的引用。

  • flatpak info name:显示有关已安装应用程序的信息。

取消

前 Snap 开发人员 Alan Pope已经发展取消(目前处于预 alpha 状态)至快速从使用 snap 包迁移到 flatpaks:

快速轻松地从使用snap应用程序迁移到flatpak。unsnap 作为一个两阶段过程运行。unsnap 本身会生成脚本来执行实际迁移。这使用户可以在执行之前查看和/或编辑脚本以验证或调整它们。

流行过渡是一个类似的项目。

有关的

答案2

sudo apt purge snapd gnome-software-plugin-snap 

感谢 doug。现在感觉很干净,所有 snap 都删除了。

截屏

相关内容