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的命令。

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

相关文章
|
6月前
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
153 4
|
Ubuntu
Ubuntu没有chkconfig 服务解决办法
Ubuntu没有chkconfig 服务解决办法
185 0
|
Ubuntu 开发工具
Ubuntu不能上网解决办法
Ubuntu不能上网解决办法
602 0
|
Ubuntu 虚拟化
vmware tools选项灰色解决办法(ubuntu 14.04)
vmware tools选项灰色解决办法(ubuntu 14.04)
1043 0
vmware tools选项灰色解决办法(ubuntu 14.04)
|
6月前
|
Ubuntu Linux 时序数据库
|
1月前
|
Ubuntu 网络安全 Apache
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
Ubuntu下安装Apache2.4.7遇到的问题及解决办法
|
3月前
|
Ubuntu 网络安全 数据安全/隐私保护
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
Ubuntu 普通用户修改sudoers导致无法使用sudo的解决办法
111 2
|
3月前
|
Ubuntu Linux 开发工具
Windows11 WSL2 Ubuntu编译安装perf工具
Windows11 WSL2 Ubuntu编译安装perf工具
139 0
|
4月前
|
NoSQL Ubuntu 安全
RedisDesktopManager连接Ubuntu的Redis失败解决办法
通过仔细检查您的系统配置与网络设置,您通常可以解决RDM连接到Ubuntu服务器上的Redis实例的问题。始终牢记在公开或者不信任的网络上,以安全为先,避免泄露敏感信息。
125 2
|
6月前
|
Linux 程序员 Shell
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法
242 0