如何在Mac上通过命令行安装JQ?

299

我需要知道在Mac(El Capitan)上安装JQ的最有效方法。代码已经下载到了我的Mac上,但我想知道如何通过命令行安装和操作它。


8
你试过用“brew”吗? - Zulu
2
在此发问时,请解释您已经尝试过什么以及遇到的问题。请参阅以下链接:http://stackoverflow.com/help/how-to-ask - crabbly
为避免被踩,最好解释一下问题所在(展示你收到的错误)。 - smci
“如何安装[某个软件]?”不是关于编写代码的问题,特别是当安装开发工具和安装完全不相关的工具时,相同的答案也适用。 - Charles Duffy
10个回答

362

在 Mac 上,您可以使用 brew 安装任何应用程序/包。如果您想要了解确切的命令,只需在 https://brewinstall.org 上搜索您的软件包,然后您将获得安装该软件包所需的一组命令。

首先打开终端并安装 brew。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

现在安装jq

brew install jq

我使用MacPorts,因此我正在尝试安装jq而不使用homebrew。你知道其他的方法吗? - Miguel Valencia
你可以从源代码构建。从 https://stedolan.github.io/jq/download/ 下载,然后运行:./configure; make; sudo make install - Leo Dagum
5
我不同意你可以用brew安装“任何应用程序/软件包”。有许多应用程序无法使用brew安装。 - Tobias Feil
现在答案中的brew install链接是404。新的命令是: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 我们总是可以在https://brew.sh/找到最新的版本。 - undefined

184
在Mac上,安装jq的“最有效”的方式可能是使用homebrew
brew install jq

如果您想要开发版本,可以尝试以下方法:
brew install --HEAD jq

但这需要满足各种前提条件。

详细说明请参见jq wiki的“安装”页面:https://github.com/jqlang/jq/wiki/Installation

同一页面还包括有关源代码安装的详细信息,并提供了有关使用MacPorts(“ports”)、asdf()和0install(“zero-install”)进行安装的注意事项。


注:也可以使用brew安装jq的Go实现:
brew install gojq

我认为Brew是最好的解决方案... Pip对我没用...出现了错误。 - Rafaf Tahsin
`error: [Errno 2] No such file or directory----------------------------------------Command "/usr/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/bk/qxg2q6ss39g1ft4470j34tzh0000gn/T/pip-build-AEc_pb/jq/setup.py';f=getattr(tokenize, 'open', open)(file);` - Rafaf Tahsin
code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/bk/qxg2q6ss39g1ft4470j34tzh0000gn/T/pip-utaZJq-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/bk/qxg2q6ss39g1ft4470j34tzh0000gn/T/pip-build-AEc_pb/jq/ - Rafaf Tahsin
关于 gojq,你能详细说明为什么有人想要下载 go 实现的 jq 吗?它是否更快? - Alexander Terp
无限精度整数算术是其中之一。截至目前(2023年6月21日),jq的最后一个官方发布版本是2018年的1.6版,最后一次重大更新已经有一段时间了。尽管开发工作已经恢复,但当前的"HEAD"版本仍然存在许多错误,我认为可以说gojq已经解决了其中大部分问题。另一方面,使用C实现也有充分的理由。请参阅https://github.com/jqlang/jq/wiki/Regarding-gojq - peak

69

安装 jq 并测试其工作的最简单方法是通过使用 brew,然后使用最简单的过滤器仅格式化JSON。

安装

brew 是在 Mac 上管理软件包最简单的方式:

brew install jq

需要brew吗?运行以下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果无法成功:安装和使用说明请参考https://brew.sh/

测试

. 过滤器将其输入作为输出不改变。这是身份运算符。(引用文档)

echo '{ "name":"John", "age":31, "city":"New York" }' | jq .

结果应该在您的终端中显示如下:

{
  "name": "John",
  "age": 31,
  "city": "New York"
}

1
完美的答案! - Gaurav

15

检查是否已安装Homebrew

brew install jq

当我尝试这个时,我收到了这个错误 -->“警告:没有名为“ jq ”的可用公式。”以及其他一些错误。 - Pavindu

6

确保已安装Homebrew并安装jq

git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask" fetch --unshallow 
brew update
brew install jq

5

无需使用brew安装jqsudo apt install jq


3

我对brew没有任何意见(我两个都用),但如果你想的话,可以使用macports

sudo port install jq

FWIW,jc 是一个很有趣的实用工具,可以非常好地与 jq 配合使用(它的目的是将命令输出 json 化)。而且,brew install jcsudo port install jc 都可以使用。


2
对于CentOS、RHEL和Amazon Linux操作系统: 执行以下命令安装jq工具: sudo yum install jq

2
对于大多数人来说,安装jq很容易,但像您一样,我也在安装jq时遇到了困难。
我发现最好的资源是:https://stedolan.github.io/jq/download/http://macappstore.org/jq/。但是对我来说都不起作用。我使用python 2和3,并且除了pip之外还使用brew和Jupyter。只有在卸载jq并更新brew并重新启动系统后才成功。
对我有效的方法是删除所有先前的安装,然后pip install jq

"pip install jq" 命令并不会安装 jq 本身,它只会安装 Python 对 jq 的包装。 - Charles Duffy
什么都对我没用,Mac抱怨我需要开发者工具来安装jq。我最终想要将其用于构建脚本,所以需要在Ubuntu的Docker镜像上通过bash脚本安装jq。为什么没有人能够编写一个正常工作的bash脚本函数呢?awk和grep都不起作用,因为文件太长了。 - JPM

2
如果你正在寻找一个好的替代homebrew(无论是在Mac还是Linux环境中),其中之一就是0install(“零安装”),它确实有一些优点。例如,轻松地同时安装多个版本的jq。
如果你已经安装了0install,只需输入以下命令即可添加jq:
0install add jq https://apps.0install.net/utils/jq.xml

这将在~/bin/jq中安装一个小脚本,您可以像使用jq一样使用它。

要安装特定版本的jq,例如jq 1.5,您只需指定版本号即可:

0install add --version=1.5 jq1.5 https://apps.0install.net/utils/jq.xml

通过在浏览器中查看上述URL,可以了解使用此“feed”提供的jq版本的更多详细信息。

安装0install

安装0install本身的一个选项当然是:

 brew install 0install

目前,更好的选择是运行:

curl -O https://get.0install.net/0install.sh && chmod +x 0install.sh
./0install.sh

然后按照指示进行操作。

有关更多详细信息,请访问0install.net。


2
除非zeroinstall有明显的问题,否则必须怀疑downvote的动机。在20个人都不得不重新解释brew如何完成任务并且提供了第一次之后可疑的价值之后,这是令人费解的。 - JL Peyret

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接