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

推荐订阅源

PCI Perspectives
PCI Perspectives
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Palo Alto Networks Blog
S
Schneier on Security
Scott Helme
Scott Helme
T
Threat Research - Cisco Blogs
K
Kaspersky official blog
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
I
Intezer
D
Docker
月光博客
月光博客
L
Lohrmann on Cybersecurity
Latest news
Latest news
B
Blog
罗磊的独立博客
M
MIT News - Artificial intelligence
S
Securelist
Know Your Adversary
Know Your Adversary
Help Net Security
Help Net Security
Recorded Future
Recorded Future
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
T
Threatpost
H
Hacker News: Front Page
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
人人都是产品经理
人人都是产品经理
F
Fortinet All Blogs
博客园 - Franky
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
A
About on SuperTechFans
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tor Project blog
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Engineering at Meta
Engineering at Meta
Webroot Blog
Webroot Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Microsoft Security Blog
Microsoft Security Blog

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 上东西已经发了,下载站上文件已经有了,内网目录里包已经放好了,它负责把这些东西拿到本机,并尽量少让你等中间那层索引更新。