如何控制 "native dependency" kotlin-native 下载的目标目录?
Howto control target directory for "native dependency" downloads for kotlinc-native?
我想在我们的一台 linux 服务器机器上使用 kotlin native。我们的 HOME 目录位于网络文件系统(准确地说是 AFS)上,并且它们的配额规则非常有限(我的 "home" 只有 200 MB)。但是服务器有一个巨大的 /data 分区,我们用它来存储所有重要的东西。
我们在这些服务器上也缺少 gradle,我决定全部手动:
- 我通过 release 页面
下载了 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
但最终会出现相同的 quota/IO 错误。
那么:有没有办法强制kotlinc-native
它下载的文件到特定的地方?
是的,您应该在您的机器上设置环境变量 KONAN_DATA_DIR。 kotlinc-native
在依赖项下载之前检查它(根据 this 代码)。
我想在我们的一台 linux 服务器机器上使用 kotlin native。我们的 HOME 目录位于网络文件系统(准确地说是 AFS)上,并且它们的配额规则非常有限(我的 "home" 只有 200 MB)。但是服务器有一个巨大的 /data 分区,我们用它来存储所有重要的东西。
我们在这些服务器上也缺少 gradle,我决定全部手动:
- 我通过 release 页面 下载了 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
但最终会出现相同的 quota/IO 错误。
那么:有没有办法强制kotlinc-native
它下载的文件到特定的地方?
是的,您应该在您的机器上设置环境变量 KONAN_DATA_DIR。 kotlinc-native
在依赖项下载之前检查它(根据 this 代码)。