无法与服务器通信:Post http://localhost/v2/apps: dial unix /run/snapd.socket: connect: 没有该文件或目录

我正在尝试使用Heroku CLI进行安装。
sudo snap install heroku --classic

命令行显示
error: cannot communicate with server: Post http://localhost/v2/apps: dial unix /run/snapd.socket: connect: no such file or directory

我尝试了systemctl status snapd.service,这是结果:
snapd.service
   Loaded: masked (/dev/null; bad)  
   Active: inactive (dead)

我尝试了 systemctl restart snapd.service,它显示:
Failed to restart snapd.service: Unit snapd.service is masked.

非常感谢您对上述问题的任何帮助。谢谢。

3相关链接:systemctl,如何取消屏蔽 - Ravexina
5对于遇到Windows子系统Linux(WSL)的问题的任何人,请参考- https://github.com/microsoft/WSL/issues/5126在尝试snap安装之前运行以下命令 - 应该可以解决问题:sudo apt-get update && sudo apt-get install -yqq daemonize dbus-user-session fontconfigsudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.targetexec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME - Chris Halcrow
1将以下内容添加到 /etc/wsl.conf 中(请注意,您需要使用 sudo 权限运行编辑器):[boot] systemd=true之后,您应该运行 wsl.exe --shutdown。 - Felipe Pereira
1个回答

解除 snapd.service 的掩饰:
sudo systemctl unmask snapd.service

启用它:

sudo systemctl enable snapd.service

开始吧:
sudo systemctl start snapd.service

然后尝试安装您想要的应用程序。

10我正在运行基于Ubuntu Linux的WSL,运行这些指令在最后一个命令之后出现错误:系统未使用systemd作为init系统(PID 1)启动。无法操作。 - Andy
13如果您正在使用WSL,则此答案不适用于您的情况。基本上,因为WSL本身没有systemd。然而,这个链接可能对您有所帮助。 - Ravexina
16我正在一个Ubuntu的Docker镜像中。运行systemctl start snapd.service返回System has not been booted with systemd as init system (PID 1). Can't operate. - Jortega
@Jortega 你有找到解决方案吗?根据其他讨论来看,我认为试图在没有 systemd 的情况下运行 snapd 不值得麻烦。 - Brian Z