linux安装bun前必须确认内核≥5.1(推荐5.6+)、已安装unzip工具、系统为64位(x86_64或aarch64);否则易导致bun --version报错或命令未找到。

Linux系统安装Bun前必须确认的三件事
不检查就装,大概率 bun --version 报错或命令找不到。Linux上Bun对内核和基础工具真有硬性要求:
- 内核版本必须 ≥ 5.1(推荐 5.6+):
uname -r输出如5.15.0-78-generic才合规 -
unzip工具必须存在,否则安装脚本解压失败:which unzip应返回路径;若无,先运行sudo apt install unzip(Debian/Ubuntu)或sudo dnf install unzip(Fedora/RHEL) - 必须是 64 位系统:
uname -m输出应为x86_64或aarch64;ARM设备(如树莓派)需手动下载bun-v*.linux-arm64.tar.xz包,不能用通用脚本
curl安装后bun命令仍不可用?PATH没生效是主因
官方脚本默认把二进制放到 ~/.bun/bin,但不会自动写入所有 shell 的配置文件。新开终端没反应,不是装失败,是 shell 没读到路径:
- 先确认安装位置:
ls ~/.bun/bin/bun存在才说明安装成功 - 根据你用的 shell 修改对应配置文件:
– Bash 用户:编辑~/.bashrc,追加两行:export BUN_INSTALL="$HOME/.bun"export PATH="$BUN_INSTALL/bin:$PATH"
– Zsh 用户:改~/.zshrc,内容同上
– 然后执行source ~/.bashrc(或source ~/.zshrc)立即生效 - 验证是否生效:
echo $PATH应包含/home/你的用户名/.bun/bin;再运行bun --version
用bun init初始化项目时常见的路径与权限陷阱
bun init 不是纯交互式向导,它依赖当前目录权限和已有文件结构,容易卡在“选择包管理器”或直接报错:
- 必须在空目录或已有
package.json的项目根目录下运行,否则会提示No package.json found并退出 - 如果当前目录属于 root 或被
chmod 000锁死,bun init无法写入package.json,错误信息是EPERM: operation not permitted - 它默认生成
index.ts,但如果你没装 TypeScript 编译支持(比如系统级tsc),也不影响运行——Bun 自带 TS 解析器,无需额外配置 - 想跳过交互直接初始化:
bun init -y,它会用默认模板生成最简package.json和index.ts
离线环境部署:别碰 curl,用预编译二进制包更可靠
企业内网、CI 构建机或安全加固服务器通常禁外网,这时 curl | bash 必然失败。正确做法是人工搬运二进制:
- 从
https://github.com/oven-sh/bun/releases下载对应版本的bun-v*.linux-x64.tar.xz(注意 x64 / arm64 区分) - 解压到统一位置,例如:
tar -xf bun-v1.1.12-linux-x64.tar.xz -C /opt/bun - 配置全局 PATH(推荐系统级,避免用户级重复配置):
– 创建/etc/profile.d/bun.sh,内容为:export BUN_INSTALL="/opt/bun"export PATH="$BUN_INSTALL/bin:$PATH"
– 所有新登录用户自动生效 - 验证:
bun --version和bun run --help都应正常输出,且which bun返回/opt/bun/bin/bun
最容易被忽略的是 shell 类型匹配和 PATH 生效时机——Zsh 用户改了 .bashrc 是白忙,而新终端没 source 就等于没配。另外,ARM 设备不看文档直接跑 x64 脚本,只会得到段错误,不是 Bun 问题,是架构错配。











