zigup
下载并管理 zig 编译器。
注意:我不再使用 zigup。我已改用 anyzig,并建议其他人也这样做(这里是原因)。对于非常喜爱它的人,Zigup 将继续获得支持!
如何安装
前往 https://marler8997.github.io/zigup 并选择你的操作系统/架构,以获取下载链接和/或通过命令行安装的说明。
否则,你可以手动查找并从 Releases 下载/解压相应的归档文件。它将包含一个名为 zigup 的单一静态二进制文件,除非你在 Windows 上,此时它是 zigup.exe。
用法
# fetch a compiler and set it as the default
zigup <version>
zigup master
zigup 0.6.0
# fetch a compiler only (do not set it as default)
zigup fetch <version>
zigup fetch master
# print the default compiler version
zigup default
# set the default compiler
zigup default <version>
# list the installed compiler versions
zigup list
# clean compilers that are not the default, not master, and not marked to keep. when a version is specified, it will clean that version
zigup clean [<version>]
# mark a compiler to keep
zigup keep <version>
# run a specific version of the compiler
zigup run <version> <args>...
编译器是如何管理的
zigup 将每个编译器存储在全局“安装目录”下的一个版本化子目录中。运行 zigup get-install-dir 可查看此 PATH 在你的系统上是什么。你可以使用 zigup set-install-dir PATH 更改此默认值。
zigup 通过在 PATH 环境变量中出现的一个目录中创建条目,使 zig 程序可用。在 posix 系统上,此条目是指向安装目录中某个 zig 可执行文件的符号链接。在 windows 上,这是一个将调用转发到安装目录中某个 zig 可执行文件的可执行文件。
构建
运行 zig build 进行构建,运行 zig build test 进行测试和安装,使用:
# install to a bin directory with
cp zig-out/bin/zigup BIN_PATH
待办事项
- 在当前环境中设置/移除编译器,而不覆盖系统范围的版本。
依赖项
在 linux 和 macos 上,zigup 依赖 tar 来解包编译器归档文件(这可能会在未来改变)。
为什么是 Anyzig?
Zigup 帮助你下载/切换在运行 zig 时调用的 zig 版本。相比之下,Anyzig 是一个通用的 zig 可执行文件,它根据当前项目调用正确版本的 zig。Anyzig 源于这样的认识:如果你已在系统范围内安装了 zig,那么它应该适用于任何 Zig 项目,而不仅仅是那些恰好与你当前安装/启用的版本匹配的项目。它不会让你手动切换版本,而是使用 build.zig.zon 中的 minimum_zig_version 字段。anyzig 的一个额外好处是,使用它的任何项目都能保证其 zig 版本既已记录又保持最新。在实践中,我还发现 anyzig 减轻了一些心理负担,因为你不再需要跟踪每个项目使用的 Zig 版本、系统使用的版本,以及保持两者同步。