Ubuntu安装.NET 3.1.22遇Exec format error报错,如何解决并正确安装?
问题原因与解决方案
错误原因
-bash: /home/ubuntu/dotnet-sdk/dotnet: cannot execute binary file: Exec format error 是CPU架构不兼容导致的:你下载的dotnet-sdk-3.1.416-linux-arm64.tar.gz是为ARM64架构处理器编译的,而你的Ubuntu机器属于x86_64(AMD64)架构,二进制指令集不匹配,因此无法执行。
解决当前报错并正确安装.NET 3.1.22
.NET 3.1.22 Runtime对应的SDK版本是3.1.416,以下提供两种安装方式:
方式一:手动下载解压安装(支持自定义路径)
清理错误文件
删除已解压的不兼容SDK目录:sudo rm -rf /home/ubuntu/dotnet-sdk若你已将环境变量写入
~/.bashrc或~/.profile,打开对应文件删除以下两行配置,再执行source ~/.bashrc(或对应配置文件)使修改生效:export DOTNET_ROOT=/home/ubuntu/dotnet-sdk/ export PATH=/home/ubuntu/dotnet-sdk:$PATH下载对应架构的SDK包
针对x86_64架构的Ubuntu,下载dotnet-sdk-3.1.416-linux-x64.tar.gz包。解压并配置环境
- 创建安装目录:
mkdir -p /home/ubuntu/dotnet-sdk - 解压包到目标目录:
tar zxf dotnet-sdk-3.1.416-linux-x64.tar.gz -C /home/ubuntu/dotnet-sdk - 临时配置环境变量(重启终端后失效):
export DOTNET_ROOT=/home/ubuntu/dotnet-sdk export PATH=$DOTNET_ROOT:$PATH - 永久配置环境变量:将上述两行添加到
~/.bashrc文件末尾,执行source ~/.bashrc生效。
- 创建安装目录:
验证安装
执行以下命令,若输出包含.NET Core SDK 3.1.416和.NET Core Runtime 3.1.22则安装成功:dotnet --info
方式二:通过APT包管理器安装(简便且自动配置环境)
添加微软软件源
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb安装.NET SDK 3.1
sudo apt-get update sudo apt-get install -y dotnet-sdk-3.1该命令会自动安装3.1系列最新版本的SDK(即3.1.416),对应Runtime 3.1.22,且无需手动配置环境变量。
验证安装
执行dotnet --info确认版本信息。
内容的提问来源于stack exchange,提问作者Dhinakar C
相关产品推荐
相关产品推荐

