Package 软件包
可以独立安装的软件组件。 现代软件都是由很多 package 拼出来的 —— 一个应用可能依赖几十甚至上千个 package。
不同生态的 package
| 系统 | 包名 | 包管理器 |
|---|---|---|
| Debian/Ubuntu | .deb | apt |
| RHEL/CentOS | .rpm | dnf / yum |
| Arch | PKGBUILD | pacman |
| Python | wheel | pip |
| Node.js | npm | npm / pnpm / yarn |
| Rust | crate | cargo |
| Go | module | go get |
安全场景
- 供应链攻击 —— 攻击者污染上游 package,所有用的人都中招(SolarWinds、event-stream 事件)
- Typosquatting —— 注册跟流行包名相似的恶意包(
requestvsrequests) - 依赖审计 ——
npm audit,pip-audit,cargo audit扫已知漏洞 - 锁文件(lockfile) —— package-lock.json 等,保证每次安装版本一致
参见 package manager。