我正在使用 Serverpod 和 terraform 脚本上传到 aws 服务器。 在我的 pubspec.yaml 文件中,我必须有 dart SDK 版本 3.5.0(最新版本)。 但部署到 aws ec2 linux 后,我收到 502 Bad gateway。它说: 当前的 Dart SDK 版本是 3.1.0(这是在我的 ec2 Linux 机器上)。 由于_server需要SDK版本为3.5.0,版本解决失败。 我试过这个:
回显“安装 dart”
解压-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/ 因为文件已经存在。 如果我尝试 rm usr/lib/dart/ 中的 dart-sdk,它会说 无法删除该目录。 毕竟它仍然显示我的 ec2 linux 的 dart 版本为 3.1.0 我想要 3.5.0.
它说“无法删除目录”,因为您需要添加
-r
和可选的 -f
标志到 rm
命令。
来自文档:
-r, -R, --recursive
remove directories and their contents recursively
-f, --force
ignore nonexistent files and arguments, never prompt
所以你的命令应该看起来像这样:
sudo rm -rf /usr/lib/dart/dart-sdk
在
rm
命令之后,您应该重复另一个步骤,从 sudo mv dart-sdk/ /usr/lib/dart/
开始
另外,我个人认为这种管理Dart版本的方式不太方便。以下是使用包管理器安装/管理 Dart SDK 版本的推荐方法:https://dart.dev/get-dart#install