惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
T
Threatpost
T
Tor Project blog
S
Schneier on Security
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
K
Kaspersky official blog
P
Privacy International News Feed
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
The Hacker News
The Hacker News
D
Docker
aimingoo的专栏
aimingoo的专栏
S
Securelist
C
Cyber Attacks, Cyber Crime and Cyber Security
Spread Privacy
Spread Privacy
TaoSecurity Blog
TaoSecurity Blog
T
The Blog of Author Tim Ferriss
T
Threat Research - Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
Security Latest
Security Latest
V
Visual Studio Blog
WordPress大学
WordPress大学
J
Java Code Geeks
O
OpenAI News
T
Tailwind CSS Blog
S
Secure Thoughts
G
Google Developers Blog
博客园_首页
The Cloudflare Blog
The Register - Security
The Register - Security
A
Arctic Wolf
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
B
Blog RSS Feed
IT之家
IT之家
美团技术团队
D
Darknet – Hacking Tools, Hacker News & Cyber Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
G
GRAHAM CLULEY
S
Security Affairs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes
W
WeLiveSecurity

Go 编程语言

[工业边缘网关] EdgeX 更新啦 上线了官网 顺便更新版本 v0.10.0 - V2EX 有了 Agent,后台脚手架是该退场,还是变成约束层? - V2EX 强兼 Claude Code:左 DeepSeek V4,右 Kimi K3 - V2EX 构建时自动注入版本号:从 Git tag 到 Go 可执行文件 - V2EX [边缘计算] 想借助 AI 来开发 边缘网关接入 AI 解决设备通信 不知道有没有需求 - V2EX [Go]工业边缘计算网关 edgex 业余时间独立开发 持续更新半年咯 求个 star - V2EX gookit/gcli v3.8:新增支持共享选项、文档生成和参数重排 - V2EX V2EX 我开源了一款极简的 P2P 文件传输与 VPN 工具 (Win/Mac/ Linux /Android) - V2EX gookit/gcli v3.5.0 发布 - 简单易用、功能丰富的 Go 命令行应用与工具库 - V2EX 用 Go gRPC 信令对接 Android WebRTC:大家一般怎么划分网关和客户端边界? 在服务端用 Pion + FFmpeg + RNN 做 WebRTC 通话降噪,值得吗? 这两种 lint 报错场景, v 友们一般怎么处理 - V2EX tikrok 的部分来时路 tikrok 第 7 代微服务重构: Golang 微服务 grpc 接口与服务实现隔离方案 写了个 Go 库:在 TCP 应用协议开始前做认证,也支持端口敲门 Tikrok v6.0 新的生产级架构,成本不变,但是部署复杂略有增加 go 打包的二进制程序怎么反编译 [边缘计算开源] 工业数据采集网关 版本更新 用 golang 写了,一套面向个人音乐资产的本地优先音乐系统 做了个 Go 的 MCP Server 框架,一行代码把 Gin API 接入 AI - V2EX 写了个 Go 库解决 LLM 流式输出断线重连的问题 - V2EX Tikrok v5.0 新的的底层实现 - V2EX OpenTelemetry 分布式追踪中的回溯采样:削减 60% 尾部采样成本 - V2EX 求推荐一个 go 里运行 js 的方案 - V2EX [边缘计算] 基于 GO 的采集网关持续更新啦 - V2EX [边缘计算开源] 基于 go 写了个独立运行的工业数据采集网关 后续阶段应该如何调整 - V2EX 然后 go-kratos 不怎么活跃了,连最火的 skills 都不搞, github 也没什么人回复了 - V2EX Excelize 开源基础库发布 2.10.1 版本更新 phper 转 go 最好的 web 框架是 goframe 吗? - V2EX A Visual Studio Code extension that displays the disk size of Go module dependencies in go.mod files. - V2EX miglite: Go 极简高效的数据库迁移工具 - V2EX 每秒万级 Tick 震荡:高频行情分发,该选 Golang 的并发原生还是 Rust 的极致性能? - V2EX 给 netcat 引入了 P2P 穿透、多路复用、强加密以及内置服务模块,并且完全开源 - V2EX 使用 "go.inlayHints.parameterNames": true 在 vscode 中开启类似 goland 的参数提示 - V2EX 下面代码中 f()会被重复执行吗?大佬帮忙解答一下~ - V2EX sublimetext 开发 GO 使用体验怎么样 - V2EX [开源] 将 react 的 hooks 和 组件化思路带入 go 的 TUI 开发。 - V2EX gocar 0.2.0 版本:新增自定义命令功能,实现真正的 go 的 cargo - V2EX go 新手,求问导入包失败问题 - V2EX 之前写的, JSR-310 风格的时间日期库, 1.0 了 - V2EX 为了方便学习 go, 使用 go 做了一个命令行版本的 go playground, 代码直接一键运行, 一键编译 - V2EX 虚心请教 Go 前辈们,关于入行 - V2EX 关于 Go 的工程经验 - V2EX 微信开发框架开源,基于 Go+Wails3+React - V2EX Golang 实现的开源 NVR 支持 GB28181 & ONVIF 啦 - V2EX Go 工具库 gookit/goutil v0.7.2 发布:增强功能与修复,提升开发体验 - V2EX go-carbon v2.6.15 正式版发布,已被 docker 官方组织使用 - V2EX 如何用 3–5 个高效问题快速识别 Golang 开发者的技术素养? - V2EX 有没有 go 的 ai 应用项目学习学习 - V2EX Go 环境版本管理用哪个- -有点疑惑 - V2EX Goland 下的通义千问不能选择模型,VScode 下面的通义千问可以选择模型 - V2EX 新手入门求指导 - V2EX 看 Go 的时间库不顺眼很久了,所以从别的语言里抄了一个 - V2EX go-dongle v1.2.0 发布,新增 SM2 非对称椭圆曲线加密算法支持 - V2EX Wails2+Vue3 本地的绑定文件和 Vite 上的不一致 - V2EX go 返回错误的时候, 返回的值应该可用吗 - V2EX Go 入门基础课(2025 Golang) - V2EX goland 中如何 debug wails - V2EX 日期函数获取上一个月 bug, 在一些特殊日子才出现,比如今天 10-31 - V2EX go-carbon v2.6.14 发布,一个轻量级、语义化的 golang 时间处理库 - V2EX goroutine 到底算不算一种 coroutine 的实现? - V2EX 为什么不用 gRPC-Go: VictoriaTraces 中实现 OTLP/gRPC 的幕后故事 - V2EX go 最新版的 map 并发读是安全的吗。 - V2EX 请问一下 golang 下有什么成熟稳定的串口通讯包? - V2EX golang.org/x/sync/syncmap 被 struct 裹挟时 使用前为什么必须为每个键初始化 不然取值得到 nil go-dongle v1.1.7 发布,新增 SM4 国密分组对称加密算法支持 在开发接口的过程中,如何快速验证结果? - V2EX go-carbon v2.6.13 发布,一个轻量级、语义化的 golang 时间处理库
eget:不用等中央仓库,直接安装 GitHub 和任意下载站的工具 - V2EX
jxia · 2026-07-01 · via Go 编程语言

