☰
在 Elixir 项目中用 mix hex.info 快速查询 Hex 包的最新版本
2026/10/4 1:59:41 网站建设 项目流程
  • 文档
  • 教程
  • 知识库

【免费下载链接】til

:memo: Today I Learned

项目地址:https://gitcode.com/gh_mirrors/ti/til
点击查看免费下载

导读

本文基于 TIL 仓库中 determine-the-latest-release-of-a-hex-package.md 一文展开,介绍如何在不离开终端的情况下,借助mix自带的hex.info命令查询任意 Hex 包(如postgrex)的最新发布版本。读完本文,你将掌握一条即查即用的命令,并能把查询结果直接粘贴进项目的mix.exs依赖声明中,替代"打开浏览器 + 搜索引擎"的传统查版本流程。

场景:加依赖时,别再离开终端查版本

在 Elixir/Phoenix 项目中,往mix.exs里添加新依赖是高频操作。传统做法是打开浏览器、用搜索引擎搜索该包的版本号,再切回编辑器粘贴——来回切换既打断思路,又容易看错版本。TIL 仓库的这篇笔记记录的正是作者养成的更快的习惯:用mixCLI 自带的包信息查询能力,直接在终端里完成查版本。

mix内置了 Hex(Elixir 的包管理器)相关的任务,其中mix hex.info就是专门用来查询 Hex 包元数据的命令。它不需要你在浏览器里做任何搜索,一条命令即可拿到包的最新版本、全部历史版本、维护者、许可证和官方链接。

一条命令:mix hex.info

以查询postgrex(Elixir 生态中最常用的 PostgreSQL 驱动)为例,直接运行:

$ mix hex.info postgrex PostgreSQL driver for Elixir. Config: {:postgrex, "~> 0.12.0"} Releases: 0.12.0, 0.11.2, 0.11.1, 0.11.0, 0.10.0, 0.9.1, 0.9.0, 0.8.4, 0.8.3, 0.8.2, ... Maintainers: Eric Meadows-Jönsson, James Fish Licenses: Apache 2.0 Links: Github: https://github.com/elixir-ecto/postgrex

命令语法非常直观:mix hex.info <包名>,把包名换成任何你想查询的 Hex 包即可。这段输出正是原文档中的完整示例,从上到下依次给出了包的用途简介、推荐配置、发布历史、维护者、许可证与项目链接。

读懂输出:每一行都值得注意

逐行解读上面的输出,可以更好地理解 Hex 包元数据的组成:

输出行含义使用价值
PostgreSQL driver for Elixir.包的一句话简介确认包名没有查错、功能是否匹配需求
Config: {:postgrex, "~> 0.12.0"}推荐的依赖元组(含最新版本)本文核心——可直接粘贴进mix.exs
Releases: 0.12.0, 0.11.2, ...按版本号从新到旧排列的完整发布列表需要锁定历史版本时从中挑选
Maintainers: ...维护者名单评估包的维护活跃度
Licenses: ...开源许可证类型合规审查时需要关注
Links:官方项目主页等链接需要阅读源码或文档时跳转

原文档特别强调:第三行Config:就是你需要的信息,而且它已经按 Elixir 依赖元组的格式排好,拿来即可用,不需要任何手工格式转换。

从终端直接到 mix.exs:粘贴即用

mix hex.info最大的便利在于"输出即答案":Config: {:postgrex, "~> 0.12.0"}这行就是 Elixir 标准依赖声明格式,可以直接原样粘贴到项目的mix.exs的deps/0函数中:

defp deps do [ {:postgrex, "~> 0.12.0"} # ...其他依赖 ] end

粘贴后运行mix deps.get即可完成依赖安装。~>是 Elixir 的兼容性版本约束(requirement)运算符,"~> 0.12.0"表示"允许 0.12.x 系列中的最新版本,但不跨越主版本 0.13";如果你的项目明确需要某个历史版本,也可以从Releases:列表里挑一个具体的版本号,例如改为"~> 0.9.1"。这样既拿到了最新版本号,又能按项目需要灵活约束版本范围。

相关命令:把 Hex 用得更顺手

mix hex.info属于mix hex任务族,围绕"查包、选版本"这一场景还有几条高频命令可以配合使用:

  • mix hex.search <关键词>:按关键词搜索 Hex 仓库中的包,适合记不清包名时使用;
  • mix hex.package fetch <包名> <版本>:下载某个包的 tarball,便于离线查看其源码与mix.exs;
  • mix deps.update <包名>:依赖已安装后,用它把某个包升级到当前约束允许的最新版本;
  • mix hex.info <包名> <版本>:指定版本号,查询某个历史版本的详细信息。

这些命令共同构成了"查询 → 声明 → 安装 → 升级"的完整终端工作流,让依赖管理全程不离开命令行。

注意事项与前提

  • mix hex.info依赖本机已安装 Elixir/Mix,并需要 Hex 可用(通常安装 Elixir 后首次运行会提示安装 Hex,按提示执行mix local.hex --force即可);
  • 查询结果反映的是查询时刻 Hex 仓库中的最新数据,版本号会随时间变化。本文示例中postgrex的版本(0.12.0及之后的发布列表)以 TIL 原文档撰写时的输出为准,请以你自己终端中的实时结果为准;
  • 若查询的包名不存在或拼写有误,命令会返回相应提示,此时核对包名后再试即可。

相关阅读

  • 本文的原始笔记:determine-the-latest-release-of-a-hex-package.md
  • 终端内查看项目目录结构的技巧:listing-files-in-iex.md
  • 仓库 Elixir 分类下的其他实践笔记:见 README.md 中 "Elixir" 章节(elixir 目录)
  • 文档
  • 教程
  • 知识库

【免费下载链接】til

:memo: Today I Learned

项目地址:https://gitcode.com/gh_mirrors/ti/til
点击查看免费下载
上一篇:XLeRobot VR控制终极指南:用Quest3实现沉浸式机器人操控
下一篇:如何快速掌握自然语言处理:10个终极NLP技巧与速查表指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询