安装 Camel CLI 启动器
安装 Camel CLI 启动器
自 Camel 4.22 起可用
有两个规范的安装脚本,无需使用包管理器即可安装 Camel CLI 启动器:
curl -fsSL https://camel.apache.org/install.sh | shirm https://camel.apache.org/install.ps1 | iex不带任何参数时,两个安装脚本都会解析并安装最新发布的版本。如需指定确切版本,可在 install.sh 中使用 --version X.Y.Z,或在 install.ps1 中使用 -Version X.Y.Z。
两个安装脚本都会从 Maven Central 下载发布归档包,在解压之前根据签名路径清单(signed-path manifest)中记录的 SHA-256 校验其完整性,并拒绝包含绝对路径、../ 路径穿越、逃逸的符号链接/重解析点,或含有一个以上顶层目录的归档包。随后会运行一次暂存的启动器,以确认能够发现 Java 17 及以上版本的运行时;如果该检查失败,先前激活的安装(如果有)将保持不变,安装脚本以非零状态码退出。
安装特定版本
在 Linux 和 macOS 上,使用 -s -- 将参数传递给管道执行的 shell:
curl -fsSL https://camel.apache.org/install.sh | sh -s -- --version 4.22.0在 Windows 上,请先下载该脚本,然后使用参数运行它:
irm https://camel.apache.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 4.22.0系统要求
- 安装和运行时都需要 Java 17 或更高版本的运行环境。启动器会依次从
JAVACMD、JAVA_HOME或PATH中查找 Java。 - Linux 和 macOS:
curl或wget;tar;以及sha256sum、shasum、openssl中的任意一个。 - Windows:PowerShell 5.1 或更高版本(需要
Invoke-WebRequest、Expand-Archive、Get-FileHash)。
CLI 的安装位置
安装始终是按用户进行的,从不需要管理员权限或 sudo:
- POSIX(
install.sh)会安装到${XDG_DATA_HOME:-$HOME/.local/share}/camel-cli/versions/<version>下,并通过$HOME/.local/bin/camel处的符号链接激活它。安装脚本绝不会写入 shell 配置文件(如.bashrc、.profile等);如果$HOME/.local/bin尚未加入PATH,它会打印相关指引。 - Windows(
install.ps1)会安装到%LOCALAPPDATA%\Apache Camel\cli\versions\<version>下,并通过位于%LOCALAPPDATA%\Apache Camel\bin\camel.cmd的camel.cmd占位程序激活,该占位程序会转交给已就位的camel.bat。该 bin 目录会被以不区分大小写的方式添加一次到当前用户的PATH中;系统级PATH绝不会被修改。
升级或降级后,先前安装的版本目录会保留原处,需要手动删除。重新安装同一版本会替换该版本目录。
这也是下文 camel self-update 和 camel doctor 命令所理解的目录结构。这两个命令都不会触及通过 Homebrew、Chocolatey、WinGet、Scoop、SDKMAN 或 JBang 完成的安装——这些包管理器各自管理自己的安装位置,并有各自的升级命令。
升级与切换版本
通过 install.sh/install.ps1 安装后,运行:
camel self-update # install the latest release, if newer than what's running
camel self-update --version 4.23.0 # install a specific version (upgrade or downgrade)
camel self-update --check # report only, install nothingcamel self-update 会先检查是否真的需要更新(如果你已经是最新版本,就不会为下载压缩包产生网络开销),然后重新运行上述相同的、已发布的 install.sh/install.ps1 安装脚本,并固定为它刚刚解析出的确切版本,而不是第二次重新实现下载、校验、解压、激活这些步骤。安装脚本本身会被重新下载,并在运行前依据与之一同发布的 SHA-256(install.sha256)进行校验。
camel self-update 在两种情况下会拒绝运行。如果当前正在使用的安装不是由 install.sh/install.ps1 完成的(而是通过 Homebrew、Chocolatey、WinGet、Scoop、SDKMAN 或 JBang 安装的),提示信息会指明该包管理器以及它自己的升级命令,例如 brew upgrade apache-camel。如果该安装是用户直接运行 install.sh --version 4.22.0/install.ps1 -Version 4.22.0 时固定到某个明确版本的(运行 camel self-update --version … 不会创建固定标记),提示信息会指明需要删除的固定文件,以便恢复跟踪新版本。
每次 camel 调用(camel self-update 本身除外)都会最多每隔 24 小时检查一次是否发布了更新的版本,如果有,则打印一行通知:
```none
camel: a new version is available (4.22.0 -> 4.23.0). Run 'camel self-update' to install it.该检查在后台线程上运行,绝不会阻塞或导致正在执行的命令失败。设置 CAMEL_SELF_UPDATE_CHECK=false 可完全禁用此功能。
检测冲突的安装
如果一台机器上存在多个 Camel CLI 安装(例如同时使用 install.sh 和 Homebrew),那么 PATH 中排在最前面的那个才会实际运行,其余的则处于闲置状态。camel doctor 会报告它发现的每一个安装,并标记出当前处于活动状态的那个:
$ camel doctor
...
Installs: Found 2 Camel CLI installations
~/.local/share/camel-cli/versions/4.22.0 (WEB_INSTALLER) <- active
/opt/homebrew/Cellar/apache-camel/4.21.0/libexec (HOMEBREW)
Warning: more than one Camel CLI installation was found. The one marked active is the one your
shell currently runs; the others are unused but still present.camel doctor 在发现多个安装时会以非零状态码退出,因此该检查可以在 CI 中以脚本方式执行。
卸载
安装程序不会修改 shell 配置文件或系统的 PATH,因此卸载只需删除对应的用户级文件:
在 Linux 和 macOS 上:
rm -f "$HOME/.local/bin/camel"
rm -rf "${XDG_DATA_HOME:-$HOME/.local/share}/camel-cli"在 Windows 上,删除安装目录,并从用户 PATH 环境变量中移除其 bin 目录:
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Apache Camel"另请参阅
- Camel CLI 启动器 — 安装程序所安装的发行版。
- Camel CLI - 安装选项 — 通过 JBang 安装、版本固定、Camel Wrapper 以及容器镜像。
- 快速入门 — 基于 JBang 的标准安装方式。
评论
登录后参与评论
KnowForge