我在 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)因为在路上,它可能会帮助别人。