我在 Ubuntu 服务器上尝试运行使用 Dart 构建的 API 时收到以下信息:
root@veyilserver:~/veyilapi# dart run
Building package executable... (17.7s)
Compilation did not produce any result. Expected file at /root/veyilapi/.dart_tool/pub/bin/veyilapi/tmpCNPJMW/veyilapi.dart-3.3.4.snapshot.incremental.temp
Built veyilapi:veyilapi.
Cannot rename file to '/root/veyilapi/.dart_tool/pub/bin/veyilapi/veyilapi.dart-3.3.4.snapshot', path = '/root/veyilapi/.dart_tool/pub/bin/veyilapi/tmpCNPJMW/veyilapi.dart-3.3.4.snapshot.incremental.temp' (OS Error: No such file or directory, errno = 2)
PathNotFoundException: Cannot rename file to '/root/veyilapi/.dart_tool/pub/bin/veyilapi/veyilapi.dart-3.3.4.snapshot', path = '/root/veyilapi/.dart_tool/pub/bin/veyilapi/tmpCNPJMW/veyilapi.dart-3.3.4.snapshot.incremental.temp' (OS Error: No such file or directory, errno = 2)
一切都运行良好,直到我昨天重新启动服务器。现在,它彻底坏了。我尝试卸载并重新安装 Dart SDK,也尝试使用早期版本(3.3.0 和 3.0.0),但无法克服这个问题。
有人可以帮忙解决吗?
很抱歉,但我不确定这是否是语言或 Dart VM 的问题。
以下是有关我正在使用的服务器和 Dart 版本的更多信息:
dart info
)Dart 3.3.4 (stable) (None) on "linux_x64"
on linux / Linux 6.5.0-28-generic #29-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 28 23:46:48 UTC 2024
locale is C.UTF-8
未找到 Dart 进程。
Ubuntu 23.10 x64
name: veyilapi
description: A simple server setup
version: 1.0.0
environment:
sdk: ">=3.0.0"
dependencies:
args: ^2.5.0
shelf: ^1.4.1
shelf_router: ^1.1.4
http: ^1.2.1
dev_dependencies:
lints: ^3.0.0
test: ^1.25.4
另外,当我尝试运行
dart compile
时,发生了以下错误:
root@veyilserver:~/veyilapi# dart compile exe bin/veyilapi.dart
Error: AOT compilation failed
Generating AOT kernel dill failed!
.dart_tools
,发现它是空的。.dart_tools
并运行了dart pub get
。dart pub cache clean
-> dart pub get
-> dart run
经过Dart社区的讨论,终于解决了这个问题。
没有充分的理由,带有
dart compile
标志的 --verbose
确实工作并生成了编译后的 .exe
文件,我能够毫无问题地启动服务器。
注意:当我尝试单独运行
dart compile
或 dart run
时,问题仍然存在。
我在使用苹果芯片的 macOS 上的 flutter 3.27.0 上遇到了类似的错误 - 我尝试了几种方法,包括
flutter clean
和 flutter doctor -v
,以及接受的答案,但最终我卸载并重新安装了 flutter,这对我有用.
我相信更新到 3.27 后部分 dart SDK 已损坏