强制卸载损坏的 Snap 包

强制卸载损坏的 Snap 包

我尝试手动用指向大硬盘的符号链接替换 ​​/var/lib,但之后系统严重受损,我放弃了,将所有内容移回原处并重新启动。一切似乎都运行良好,只是 Firefox snap 安装出现故障。

我删除了它sudo snap remove firefox,这似乎按照我在文档中看到的方式进行。但是当我尝试再次使用时sudo snap install firefox,它说 Firefox 已经安装并拒绝继续。我将重复执行删除步骤,但每次我尝试再次安装时,它总是坚持说它已经安装。

有没有办法强制清除所有记录并重新安装该包?

$ lsb_release -a
No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 22.04.3 LTS
Release:    22.04
Codename:   jammy

以下是输出snap info firefox

name:      firefox
summary:   Mozilla Firefox web browser
publisher: Mozilla✓
store-url: https://snapcraft.io/firefox
contact:   https://support.mozilla.org/kb/file-bug-report-or-feature-request-mozilla
license:   unset
description: |
  Firefox is a powerful, extensible web browser with support for modern web application
  technologies.
commands:
  - firefox
  - firefox.geckodriver
snap-id:  3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk
tracking: latest/stable/ubuntu-22.04
channels:
  latest/stable:    122.0.1-1    2024-02-06 (3779) 275MB -
  latest/candidate: 122.0.1-1    2024-02-07 (3789) 275MB -
  latest/beta:      123.0b9-1    2024-02-09 (3806) 279MB -
  latest/edge:      124.0a1      2024-02-11 (3813) 298MB -
  esr/stable:       115.7.0esr-1 2024-01-23 (3671) 255MB -
  esr/candidate:    115.7.0esr-1 2024-01-16 (3671) 255MB -
  esr/beta:         ↑                                    
  esr/edge:         ↑                                    
installed:          122.0.1-1               (3779) 275MB disabled

在 上sudo snap remove firefox,我收到了几条进度消息,这些消息是用回车符写的,因此我无法捕获,但它以此结尾:

error: cannot perform the following tasks:
- Remove data for snap "firefox" (3779) (unlinkat /var/snap/firefox/common/host-hunspell/en_US.dic: read-only file system)

我之前没有注意到只读部分,但我没有触碰过 /var/snap。/data 是使用默认挂载选项挂载的硬盘。

注意到信息中提到“已禁用”,我尝试启用,并sudo snap enable firefox报告已启用。进展顺利!

但是当我调用 Firefox 时,我得到了这个:

cannot perform operation: mount --rbind /var/log /tmp/snap.rootfs_5NV2S1//var/log: Permission denied

因此,我猜测 /var/log 存在权限问题,它是 /data/var/log 的链接(我这样做是为了节省 SSD 上的空间)。

/data/var/log 的权限为:

ls -ld log
drwxrwxr-x 15 root syslog 4096 Feb 11 00:00 log

这些看起来是正确的,但我不确定mount --rbind想要做什么。

附言:“根据霍伊尔的说法”只是一个表达,意思是“遵守规则”。霍伊尔写了一本关于纸牌游戏规则的著名书。

答案1

在听从了@starkus 的提示后,我放弃了将 /var/log 链接到 /data 的想法,以便为更重要的东西保留 SSD 空间。

相反,我经历了将硬盘置于 lvm 控制之下的危险过程,并为 /var、/opt、/home 和 /srv 创建了逻辑卷。

我大致遵循了指南这里,但我没有执行 grub 步骤,只是将我的 /var 重命名为 /var2,将 /home 重命名为 /home2 等,并在 /var、/home 等处创建空目录,并且编辑了 /etc/fstab 以将我的逻辑卷挂载到新目录上,重新启动,实际上只是关闭电源,重新启动后一切正常。

希望这对某人有帮助。

相关内容