首页 > 系统相关 >Ubuntu22.04(禁用)彻底删除Snap以及出现“rm: 无法删除"XXX":只读文件系统”的解决方案

Ubuntu22.04(禁用)彻底删除Snap以及出现“rm: 无法删除"XXX":只读文件系统”的解决方案

时间:2023-08-24 19:22:29浏览次数:46  
标签:sudo 删除 -- Ubuntu22.04 XXX remove Snap snapd snap

  Ubuntu22.04(禁用)彻底删除Snap以及出现”rm: 无法删除"XXX":只读文件系统“的解决方案

导语

  Snaps 是 Ubuntu 的母公司 Canonical 于 2016 年 4 月发布 Ubuntu 16.04 LTS(Long Term Support,长期支持版)时引入的一种容器化的软件包格式。自 Ubuntu 16.04 LTS 起,Ubuntu 操作系统可以同时支持 Snap 及 Debian 这两种格式的安装包。

  Snap 虽然有一定的优点(请自行搜索),但是不足之处更多。Snap 软件包体积庞大,snapd 进程会导致系统重启等待,并且可能导致卡顿,禁用为佳。

  特别是服务器版用不上这种软件包,默认是安装的,必须彻底删除。Ubuntu 22.04 桌面版中两个关键的程序:软件商店和 Firefox 使用了 Snap 软件包,卡顿明显。

删除Snap的方法

  方法一、方法二删除结果相同。

  但是方法二更为彻底,删掉了缓存下的snapd包文件等。

方法一:

  在你的系统中打开一个终端,使用以下命令查看已经安装的 Snap 软件包的列表。它显示了 Snap 软件包,比如 Firefox,软件商店,主题以及其它默认已经安装的核心软件包。

snap list

  按照以下的顺序移除 Snap 软件包。首先移除 Firefox。然后是软件商店,和用以上命令看到的你的系统中的其它软件包。

sudo snap remove --purge firefox
sudo snap remove --purge snap-store
sudo snap remove --purge gnome-3-38-2004
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge snapd-desktop-integration
sudo snap remove --purge bare
sudo snap remove --purge core20
sudo snap remove --purge snapd

  最后,通过 apt 命令移除 Snap 服务。

sudo apt remove --autoremove snapd

方法二:

删掉所有的已经安装的 Snap 软件

for p in $(snap list | awk '{print $1}'); do
  sudo snap remove $p
done

  一般需要执行两次(桌面版三次),提示如下则正确执行:

snap "Name" is not installed
core20 removed
snapd removed

  再次执行,提示如下,表明已经删除干净:

No snaps are installed yet. Try 'snap install hello-world'.

删除 Snap 的 Core 文件

sudo systemctl stop snapd
sudo systemctl disable --now snapd.socket

for m in /snap/core/*; do
   sudo umount $m
done

删除 Snap 的管理工具

sudo apt autoremove --purge snapd

删除 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

禁止apt安装snapd

  即使你用以上命令移除了 Snap 软件包,但是如果你没有关闭 apt 触发器,sudo apt update 命令会再一次将 Snap 安装回来。要关闭它,我们需要在 /etc/apt/preferences.d/ 目录下创建一个 apt 设置文件 nosnap.pref 来关闭 Snap 服务。

sudo gedit /etc/apt/preferences.d/nosnap.pref

  添加以下的命令行,并保存该文件。

Package: snapd
Pin: release a=*
Pin-Priority: -10

  最终效果如下图:

出现“ rm: 无法删除"XXX":只读文件系统 ”的解决方案 

  对于那些在Ubuntu 22.04中出现错误的情况:

$ sudo snap remove --purge firefox
error: cannot perform the following tasks:
- Remove data for snap "firefox" (1943) (unlinkat /var/snap/firefox/common/host-hunspell/en_ZA.dic: read-only file system)

  首先验证使用以下命令验证/var/snap/firefox/common/host hunspell是否确实挂载在ext4文件系统。

lsblk-fe7-o+ro

  如果情况属实,可使用如下命令停用Firefox服务。

$ sudo systemctl stop var-snap-firefox-common-host\\x2dhunspell.mount
$ sudo systemctl disable var-snap-firefox-common-host\\x2dhunspell.mount 
Removed /etc/systemd/system/default.target.wants/var-snap-firefox-common-host\x2dhunspell.mount.
Removed /etc/systemd/system/multi-user.target.wants/var-snap-firefox-common-host\x2dhunspell.mount.

  不会再出现“ rm: 无法删除"XXX":只读文件系统 ”的问题,可将对应文件删除。

 

标签:sudo,删除,--,Ubuntu22.04,XXX,remove,Snap,snapd,snap
From: https://www.cnblogs.com/learner-and-helper-YZY/p/17654961.html

相关文章

  • Leetcode——1957、删除字符使字符串变好
    一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 。给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 。请你返回删除后的字符串。题目数据保证答案总是 唯一的 。 示例1:输入:s="leeetcode"输出:"leetcode"解释:从第一组'......
  • 删除文章里的中文符号和空格,换成英文逗号,并获取最后两个标签
    defupdate_biaoqian(tag_list,title):iflen(tag_list)==0:print('没有标签,取标题作为标签')titless=re.sub('\s',',',title)tag_list=title.replace('、',',').replace(';',......
  • 删除Excel表格中第一个字符
    函数=MID(A1,2,LEN(A1)-1)示例1:2:......
  • MongoDB :第五章:MongoDB 插入更新删除查询文档
    MongoDB插入文档本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中。文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类似JSON的二进制形式的存储格式,是BinaryJSON的简称。插入文档MongoDB使用insert()或save()方法向集......
  • 扩展功能_逻辑删除
             ......
  • MongoDB :第四章:集合的创建与删除
    MongoDB创建集合本章节我们为大家介绍如何使用MongoDB来创建集合。MongoDB中使用createCollection()方法来创建集合。语法格式:db.createCollection(name,options)参数说明:name:要创建的集合名称options:可选参数,指定有关内存大小及索引的选项 options可以......
  • windows查看/删除DNS缓存
    一、查看DNS缓存打开CMD,输入ipconfig/displaydns二、删除DNS缓存打开CMD,输入ipconfig/flushdns......
  • 服务器数据恢复-误删除ESXi虚拟机的虚拟化数据恢复案例
    服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。 服务器故障&分析:管理员因误操作删除了一台虚拟机,该虚拟机上部署SQLServer数据库和存放了一些其它格式的文件。用户方要求恢复......
  • 1、postgres删除与创建schema
    目录postgres删除与创建schema1、删除schema语法2、创建schemapostgres删除与创建schema1、删除schema语法dropschema[schema_name];或者dropschema[ifexists][schema_name][cascade][restrict];参数说明:参数说明dropschema关键字,删除schema固定语法......
  • CRUD接口_删除操作
         ......