Camel CLI

安装 Camel CLI 启动器

师成师成· 更新于 2026-09-28· 阅读 11 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

安装 Camel CLI 启动器

自 Camel 4.22 起可用

有两个规范的安装脚本,无需使用包管理器即可安装 Camel CLI 启动器:

curl -fsSL https://camel.apache.org/install.sh | sh
irm 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 nothing

camel 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"

另请参阅

评论

登录后参与评论

正在加载评论…