AI 时代来了之后,各种应用、命令行工具的发布节奏明显变快了。GitHub 上每天都有新工具冒出来,一个活跃项目一天发几个版本也不奇怪。

问题是:中央仓库经常慢半拍。快速尝试一个新工具,想试一个刚修好的 bug ,或者跟进刚发的新功能,可能要等包维护者更新 formula 、bucket 、manifest 。eget 解决的是这段空窗期:直接从 release 、下载站或内部规则里拿到二进制。

先不写配置,直接装

eget 最短的用法就是给它一个 GitHub 仓库名:

eget cfg init
# 安装工具
eget i openai/codex
eget install junegunn/fzf
eget install --name rg BurntSushi/ripgrep

它会读取 release assets ,按当前系统和架构挑一个合适的文件,下载、解压,然后把可执行文件放到目标目录。

遇到 nightly 、beta 或者项目自己的 tag 规则,可以直接指定:

eget install --tag nightly inhere/markview
eget install --tag v0.28.0 openai/codex

这类场景不需要等谁把版本同步到中心仓库。release 页面已经有资产,eget 就能从那里开始工作。

没有中心 index ,仓库名就是入口

很多包管理器都要维护一份中心配置。好处是体验统一,坏处是会滞后。项目发布了新版本,不代表中心仓库马上有对应条目。

eget 的默认路径更短:

owner/repo -> releases -> assets -> install

如果自动匹配不够准,可以自己筛 asset:

eget query --action assets openai/codex

eget install --asset "PRE:codex,SUF:.zip" openai/codex
eget install --asset "REG:\\.deb$" owner/repo
eget install --asset "windows,amd64,zip" owner/repo

有些 release 包里目录层级比较深,或者文件名不是最终想要的名字,也可以在安装时处理:

eget install --extract-all \
  --rename "codex-x86_64-pc-windows-msvc.exe=codex.exe" \
  openai/codex

eget download --extract-all --strip-components 1 \
  --asset "windows,zip" ventoy/Ventoy

这里的重点不是“配置更多”,而是把 release 资产里真实存在的文件拿出来。项目怎么命名,命令就按实际情况补一两个规则。

GitHub 是常见来源,但不是唯一来源。eget installeget download 支持 GitLab 、Gitea/Forgejo 、SourceForge 、直接 URL 和本地文件。

eget install gitlab:fdroid/fdroidserver
eget install gitlab:gitlab.gnome.org/GNOME/gtk
eget install --asset linux,amd64 gitea:codeberg.org/forgejo/forgejo
eget install --asset x64,PerUser,setup sourceforge:winmerge

普通下载链接也可以直接用:

eget download --file go --to ~/go1.17.5 \
  https://go.dev/dl/go1.17.5.linux-amd64.tar.gz

