如何完全移除Snap并替换为Flatpak?

我想要移除Ubuntu上与snap相关的所有现有软件/包,并替换为flatpak
如何完全移除Ubuntu 19.04中的snap,并替换为flatpak,而不会导致系统崩溃或混乱?
2个回答

你可以手动操作或使用unsnap(请查看结尾处更多信息)。
为什么这样做呢? 这里有一篇不错的文章(基本上,Snap只从{{strong:专有}}的Canonical存储库中安装)。
另一方面,它也有一些反对者: 删除Snap 也许对于那些希望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,例如 Ungoogled Chromium1
值得一提的是,"可以删除所有的 snaps,并删除 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

来源:

command-not-found中移除Snap

也可以更改command-not-found的行为,停止建议安装snap软件包(命令' something '未找到,但可以通过以下方式安装:),调整CommandNotFound类中的advice方法,位于/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py/usr/share/doc/command-not-found/README.md已过时)。在末尾(第365行)添加snaps, mispell_snaps = ['','']以强制得到一个空结果。

安装Flatpak

  1. 在Ubuntu 18.10或更高版本上安装Flatpak(对于旧版本,请查看这里)。
    sudo apt install flatpak
    
  2. 安装Software 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权限,请检查Flatsealflatpak 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: 显示有关已安装的应用程序的信息。

取消捆绑

Ex snap开发者Alan Pope开发了unsnap(目前处于预阿尔法状态),以快速从使用snap软件包迁移到flatpak:

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

pop-transition是一个类似的项目。

相关


1有趣的是这是教皇说的。他一直都支持快照。 - matigo
3@matigo 他在2021年离开了Canonical。他愿意花时间来启动这个项目,我想这可以告诉我们一些事情.. - Pablo Bianchi

sudo apt purge snapd gnome-software-plugin-snap 

感谢Doug。现在感觉非常清洁,所有的杂乱都被清除了。

screenshot