如何彻底去除snap并更换为flatpak?

naz*_*ive 15 snap flatpak 19.04

我想删除 Ubuntu 上与snap相关的所有现有软件/软件包,并用flatpak替换。

如何在 Ubuntu 19.04 中完全删除 snap 并替换为 flatpak 而不崩溃或弄乱我现有的系统?

Pab*_*chi 17

您可以手动或通过取消对齐来执行此操作(更多内容在最后)。

为什么?

是一篇不错的文章。基本上,snap 仅从专有的 Canonical 存储库安装没有自由更改它。另外将文件安装到非标准位置

另一方面,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
Run Code Online (Sandbox Code Playgroud)

如果你不确定是否要完全删除 snap,你至少可以将其减少到最低程度:删除 snap-store,从 GNOME 软件中删除 snap 插件;当然,删除任何也可作为 flatpak 使用的 snap 包,例如Ungoogled 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
Run Code Online (Sandbox Code Playgroud)

资料来源

也从command-not-found中删除 snap

还可以更改命令未找到行为以停止建议安装快照包(未找到命令“某事”,但可以使用:安装:),adviceCommandNotFound类上调整方法/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py/usr/share/doc/command-not-found/README.md已过时)。接近末尾(第 365 行)添加snaps, 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))
Run Code Online (Sandbox Code Playgroud)

这适用于 bash。在zsh上/usr/lib/command-not-found好像可以用。

安装Flatpak

  1. 在 Ubuntu 18.10 或更高版本上安装 Flatpak在此处查看旧版本)。

    sudo apt install flatpak
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装 Software Flatpak 插件:Software 应用程序的 Flatpak 插件使得无需命令行即可安装应用程序。要安装,请运行:

    sudo apt install gnome-software-plugin-flatpak
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加 Flathub 存储库:Flathub 是获取 Flatpak 应用程序的最佳位置。要启用它,请运行:

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    
    Run Code Online (Sandbox Code Playgroud)

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

  4. 重新启动系统( reboot)。

要调整 Flatpak 权限,请检查Flatseal ( 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
    
    Run Code Online (Sandbox Code Playgroud)
  • flatpak list:列出所有已安装的应用程序和运行时。

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

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

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

松开

前 snap 开发人员 Alan Pope开发了unsnap(目前处于 pre-alpha 状态),可以快速从使用 snap 包迁移到 flatpaks:

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

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

有关的

  • @matigo [他于 2021 年离开 Canonical](https://twitter.com/popey/status/1511346989245554698)。我想他愿意花时间启动这个项目可以告诉我们一些事情。 (3认同)

naz*_*ive 5

sudo apt purge snapd gnome-software-plugin-snap 
Run Code Online (Sandbox Code Playgroud)

感谢道格。现在感觉很干净,所有的卡扣都被移除了。

截屏


归档时间:

查看次数:

8873 次

最近记录:

2 年,9 月 前