Package 软件包

可以独立安装的软件组件。 现代软件都是由很多 package 拼出来的 —— 一个应用可能依赖几十甚至上千个 package。

不同生态的 package

系统包名包管理器
Debian/Ubuntu.debapt
RHEL/CentOS.rpmdnf / yum
ArchPKGBUILDpacman
Pythonwheelpip
Node.jsnpmnpm / pnpm / yarn
Rustcratecargo
Gomodulego get

安全场景

  • 供应链攻击 —— 攻击者污染上游 package,所有用的人都中招(SolarWinds、event-stream 事件)
  • Typosquatting —— 注册跟流行包名相似的恶意包(request vs requests)
  • 依赖审计 —— npm audit, pip-audit,cargo audit 扫已知漏洞
  • 锁文件(lockfile) —— package-lock.json 等,保证每次安装版本一致

参见 package manager