「snap」- error: snap “xxx“ has “install-snap“ change in progress @20210212

当尝试通过snap安装chromium时遇到'install-snap'变更进行中的错误,这通常是因为网络问题导致安装过程卡住。通过运行'snapchanges'命令可查看当前变更状态,使用'snapabort'命令加上变更ID(例如10)可终止正在进行的安装。之后,可以安全地重新尝试安装。

问题描述

执行 snap install chromium 命令,产生如下错误:

error: snap "chromium" has "install-snap" change in progress

问题原因

由于网络原因,安装 chromium 处于卡住状态,所以已经存在安装任务。当再次执行该应用的安装,将产生上述错误。

使用 snap changes 查看当前正在进行的变更:

# snap changes
ID   Status  Spawn                     Ready               Summary
9    Doing   7 days ago, at 20:45 CST  -                   Auto-refresh snap "snapd"
10   Doing   yesterday at 21:21 CST    -                   Install "chromium" snap
11   Done    today at 16:56 CST        today at 16:56 CST  Change configuration of "core" snap
12   Done    today at 16:57 CST        today at 16:57 CST  Change configuration of "core" snap

解决办法

如果停止当前安装或者重新开始,可以执行如下命令:

# snap abort "10"

// 其中参数 10 为 snap changes 输出的 ID 列

相关文章

