如何控制 kotlinc-native 的"native dependency"下载的目标目录?



我想在我们的一台 Linux 服务器机器上使用 kotlin native。我们的 HOME 目录位于网络文件系统(准确地说是 AFS)上,并且它们的配额规则非常有限(我的"家"只有 200 MB)。但是服务器有一个巨大的/data分区,我们用它来存储所有重要的东西。

我们在这些服务器上也缺少 gradle,我决定全部手动:

  • 我通过发布页面下载了 kotlin-native-linux-1.3-eap-10240.tar.gz
  • 然后我把它提取到/data/kotlin-native

然后我将简单的hello.kt复制到该系统,并尝试编译:

kotlinc-native -verbose hello.kt

logging: using Kotlin home directory /data/kotlin-native-linux-1.3-eap-10240/konan
Downloading native dependencies (LLVM, sysroot etc). This is a one-time action performed only on the first run of the compiler.
Downloading dependency: https://download.jetbrains.com/kotlin/native/clang-llvm-6.0.1-linux-x86-64.tar.gz (509.0 MiB/509.0 MiB). Cannot download a dependency: java.io.IOException: Disk quota exceeded

我看到有一个选项-kotlin-home,所以我尝试了

kotlinc-native -kotlin-home/

data/kotlin-native/home/hello.kt

但这最终会给出相同的配额/IO 错误。

那么:有没有办法强制kotlinc-native下载的文件到特定的地方?

是的,您应该在计算机上设置环境变量KONAN_DATA_DIR。kotlinc-native在下载依赖项之前检查它(根据此代码)。

最新更新