欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

asdf

asdf — 一个帮你管理多种编程语言版本的命令行工具,彻底告别环境混乱。

作为一个经常在 Node.js、Python、Ruby、Java 等语言之间反复横跳的开发者,我受够了手动切换版本、清理残留、记不住安装路径的日常。直到遇见 asdf,我才发现原来版本管理可以这么清爽。

这工具到底是干嘛的?

简单说,asdf 是一个统一的版本管理器。你不需要分别装 nvm(Node.js)、pyenv(Python)、rbenv(Ruby)、jenv(Java)……它用一个命令搞定所有语言版本。核心痛点就是:你的项目可能需要 Node 18 + Python 3.10,另一个项目要 Node 14 + Python 3.8,手动切来切去不仅麻烦,还容易记错全局版本,导致项目跑不起来。

asdf 的核心思路是:每个项目目录放一个 .tool-versions 文件,里面写着这个项目需要哪些语言、什么版本。你 cd 进这个目录,asdf 自动给你切换到对应版本;离开目录,全局版本恢复。完全无感。

下载与安装

官网:asdf

我推荐你直接走 Git 安装,因为更新方便:

# macOS 用户(Homebrew)
brew install asdf

# Linux / macOS 通用(Git 克隆)
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0

安装后需要把 asdf 加到 shell 配置文件里,否则终端不认识这个命令。

配置 Shell

根据你用的 shell 不同,在 ~/.bashrc、~/.zshrc 或 ~/.config/fish/config.fish 里加一行(以 zsh 为例):

# 在 ~/.zshrc 末尾添加
source "$HOME/.asdf/asdf.sh"
# 以及自动补全(可选)
source "$HOME/.asdf/completions/asdf.bash"

然后 source ~/.zshrc 或新开终端窗口。

验证安装:

asdf --version
# 输出类似 v0.14.0 就对了

基础使用教程

1. 安装插件

asdf 本身不管理语言,它通过插件来支持各种工具。比如你要管理 Node.js,先装插件:

asdf plugin add nodejs

常用的插件列表(全部在 asdf-plugins 可查):

  • nodejs — Node.js
  • python — Python
  • ruby — Ruby
  • java — Java(OpenJDK)
  • golang — Go
  • rust — Rust

2. 安装语言版本

装完插件就可以安装具体版本了:

# 列出 nodejs 所有可安装版本
asdf list-all nodejs

# 安装指定版本(比如 18.20.2)
asdf install nodejs 18.20.2

# 安装最新版
asdf install nodejs latest

3. 设置版本

三种模式:

全局版本(默认用这个):

asdf global nodejs 18.20.2

当前 shell 临时版本(重启终端失效):

asdf shell nodejs 20.11.0

项目本地版本(最常用!):

cd your-project
asdf local nodejs 16.20.0
# 这会自动生成 .tool-versions 文件

.tool-versions 文件内容长这样:

nodejs 16.20.0
python 3.10.12
ruby 3.2.2

当你 cd 进这个目录,asdf 自动切换版本;离开后,版本回退到全局设置。

4. 查看当前版本

asdf current
# 输出当前目录下所有工具的版本
# 或者单独看某个工具
asdf current nodejs

进阶技巧

1. 多版本共存与别名

你可以同时装多个版本,然后按需切换。如果觉得版本号记不住,可以设别名:

asdf global nodejs 18.20.2
asdf alias nodejs stable 18.20.2
# 之后可以用 stable 代替版本号
asdf global nodejs stable

2. 自动切换版本(配合 direnv)

如果你觉得 cd 进目录自动切换还不够快,可以结合 direnv 实现更细粒度的控制。安装 direnv 后,在项目根目录创建 .envrc 文件:

# .envrc
use asdf

这样 cd 进目录时,direnv 会自动加载 asdf 的环境,连 node --version 都变成立刻生效。

3. 批量安装所有插件

如果你在新电脑上需要恢复所有开发环境,可以这样:

# 先备份旧电脑的插件列表
asdf plugin list --urls > ~/asdf-plugins.txt

# 新电脑上批量安装
xargs -I {} asdf plugin add {} < ~/asdf-plugins.txt

# 然后安装所有版本(假设你备份了 .tool-versions)
asdf install

asdf install 不加参数,会读取当前目录 .tool-versions 里列出的所有工具版本,自动下载安装。省去一个个手动安装的麻烦。

4. 清理未使用的版本

时间久了,系统里会堆积很多旧版本。用这个命令清理:

asdf list nodejs  # 列出所有已安装版本
asdf uninstall nodejs 14.17.0  # 删除指定版本

或者用 asdf prune 清理所有不在 .tool-versions 里用到的版本(谨慎使用)。

5. 支持非语言工具

asdf 的插件生态不止语言,还能管理一些 CLI 工具,比如:

  • kubectl(Kubernetes 客户端)
  • terraform(基础设施即代码)
  • helm(K8s 包管理)
  • hugo(静态博客生成器)
asdf plugin add kubectl
asdf install kubectl 1.28.0
asdf global kubectl 1.28.0

这样你连 brew 或 apt 安装这些工具都省了,版本统一由 asdf 管理。

避坑指南

  1. 不要和 nvm、pyenv 混用:asdf 接管了 PATH,如果你还装了其他版本管理器,可能导致冲突。建议彻底卸载它们。
  2. Windows 用户注意:asdf 原生不支持 Windows,但可以在 WSL2 里完美运行。如果你坚持用 Windows 原生环境,试试 asdf 的 Windows 分支(但不够稳定)。
  3. 插件更新:有时候插件本身需要更新才能安装新版本,用 asdf plugin update nodejs 更新单个插件,或 asdf plugin update --all 更新所有插件。

总结

asdf 最打动我的地方是一致性:不管你在什么系统(macOS/Linux/WSL),不管管理多少种语言,都是一个命令、一个配置文件。它把“版本管理”这个经常被忽略但极其烦人的事,变成了一个可以随手搞定的例行公事。如果你也受够了在多个版本管理器之间切换,不妨给它一个周末试试,大概率会回不去的。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消