这对一些不发 GitHub release 的工具很实用。只要有稳定 URL ,或者能从一个页面、JSON 、YAML 里拿到最新版本,就不必先把它包装进某个中心索引。

内部工具用一条规则带一批包

内部工具最麻烦的地方通常不是下载本身,而是每个团队都有自己的发布目录:

http://mydev.lan/tools/markview/latest.yaml
http://mydev.lan/tools/markview/markview-linux-amd64
http://mydev.lan/tools/chlog/latest.yaml
http://mydev.lan/tools/chlog/chlog-linux-amd64

这种命名一旦固定,就没必要给每个工具写一份完整配置。pkg_templates 可以把规则抽出来:

[pkg_templates.mydev]
latest_url = "http://mydev.lan/tools/{name}/latest.yaml"
latest_format = "yaml"
url_template = "http://mydev.lan/tools/{name}/{name}-{os}-{arch}{ext}"
ext_map = { windows = ".exe", linux = "", darwin = "" }

[packages.markview]
repo = "pkg-template:mydev:markview"

使用时可以写短别名:

eget add mydev:markview
eget install mydev:markview
eget install --add mydev:chlog

这不是一个内部应用市场,也不需要维护中心服务。它只是把“这个内网站点怎么拼下载 URL”变成一条本地规则。

常用工具可以记录下来

临时试工具时,直接 install owner/repo 就够了。常用工具可以加到本机配置里:

eget install --add junegunn/fzf
eget install --add --name rg BurntSushi/ripgrep
eget add --name winmerge --system windows/amd64 \
  --asset x64,PerUser,setup sourceforge:winmerge

# 用于从已有配置文件恢复安装所有工具
eget install --all

查看安装:

# 默认显示已安装的包列表, --all 列出所有
eget list
eget ls --all
# 列出已经配置但是还未安装的包
eget ls --ni

安装记录默认放在 ~/.config/eget/installed.toml;配置也在同一套目录下,你也可以直接修改配置文件新增包。

更新工具版本

eget update --all # 检查更新,然后更新所有可更新包
# 也可以先检查,再更新需要的
eget up --check
eget up fzf markview codex

eget 自更新:

eget up --self

SDK 下载也放进来了

SDK 的痛点和 CLI 工具有点像:Go 、Node 、JDK 都有多版本、多平台、镜像源、归档解压和本地记录的问题。

eget sdk 管这几件事:

eget sdk config add --all
eget sdk config add --all --mirror mirror
eget sdk config add jdk --mirror zulu

eget sdk index refresh go
eget sdk index show go

eget sdk install [email protected]
eget sdk install go:1.22 node:20.11.1
eget sdk dl --os linux --arch arm64 -o ./downloads go:1.22

内置模板覆盖 Go 、Node 、JDK ,源可以走 official ,也可以写入常见 mirror 。index cache 、归档下载缓存和安装记录是分开的,适合多版本并存。

边界也很明确:eget sdk 只下载、解压、记录 SDK 。它不会改 PATH,不会写 shell hook ,也不会替你切换当前版本。需要项目级版本切换时,再交给 xenv 这类环境管理工具。

缓存和镜像适合团队机器

重复装工具时,下载缓存会省很多时间。团队内网里还可以把一台机器已有的缓存暴露出来:

eget cache serve --host 0.0.0.0 --port 8686 --token "$EGET_CACHE_TOKEN" --json-log

其他机器配置 mirror:

[cache_mirror]
enable = true
url = "http://192.168.1.10:8686"
timeout = 5
fallback = true

启用后,installdownloadsdk install 会先尝试局域网缓存,miss 了再回源。mirror 只是下载优化,不是信任根;原本配置了 checksum 的流程仍然会继续校验。

更多细节特性

这篇文章只写主路径。eget 还有不少偏工程现场的能力,细节建议直接看 GitHub README配置文档

  • 并发下载和批量安装更新。
  • 大文件 HTTP Range 分片下载。
  • .part 和 metadata 配合的大文件断点续传。
  • Windows GUI 安装器启动。
  • portable GUI 包安装到 gui_target
  • API cache 、下载缓存、SDK index cache 分开管理。

这些能力平时不一定都用得上,但在 CI 、内网开发机、Windows 工具分发和大 SDK 下载场景里会省不少手工活。

适合什么,不适合什么

eget 适合这些场景:

  • 想第一时间试 GitHub release 里的新版本。
  • 工具只提供 zip 、tar.gz 、exe 、deb 这类资产。
  • 公司内部工具有固定下载规则,但不想搭中心仓库。
  • 需要在 CI 、开发机或内网机器上重复拉同一批工具和 SDK 。

它不适合替代系统包管理器。依赖解析、系统服务注册、复杂的 post-install 脚本,这些不是它的目标。

更准确地说,eget 是一个 release asset 下载和安装器。GitHub 上东西已经发了,下载站上文件已经有了,内网目录里包已经放好了,它负责把这些东西拿到本机,并尽量少让你等中间那层索引更新。