安装脚本是一个多功能的 Shell 脚本,它允许用户通过单个命令在各种平台上安装 code-server。本文档详细介绍了脚本如何检测用户的环境、选择合适的安装方法以及处理安装过程。
安装脚本(install.sh)是用户安装 code-server 的主要方法。其主要功能包括:
有关基于 Docker 的安装,请参阅 Docker 部署;有关 Kubernetes 部署,请参阅 Kubernetes 和 Helm 部署。
安装脚本遵循系统化的工作流程来检测环境并安装 code-server
安装脚本使用复杂的检测系统来识别用户的环境并选择最合适的安装方法
来源:install.sh139-297 install.sh451-459 install.sh496-518
关键的检测函数包括:
os():确定基础操作系统(Linux、macOS、FreeBSD)distro():通过读取 /etc/os-release 来识别特定的 Linux 发行版arch():确定 CPU 架构并将其标准化为 amd64 或 arm64has_standalone():检查检测到的架构是否有独立的安装包来源:install.sh474-547 install.sh462-472
该脚本实现了多种安装方法,每种方法都针对特定平台进行了优化
| 方法 | 功能 | 描述 | 用于 |
|---|---|---|---|
| Debian 包 | install_deb() | 下载并安装 .deb 包 | Debian, Ubuntu, Raspbian |
| RPM 包 | install_rpm() | 下载并安装 .rpm 包 | Fedora, CentOS, RHEL, openSUSE |
| AUR 包 | install_aur() | 从 AUR 克隆并构建 | Arch Linux |
| Homebrew | install_brew() | 使用 Homebrew 进行安装 | macOS |
| 独立安装包 | install_standalone() | 下载并解压独立发行版 | 任何支持的架构 |
| NPM | install_npm() | 从 npm 进行安装 | 任何带有 Node.js 的平台 |
每种安装方法都遵循特定的工作流程
fetch code-server_${VERSION}_$ARCH.deb → dpkg -i → systemd service setup
fetch code-server-$VERSION-$ARCH.rpm → rpm -U → systemd service setup
fetch tarball → mkdir -p $PREFIX/lib → extract tarball → symlink to $PREFIX/bin
安装脚本提供了多个命令行选项来定制安装过程
| 选项 | 描述 | 默认 |
|---|---|---|
--dry-run | 显示命令而不执行它们 | 关闭 |
--method | 选择安装方法(detect 或 standalone) | detect |
--prefix | 为独立发行版设置安装前缀 | ~/.local |
--version | 安装特定版本 | 最新稳定版 |
--edge | 安装最新的 edge(预发布)版本 | 关闭 |
--rsh | 指定远程安装的远程 Shell | ssh |
来源:install.sh16-73 install.sh152-216
该脚本通过 npm_fallback() 函数实现了一个回退机制,该机制会尝试使用指定的安装方法,但如果该方法不适用于用户的架构,则会回退到 npm 安装。
这确保了 code-server 即使在没有独立发行版的架构上也能成功安装。
安装脚本支持通过 SSH 在远程机器上安装 code-server
当检测到远程安装时,脚本会在远程机器上下载安装脚本并使用指定的参数执行它。
为了避免重复下载,脚本实现了一个缓存系统
下载的文件存储在 ~/.cache/code-server(如果设置了 $XDG_CACHE_HOME,则存储在 $XDG_CACHE_HOME/code-server)并在后续安装中重复使用。
来源:install.sh331-347 install.sh579-586
脚本在必要时自动处理权限提升
安装后,脚本将根据使用的安装方法提供上下文相关的说明
| 安装方法 | 功能 | 指令 |
|---|---|---|
| npm | echo_npm_postinstall() | 如何添加到 PATH 并运行 code-server |
| standalone | echo_standalone_postinstall() | 安装位置以及如何添加到 PATH |
| Homebrew | echo_brew_postinstall() | 如何运行 code-server |
| Debian/RPM/AUR | echo_systemd_postinstall() | 如何启用和启动 systemd 服务 |
该脚本包含全面的错误处理
来源:install.sh299-329 install.sh561-577
安装脚本是 code-server 部署架构的关键组成部分
安装脚本旨在与其他 code-server 系统组件无缝协作,确保跨不同平台的统一用户体验。
code-server 安装脚本提供了一种通用、强大的方法,可在各种平台上部署 code-server。通过自动检测用户环境并选择最合适的安装方法,它简化了安装过程,同时确保了最佳的兼容性和性能。
有关其他部署选项,请参阅 安装和部署。