You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2 Linux实例升级Dart SDK至3.5.0版本遇阻求助

问题:AWS EC2 Linux实例无法升级Dart SDK至3.5.0

我用Serverpod和Terraform部署到AWS服务器,pubspec.yaml要求必须使用Dart SDK 3.5.0,但部署后出现502网关错误,提示:

当前Dart SDK版本为3.1.0(EC2 Linux实例上的版本)。
因_server要求SDK版本3.5.0,版本解析失败。

尝试过的安装脚本

echo "Installing dart"

wget -q https://storage.googleapis.com/dart-archive/channels/stable/release/3.5.0/sdk/dartsdk-linux-x64-release.zip

unzip -q dartsdk-linux-x64-release.zip

sudo mv dart-sdk/ /usr/lib/dart/

sudo chmod -R 755 /usr/lib/dart/

echo 'export PATH="$PATH:/usr/lib/dart/bin"' >> /etc/profile.d/script.sh

遇到的错误

执行脚本时提示:

无法将dart-sdk移动至/usr/lib/dart/,文件已存在。

尝试删除/usr/lib/dart/下的dart-sdk目录时,提示:

无法删除该目录。

当前EC2实例上Dart版本仍为3.1.0,需要升级至3.5.0。


解决方案

1. 强制替换现有SDK目录

直接用rsync同步新SDK覆盖原有文件,避免移动/删除失败的问题:

# 下载并解压3.5.0版本
wget -q https://storage.googleapis.com/dart-archive/channels/stable/release/3.5.0/sdk/dartsdk-linux-x64-release.zip
unzip -q dartsdk-linux-x64-release.zip

# 强制同步新SDK到目标目录,覆盖所有原有内容
sudo rsync -av --delete dart-sdk/ /usr/lib/dart/

# 修复目录权限
sudo chmod -R 755 /usr/lib/dart/

2. 调整环境变量优先级

确保新SDK的bin目录在PATH最前端,避免系统优先调用旧版本:

# 当前会话临时生效
export PATH="/usr/lib/dart/bin:$PATH"

# 永久生效(覆盖原有配置)
echo 'export PATH="/usr/lib/dart/bin:$PATH"' | sudo tee /etc/profile.d/dart.sh
sudo chmod +x /etc/profile.d/dart.sh

3. 解决无法删除目录的权限问题

如果必须删除旧目录,先检查权限和挂载状态:

# 查看目录所属和权限
ls -ld /usr/lib/dart

# 强制删除目录(root权限执行)
sudo rm -rf /usr/lib/dart

# 若提示只读,重新挂载为读写
sudo mount -o remount,rw /usr/lib

删除成功后再执行mv dart-sdk/ /usr/lib/dart/完成替换。

4. 验证安装结果

执行以下命令确认版本:

dart --version

正常输出应为Dart SDK version: 3.5.0 (stable) (...)


内容的提问来源于stack exchange,提问作者Husain Nahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:12:42