dotnet --help -> 分段错误(核心转储)

dotnet --help -> 分段错误(核心转储)

我在 Ubuntu 20.04 系统上运行的大多数dotnet命令都会出现错误:
Segmentation fault (core dumped)

我尝试重新运行 dotnet 安装脚本,并尝试修改堆栈大小uint -n(按照互联网上的建议)。 (需要注意的是,我在 dotnet 上使用应用程序的后端没有任何问题,而且这个错误似乎是突然出现的。)

我无法找到解决方案。我可以做什么来解决这个问题?

以下命令会产生段错误:

  • dotnet -h
  • dotnet --info

以下命令执行以下操作不是产生段错误:

  • dotnet(没有任何参数)
  • dotnet --list-sdks
  • dotnet --list-runtimes

我使用了这里的官方微软文档https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu安装.NET,直到几天前它都运行得很好。

编辑:经过进一步调查,我发现如果我卸载 SDK,我将不再收到错误,但一旦重新安装,它就会再次出现。

答案1

我在使用通过 snap 安装的 dotnet 时遇到了这个问题。我直接卸载并安装,通过APT。现在它工作得很好。我使用了以下链接中的命令:点网核心

答案2

在 arch(我的例子中是 Manjaro GNOME 21.2.5)上,使用 pacman 安装它,而不是使用 snap 修复它。

首先,删除用snap安装的:

sudo snap remove dotnet-sdk

然后,使用 pacman 安装它:

sudo pacman -S dotnet-sdk

答案3

显然,由于 Snap 的问题,微软 Dotnet 软件包的快照安装要求您执行“sudo dotnet ...”,这样做只会让您在没有核心转储的情况下出现“分段错误”。

这是从 Dotnet 6.0.108 开始的......我可以看到运行 snapfu 版本的 dotnet 的唯一真正原因是因为包管理器版本使用 libunwind13,而不是(截至撰写本文时的当前版本)libunwind14。在我自己的用例中,我可以拥有一个功能齐全、非快照式的 dotnet,或者我可以拥有 Discord……但不能两者兼而有之。 (乌班图22.04)

我希望我能得到答案,但我仍然遇到分段错误......只是没有核心转储。我认为实际的答案是放弃 snap 版本并使用packages.microsoft.com 中的版本,因为它不使用 libunwind?据说并且有效。 (有一次,我从那个版本切换到了 ubuntu 自带的版本。)

我在这里添加这个是因为 1)我无法发表评论; 2)因为在路上,它可能会帮助别人。

相关内容