资讯动态

Trivy 安装完全指南:官方与社区发行渠道、容器镜像与包管理器全解析

发布时间:2026/9/10 14:40:18 来源:尧图企业网站定制
Trivy 安装完全指南官方与社区发行渠道、容器镜像与包管理器全解析【免费下载链接】trivyFind vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more项目地址: https://gitcode.com/GitHub_Trending/tr/trivy本文基于 Trivy 官方文档 docs/getting-started/installation.md 编写系统梳理 Trivy 在容器、Linux/macOS/Windows、FreeBSD 等平台上的全部安装方式区分官方Official与社区Community两类渠道并结合当前仓库中的安装脚本、发布配置与 CI 部署代码讲清每个渠道背后的工作原理。读完本文你可以在裸机、容器、云服务器及各类包管理器环境中快速、正确、可复现地完成 Trivy 的部署与版本验证。安装渠道总览Official 与 CommunityTrivy 官方对安装方式做了一个清晰的两级划分官方安装Official由 Trivy 团队开发并维护包括容器镜像、GitHub Release 二进制包、官方安装脚本、RHEL/CentOS / Debian / Ubuntu 的软件源Repository与离线包、Homebrew、Windows以及FreeBSDpkg社区安装Community由社区成员开发并在此汇集方便用户选用包括Arch Linuxpacman、openSUSEzypper、MacPorts、Nix/NixOS以及asdf/mise。官方对这类安装不提供支持遇到问题请联系对应维护者。之所以有如此丰富的发布形态是因为 Trivy 采用 Go 编写、通过 goreleaser.yml 做跨平台发布同一份源码会同时产出deb/rpm包nfpm 段、tar.gz归档archives 段与各平台二进制并注入版本号ldflags: -X github.com/aquasecurity/trivy/pkg/version/app.ver{{.Version}}最终由 pkg/version/app/version.go 承载。理解了这一点就能明白下面各渠道为何能保持版本同步。另外请注意官方文档中的{{ git.tag }}是 MkDocs 渲染时自动替换的占位符实际会变成类似v0.xx.x的具体版本标签而{{ git.tag[1:] }}表示去掉v前缀的版本号如0.xx.x文档站渲染后即可直接使用。如果你安装 Trivy 的目标是把它集成进 CI/CD、IDE、Kubernetes 等第三方系统建议先浏览 Ecosystem 集成总览。官方安装方式详解1. 容器镜像官方推荐Trivy 官方发布了多架构的容器镜像可从以下三个镜像仓库拉取镜像仓库RepositoryDocker Hubdocker.io/aquasec/trivyGitHub Container Registry (GHCR)ghcr.io/aquasecurity/trivyAWS ECR Public Gallerypublic.ecr.aws/aquasecurity/trivy以当前仓库根目录的 Dockerfile 为参照可以看出官方镜像的构成基于alpine基础镜像预装ca-certificates与git扫描需要 CA 证书与 git 能力并把trivy二进制复制到/usr/local/bin/trivy且设置了ENTRYPOINT [trivy]。因此下面的命令中无需写trivy子命令前缀——docker run aquasec/trivy ... image ...等价于宿主上的trivy ... image ...。文档给出的典型使用示例如下把 Docker 引擎 socket 与缓存目录同时挂进容器docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy:0.xx.x image python:3.4-alpine其中两点务必理解挂载 Docker socketTrivy 在容器内扫描宿主上的镜像时需要访问宿主 Docker 引擎因此将/var/run/docker.sock挂载进容器。这就要求宿主确实装有 Docker 引擎若仅仅是要扫描某个镜像仓库里的远程镜像则无需挂载 socket。挂载缓存目录Trivy 首次运行会下载漏洞数据库等数据并写入缓存。建议把宿主目录示例中$HOME/Library/Caches是 macOS 下的写法挂载为容器内的/root/.cache/实现持久化缓存避免每次重建容器都重新下载数据。容器内缓存目录的构成与清理方式参见 Cache 缓存配置指南漏洞数据库Vulnerability Database / Java Index Database的下载细节见 DB 数据库配置。缓存默认位于$HOME/.cache/trivy也可用--cache-dir改变位置。提示若你的 CI 环境没有 DockerTrivy 也可以直接扫描仓库目录trivy fs、OCI 镜像经认证的 registry等具体入口介绍见 Getting Started 首页。2. GitHub Release 手动安装Trivy 每次发版都会在 GitHub Release 页面附上各平台归档。手动安装只需三步到GitHub Release assets下载与你操作系统/架构匹配的文件解压归档tar -xzf ./trivy.tar.gz给二进制加上执行权限chmod x ./trivy随后即可运行。产物命名规则可从 goreleaser.yml 的file_name_template反推出来形如trivy_0.xx.x_Linux-64bit.tar.gz、trivy_0.xx.x_Linux-ARM64.tar.gz、trivy_0.xx.x_macOS-64bit.tar.gz。不同 GOOS/GOARCH 会被映射为可读名称amd64→64bit、386→32bit、arm→ARM、arm64→ARM64而系统名会输出为Linux/macOS/Windows/FreeBSD等。从goreleaser.yml的builds段可以看到官方发布的平台矩阵Linux386、arm(v7)、amd64、arm64、s390x、ppc64lemacOSamd64、arm64FreeBSDamd64Windowsamd64。注释中还说明了限制原因modernc.org/sqlite暂不支持 freebsd/arm64、freebsd/386、windows/386、windows/arm 等组合。也就是说发布矩阵并非穷尽所有 GOOS/GOARCH而是受 SQLite 驱动能力约束后的结果。3. 官方安装脚本官方提供了一个curl | sh式安装脚本用于从 GitHub Release 自动下载并安装curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b /usr/local/bin 0.xx.x该脚本的源码就保存在本仓库的 contrib/install.sh由 goreleaser/godownloader 生成从源码可以看清它的完整行为参数-b指定安装目录默认./bin-c指定客户端标识仅允许字母/数字/-用于下载追踪默认install-script-d开启调试日志-x开启set -x详细输出最后一个位置参数是版本 tag缺省时自动查询 latest。下载源真正的下载地址指向https://get.trivy.dev/trivy?os...arch...version...type...client...按当前系统自动选择正确的归档校验和文件trivy_版本_checksums.txt则从 GitHub Release 拉取。安全性脚本会把 OS/ARCH 自动归一化如x86_64→64bit、aarch64→ARM64、darwin→macOS下载后用sha256sum无则回退gsha256sum/shasum -a 256/openssl dgst比对校验和不一致即中止安装安装动作解压到临时目录后将trivyWindows 下为trivy.exe用install复制到目标目录并提示安装完成。该脚本同样适用于 CI 中的自动安装例如固定版本号以避免 latest 漂移。对于更严谨的供应链要求Trivy 还提供 Cosign 签名与 SBOM 校验见 签名校验指南。4. RHEL/CentOSTrivy 官方维护独立的 RPM 仓库支持通过软件源或直接安装 RPM 包两种方式。方式 A配置软件源Repositorycat EOF | sudo tee -a /etc/yum.repos.d/trivy.repo [trivy] nameTrivy repository baseurlhttps://aquasecurity.github.io/trivy-repo/rpm/releases/\$basearch/ gpgcheck1 enabled1 gpgkeyhttps://aquasecurity.github.io/trivy-repo/rpm/public.key EOF sudo yum -y update sudo yum -y install trivy注意baseurl里的$basearch是 yum 内置变量需转义为\$basearchyum 会按本机架构解析。仓库 CI 部署脚本 ci/deploy-rpm.sh 表明RPM 仓库实际覆盖 RHEL/CentOS 5/6/7/8/9并提供x86_64与aarch64两种架构目录源中的gpgcheck1配合gpgkey会校验包签名RPM 包本身在发布阶段已通过 goreleaser.yml 中rpm.signature.key_file配置的 GPG 私钥签名。方式 B直接安装 RPM 包rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.xx.x/trivy_0.xx.x_Linux-64bit.rpm适合不便配置软件源的离线或一次性环境。5. Debian/UbuntuTrivy 同样维护官方的 APT 软件源generic分发代号附带按各 Debian/Ubuntu 版本命名的仓库。方式 A配置软件源Repositorysudo apt-get install wget gnupg wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg /dev/null echo deb [signed-by/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main | sudo tee -a /etc/apt/sources.list.d/trivy.list sudo apt-get update sudo apt-get install trivy该流程采用了现代 APT 的signed-by方式先把公钥 dearmor 成二进制 keyring 存入/usr/share/keyrings/trivy.gpg再在 sources 条目中显式指定避免使用已废弃的apt-key add。从 ci/deploy-deb.sh 可以看出官方仓库针对每个受支持的 Debian/Ubuntu 发行版发布i386/amd64/arm64三个架构的 deb 包并由reprepro维护签名索引因此apt-get update时校验签名不会报错。方式 B直接安装 DEB 包wget https://github.com/aquasecurity/trivy/releases/download/v0.xx.x/trivy_0.xx.x_Linux-64bit.deb sudo dpkg -i trivy_0.xx.x_Linux-64bit.debDEB/RPM 包安装后还会把contrib/*.tpl模板复制到/usr/local/share/trivy/templates见 goreleaser.yml 的contents段供--template报告模板功能使用。6. macOSHomebrewHomebrew 同时支持 macOS 与 Linux一条命令即可安装brew install trivy若需要指定历史版本可通过brew install trivy旧版本如果存在对应 formula或查阅 Homebrew 对 trivy 的版本策略文档默认安装当前最新稳定版。7. WindowsWindows 用户按如下步骤安装从releases page下载trivy_x.xx.x_windows-64bit.zip注意发布矩阵中 Windows 仅提供amd64见 goreleaser.yml解压 zip把trivy.exe复制到任意目录并将其所在目录加入PATH即可在命令行中使用。也可以参考前文install.sh的 Windows 逻辑——脚本在检测到windows时会把归档格式切换为 zip、并把二进制改名为trivy.exe只是官方安装脚本主要面向 Unix shellWindows 上更推荐直接解压 zip 或使用社区提供的方式。8. FreeBSDFreeBSD 官方通过 Pkg 包管理器分发对应 goreleaser.yml 中的build-bsd段发布freebsd/amd64产物pkg install trivy社区安装方式以下渠道由社区维护安装前请确认其与官方版本的同步节奏是否符合你的安全策略例如漏洞库版本与 Trivy 二进制版本需匹配。Arch LinuxArch Linux 官方软件仓库extra中直接提供trivysudo pacman -S trivy对应维护信息可查询 Arch Linux 软件包页及其 PKGBUILD 构建脚本版本同步以 Arch 仓库实际为准。openSUSEopenSUSE 软件仓库提供trivysudo zypper install trivyMacPortsmacOSMacPorts 用户可安装sudo port install trivyNix / NixOSNix 包管理器同时覆盖 Linux 与 macOS提供三种用法命令行方式Nixnix-env --install -A nixpkgs.trivy系统级声明式配置NixOS# your other config ... environment.systemPackages with pkgs; [ # your other packages ... trivy ];Home Manager 用户级配置# your other config ... home.packages with pkgs; [ # your other packages ... trivy ];asdf / miseasdf 与 mise 是两款语义相近的版本管理器可通过同一款社区插件由第三方维护安装 Trivy。两者均支持全局安装与按目录锁定版本两种模式此处展示基础全局安装。asdf# Install plugin asdf plugin add trivy https://github.com/zufardhiyaulhaq/asdf-trivy.git # Install latest version asdf install trivy latest # Set a version globally (on your ~/.tool-versions file) asdf global trivy latest # Now trivy commands are available trivy --versionmise# Install plugin and install latest version mise install trivylatest # Set a version globally (on your ~/.tool-versions file) mise use -g trivylatest # Now trivy commands are available trivy --version需要多版本共存如验证新旧版本行为差异时asdf/mise 相比其他渠道有明显优势。安装后验证与下一步无论使用哪种渠道安装完成后都建议先验证版本再执行一次最小扫描。验证版本trivy --version输出不仅包含版本号。从 pkg/version/version.go 的实现看VersionInfo结构体还会读取本地缓存元数据展示 Vulnerability DB漏洞数据库与 Java DB 的 Schema 版本、更新时间、下次更新时间等信息方便你确认二进制版本与已下载数据库是否配套。快速体验扫描以镜像仓库中的镜像为例trivy image python:3.4-alpine首次运行会自动下载漏洞数据库到缓存目录默认$HOME/.cache/trivy后续使用命中缓存即可。若扫描镜像过程中需要缓存与引擎配置优化参见前文提及的 Cache 缓存配置。选择安装方式时的决策建议仅想在单机上试用优先Homebrew / 官方 install.sh / GitHub Release 二进制需要锁版本并在生产环境统一管理优先RPM/DEB 软件源可yum list trivy/apt-cache policy trivy查看候选版本或asdf/mise完全容器化的环境直接使用官方镜像并做好 socket 与缓存目录的挂载追求供应链可验证性结合 签名校验指南 校验二进制/容器镜像签名。安装就绪后可以继续阅读 Getting Started 快速上手 了解 target/scanner 的命令行模型如trivy image、trivy fs --scanners vuln,secret,misconfig、trivy k8s --report summary cluster或前往 Ecosystem 集成生态 查看如何接入 GitHub Actions、Kubernetes Operator、IDE 插件等周边工具。【免费下载链接】trivyFind vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more项目地址: https://gitcode.com/GitHub_Trending/tr/trivy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价