WSL2(4) Ubuntu中无法使用snap解决办法

简介: WSL2(4) Ubuntu中无法使用snap解决办法

前言

snap是一种用于安装和管理Linux应用程序的软件包管理器,它可以让用户轻松地获取最新版本的应用程序,而不用担心依赖问题或系统更新。snap在Ubuntu中是默认的软件商店,但是在Windows 11下WSL的Ubuntu中,snap无法正常工作,因为WSL没有使用systemd作为初始化系统,而snap依赖于systemd来管理服务。本文将介绍如何解决这个问题,让你可以在WSL的Ubuntu中使用snap。

解决方法

要解决这个问题,我们需要使用一个脚本,来让WSL的Ubuntu启动时使用systemd作为初始化系统。这个脚本的地址是:

https://github.com/DamionGans/ubuntu-wsl2-systemd-script

具体的操作步骤如下:

  1. 在WSL的Ubuntu中,创建一个缓存目录,并进入该目录:
mkdir caches && cd caches
  1. 克隆脚本仓库到本地:
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
  1. 进入脚本目录,并运行脚本:
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
  1. 脚本运行完毕后,重启WSL。在PowerShell中输入:
wsl --shutdown

然后重新打开WSL。

  1. 在WSL中尝试使用systemctl命令,看是否正常工作:
systemctl

如果没有报错,则说明成功。

验证方法

要验证是否可以使用snap,可以在WSL中输入:

snap version

如果snapd有具体的版本号,则说明正确,如下所示:

snap    2.54.3+20.04.1ubuntu0.2
snapd   2.54.3+20.04.1ubuntu0.2
series  16
ubuntu  20.04
kernel  5.10.102.1-microsoft-standard-WSL2

另一种情况

如果你在WSL中使用systemctl命令时遇到了这样的报错:

System has not been booted with systemd as init system (PID 1). Can't operate.

这可能是因为Linux操作系统没有使用systemd,而是使用了经典的SysV init(sysvinit)系统。这种情况下,需要用SysV init的命令来代替systemd的命令。例如,要重启snapd服务,可以用这个命令:

sudo service snapd restart

而不是这个命令:

sudo systemctl restart snapd.service

你可以用这个命令来查看你的Linux操作系统使用了哪种初始化系统:

ps -p 1 -o comm=

如果输出是systemd,则说明你使用了systemd;如果输出是init,则说明你使用了SysV init。

总结

本文介绍了如何在Windows 11下WSL的Ubuntu中使用snap,通过一个脚本来让WSL使用systemd作为初始化系统,从而解决snap依赖于systemd的问题。同时,也介绍了另一种可能遇到的情况,即Linux操作系统没有使用systemd,而是使用了SysV init系统。这种情况下,需要用SysV init的命令来代替systemd的命令。

希望这篇文章对你有所帮助,如果你有任何问题或建议,请在评论区留言。

相关文章
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
444 4
|
Ubuntu
Ubuntu没有chkconfig 服务解决办法
Ubuntu没有chkconfig 服务解决办法
385 0
|
Ubuntu 开发工具
Ubuntu不能上网解决办法
Ubuntu不能上网解决办法
2946 0
|
Web App开发 Ubuntu Linux
百度搜索:蓝易云【Ubuntu Linux中如何删除Firefox Snap?】
通过上述步骤,你可以在Ubuntu Linux中删除Firefox Snap。这将彻底删除通过Snap安装的Firefox,并确保你可以选择其他版本或使用其他方式重新安装Firefox。
571 0
|
Ubuntu Linux 时序数据库
|
2月前
|
缓存 Ubuntu 安全
如何在Ubuntu中移除Snap包管理器
以上步骤涉及系统深层次的操作,可能会对系统稳定性和安全性产生影响。在执行这些操作之前,请确保您了解每个步骤的具体含义,并考虑所有潜在的风险。此外,这些步骤可能会随着Ubuntu系统的更新而变化,请根据您的具体系统版本进行调整。
391 17
|
7月前
|
Ubuntu 安全
Ubuntu中遇到"无法创建临时文件"/tmp/..."在普通或root用户运行apt-get update时的错误解决办法
这些步骤当然不能涵盖所有可能出现问题的场合,但是能覆盖大多数常见的情景。希望这些信息能帮到你解决"无法创建临时文件"/tmp/..."这样的问题。不过,请记住,因为修改系统文件和目录的权限,清理临时文件,或者运行磁盘检查,都可能对系统造成影响,所以执行这些操作前要先确认这是安全的,必要时最好先做好数据备份。
451 10
|
9月前
|
监控 Ubuntu Linux
Windows11 WSL2 Ubuntu编译安装perf工具
通过以上步骤,你已经在Windows 11的WSL2中成功编译并安装了 `perf`工具。尽管在WSL2中可能会遇到一些限制,但大部分基本性能分析功能应当可以正常使用。使用 `perf`进行性能分析,可以帮助你更好地理解和优化系统及应用程序的性能。
669 14
|
Ubuntu 网络安全 Apache
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
234 2
|
Ubuntu 网络安全 数据安全/隐私保护
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
557 2