<think> 我们面对两个问题: 1. 依赖问题:code 需要更高版本的 libc6 (>=2.28) 和 libxkbfile1 (>=1:1.1.0),但当前系统版本较低。 2. Snap 安装冲突:在尝试操作 snap 版的 code 时出现 'error: snap "code" has "install - snap" change in progress' 错误。 解决思路: 首先,我们需要解决 snap 的冲突,因为可能有一个未完成的 snap 安装进程占用了资源。然后解决依赖问题。 步骤: 一、解决 Snap 安装冲突 根据错误信息,说明有一个未完成的 snap 操作(可能是安装、更新或卸载)。我们可以尝试以下方法: 1. 查看 snap 的变更列表,找到未完成的操作: `snap changes` 2. 终止未完成的操作(假设未完成的操作ID为1): `sudo snap abort 1` 3. 如果无法终止,可以尝试重启 snapd 服务: `sudo systemctl restart snapd` 4. 然后再次尝试卸载 snap 安装的 code(如果之前卸载失败): `sudo snap remove code` 二、解决依赖问题 由于系统是 Ubuntu 18.04(从libc6版本2.27判断),而官方仓库可能没有提供高版本的libc6(2.28+)和libxkbfile1(1.1.0+)。因此我们需要考虑以下方法: 方法1:升级系统(推荐) 升级到 Ubuntu 20.04 或更高版本,这些版本默认提供更高版本的库。 方法2:手动安装高版本库(风险较高,可能破坏系统) 不建议,因为libc6是核心库,手动升级可能导致系统不稳定。 方法3:使用官方仓库安装(推荐) 微软提供了VSCode的官方仓库,其中可能包含对旧系统的兼容版本,或者会正确解决依赖。 方法4:使用强制安装并忽略依赖(不推荐) 使用dpkg的`--ignore-depends`选项强制安装,但可能会导致运行时问题。 鉴于安全性和稳定性,我们优先使用方法3(官方仓库安装)。 具体步骤: 步骤一:添加微软VSCode仓库 ```bash wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' rm -f packages.microsoft.gpg ``` 步骤二:更新并安装 ```bash sudo apt update sudo apt install code # 或 code-insiders ``` 如果上述方法无法解决依赖(因为系统库版本确实太低),那么可能需要考虑升级系统。 步骤三:如果仍然想安装下载的.deb包(不推荐,因为依赖不满足) 我们可以尝试安装所需版本的库,但Ubuntu 18.04官方仓库没有提供2.28以上的libc6。因此,如果坚持,可以尝试从更高版本的Ubuntu仓库下载安装,但风险极大,可能导致系统崩溃。 替代方案:使用Snap安装(但之前有冲突,需要先解决冲突) 在解决Snap冲突后,可以尝试: `sudo snap install code --classic` 总结推荐方案: 1. 解决Snap冲突(终止未完成操作或重启snapd) 2. 使用微软官方仓库安装VSCode 3. 如果官方仓库安装失败,则考虑升级系统(例如到Ubuntu 20.04) 下面给出详细步骤: 详细步骤: 第一部分:解决Snap冲突 1. 查看未完成的snap操作: 在终端运行:`snap changes` 输出可能类似: ID Status Spawn Ready Summary 1 Doing today at 14:20 CST - Install "code" snap 2. 终止该操作(假设ID为1): 运行:`sudo snap abort 1` 3. 重启snapd服务: 运行:`sudo systemctl restart snapd` 4. 再次尝试卸载(如果之前安装过snap版的code且现在要卸载): `sudo snap remove code` 第二部分:安装VSCode 方案A:使用微软官方仓库安装 1. 添加微软GPG密钥和仓库(如上步骤一) 2. 更新并安装: 运行: sudo apt update sudo apt install code 方案B:如果不想用仓库,可以下载最新deb包并安装(但依赖问题可能仍然存在,所以不推荐) 方案C:使用Snap安装(如果之前冲突已解决) `sudo snap install code --classic` 注意:Snap安装的VSCode可能会在沙盒环境中运行,部分功能可能受限,但可以避免依赖问题。 第三部分:如果以上都不行,考虑系统升级 升级Ubuntu到20.04或22.04,因为18.04已经接近生命周期结束(EOL),官方支持将终止。 升级步骤(谨慎操作,备份重要数据): 1. 更新当前系统: `sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y` 2. 安装更新管理器: `sudo apt install update-manager-core` 3. 运行升级命令: `sudo do-release-upgrade` 最后,重新启动系统。 完成升级后,再尝试安装VSCode。 由于用户问题中同时提到两个错误,我们按照上述步骤分别解决。 生成相关问题: §§相关问题§§ 1. 如何终止未完成的 snap 操作? 2. 如何安全升级 Ubuntu 18.04 到 22.04 LTS? 3. 使用 snap 安装和 apt 安装软件有什么区别? </think> ### 解决 VSCode 安装的依赖冲突和 Snap 错误 #### 一、解决 Snap 安装冲突错误 ```bash # 1. 终止卡住snap 进程 sudo snap abort $(snap changes | grep -Po '^\d+(?=.*code.*)') # 2. 重启 snap 服务 sudo systemctl restart snapd.socket snapd.service # 3. 彻底移除冲突的 snap 版 VSCode sudo snap remove --purge code ``` #### 二、解决 deb 包的依赖问题 ```bash # 1. 添加官方 VSCode 仓库(自动解决依赖) wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' # 2. 安装依赖库 sudo apt update sudo apt install -y libc6 libxkbfile1 libgtk-3-0 libnss3 libasound2 # 3. 安装 VSCode sudo apt install code # 4. 验证安装 code --version ``` #### 三、替代安装方案(如仍遇到依赖问题) ```bash # 方案1:使用 AppImage(免安装) wget https://code.visualstudio.com/sha/download?build=stable&os=linux-x86_64 -O VSCode.AppImage chmod +x VSCode.AppImage ./VSCode.AppImage # 方案2:强制安装 deb 包(不推荐) sudo dpkg -i --ignore-depends=libc6,libxkbfile1 code_1.106.2-1763572306_amd64.deb sudo apt -f install ``` ### 关键说明: 1. **Snap 冲突原因**:当 snap 安装进程被意外中断时,会锁定安装状态[^1] 2. **依赖问题根源**:Ubuntu 18.04 的默认库版本 (libc6=2.27) 低于 VSCode 要求 (≥2.28)[^2] 3. **最佳实践**:通过官方仓库安装可自动解决依赖关系链 > **重要提示**: > 如果系统是 Ubuntu 18.04 或更早版本,建议升级到 20.04+ 以获得长期支持。使用以下命令检查系统版本: > `lsb_release -a`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值