yq 如何在 Linux 上通过 wget 下载预编译二进制并安装到 PATH
【免费下载链接】yqyq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor项目地址: https://gitcode.com/GitHub_Trending/yq/yq
yq 是一个用 Go 编写的命令行处理器,支持 YAML、JSON、XML、CSV、TOML、HCL 和 properties 等格式。因为它以无依赖的独立二进制分发,在 Linux 上最简单的安装方式就是用 wget 把预编译二进制从 yq 的 release 页面拉下来,放到/usr/local/bin/yq。这篇文章只覆盖这一条安装路径:从选择平台架构、下载二进制,到确认yq命令可以直接在终端运行,并跑通第一条查询语句。
前提条件:系统已安装wget,tar和chmod可用;目标目录/usr/local/bin需要 root 权限写入(README 中的示例命令使用sudo)。
选择平台与架构
README 的 wget 安装一节要求先确定平台与架构,文档列出的可用平台值如下:
linux_amd64、linux_arm64、linux_arm、linux_386、darwin_amd64、darwin_arm64、windows_amd64、windows_386等。
在 Linux 上按 CPU 选择:64 位 x86 用linux_amd64,ARM 64 位用linux_arm64,其余按文档列表对照选择。下文主路径以最常见的linux_amd64为例。
下载并安装最新版本(主路径)
README 给出的最新版本(Linux AMD64)命令是:
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq &&\ chmod +x /usr/local/bin/yq这条命令做两件事:
wget ... -O /usr/local/bin/yq把 release 页面的latest原始二进制直接写入/usr/local/bin/yq,需要 root 权限;如果该路径已存在 yq,此命令会覆盖旧文件。chmod +x /usr/local/bin/yq为该二进制添加可执行权限。
如果你的机器不是 AMD64 架构,把 URL 中的yq_linux_amd64换成对应平台的二进制名(如yq_linux_arm64)。
下载并安装指定版本(可选分支)
需要固定版本时,使用带${VERSION}和${PLATFORM}变量的命令。两个变量先按你的目标设置——README 中的示例值为VERSION=v4.2.0,注释明确写着 "adjust as needed"(按需调整);当前仓库代码中声明的版本是v4.53.6(见 cmd/version.go),固定哪个版本以 release 页面实际发布为准。
# Set your platform variables (adjust as needed) VERSION=v4.2.0 PLATFORM=linux_amd64 # Download compressed binary wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_${PLATFORM}.tar.gz -O - |\ tar xz && sudo mv yq_${PLATFORM} /usr/local/bin/yq # Or download plain binary wget https://github.com/mikefarah/yq/releases/download/${VERSION}/yq_${PLATFORM} -O /usr/local/bin/yq &&\ chmod +x /usr/local/bin/yq两种子方式的区别:
- 压缩包方式:
-O -让下载内容直接送入tar xz解压,当前目录会多出解压出的yq_${PLATFORM}文件,随后sudo mv把它移动到/usr/local/bin/yq。 - 原始二进制方式:与主路径相同,只是 URL 从
latest换成了具体版本号。
验证安装成功
第一步验证命令可用。README 的参数表中-V, --version的说明是 "Print version information and quit"(打印版本信息并退出):
yq --version能打印出 yq 的版本信息并退出,说明二进制已就位且可执行。
第二步做一次真实的查询验证。仓库的验收测试 acceptance_tests/basic.sh 中testBasicEvalRoundTrip使用的流程是:
yq -n ".a = 123" > test.yml yq '.a' test.yml-n表示不读输入、只计算给定表达式,第一条命令生成内容为a: 123的测试文件;第二条命令读取.a。验收测试断言该命令的输出是123,如果得到同样输出,说明安装后的 yq 可以正常解析 YAML 文件。
安装完成后即可使用 README 快速上手部分的基本操作,例如读取值yq '.a.b[0].c' file.yaml,或就地更新文件yq -i '.a.b[0].c = "cool"' file.yaml。
可选:用校验和核对下载文件
如果你需要核对下载文件的完整性,仓库提供了 scripts/extract-checksum.sh,它从 release 附带的checksums与checksums_hashes_order两个文件中提取指定算法的校验和,供你偏好的校验工具使用。前提是先从对应 yq 版本的 release 页面下载这两个文件,且当前目录中存在它们,否则脚本会直接报错退出。
用法与文档头注释中给出的 rhash 组合示例:
# <HASH-ALG> 取 checksums_hashes_order 中登记的算法名,例如 SHA-256 ./extract-checksum.sh SHA-256 yq_linux_amd64.tar.gz | rhash -c -脚本输出形如yq_linux_amd64.tar.gz acebc9d0...(文件名 + 校验和),这里的值只是文档中的示例格式,实际值随版本变化。需要校验的是哪个文件,就把yq_linux_amd64.tar.gz换成你实际下载的文件名;原始二进制(非 tar.gz)则传入对应的原始二进制名。
限制说明
- 本文只覆盖 Linux 上 wget 直装这一条路径;平台值以文档列表和 release 页面实际产物为准,列表以 "等" 结尾,未列全。
- README 中的
VERSION=v4.2.0仅为文档示例版本,不要照抄当作当前最新号使用;最新版本直接用latest/download路径。 - 其他安装方式(Homebrew、snap、Docker/Podman、go install 等)同样见 README.md 的 Install 章节,但不属于本文场景,此处不展开。
【免费下载链接】yqyq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor项目地址: https://gitcode.com/GitHub_Trending/yq/yq
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考