菜单

安装脚本

相关源文件

安装脚本是一个多功能的 Shell 脚本,它允许用户通过单个命令在各种平台上安装 code-server。本文档详细介绍了脚本如何检测用户的环境、选择合适的安装方法以及处理安装过程。

目的与范围

安装脚本(install.sh)是用户安装 code-server 的主要方法。其主要功能包括:

  • 提供简单的一键式安装体验
  • 自动检测系统环境(操作系统、架构、包管理器)
  • 根据检测到的环境选择和执行合适的安装方法
  • 从 GitHub Release 或 npm 下载 code-server 包
  • 配置系统以运行 code-server
  • 提供清晰的安装后说明

有关基于 Docker 的安装,请参阅 Docker 部署;有关 Kubernetes 部署,请参阅 Kubernetes 和 Helm 部署

脚本架构和工作流程

安装脚本遵循系统化的工作流程来检测环境并安装 code-server

来源:install.sh139-297

检测逻辑

安装脚本使用复杂的检测系统来识别用户的环境并选择最合适的安装方法

来源:install.sh139-297 install.sh451-459 install.sh496-518

关键的检测函数包括:

  • os():确定基础操作系统(Linux、macOS、FreeBSD)
  • distro():通过读取 /etc/os-release 来识别特定的 Linux 发行版
  • arch():确定 CPU 架构并将其标准化为 amd64arm64
  • has_standalone():检查检测到的架构是否有独立的安装包

来源:install.sh474-547 install.sh462-472

安装方法

该脚本实现了多种安装方法,每种方法都针对特定平台进行了优化

方法功能描述用于
Debian 包install_deb()下载并安装 .debDebian, Ubuntu, Raspbian
RPM 包install_rpm()下载并安装 .rpmFedora, CentOS, RHEL, openSUSE
AUR 包install_aur()从 AUR 克隆并构建Arch Linux
Homebrewinstall_brew()使用 Homebrew 进行安装macOS
独立安装包install_standalone()下载并解压独立发行版任何支持的架构
NPMinstall_npm()从 npm 进行安装任何带有 Node.js 的平台

来源:install.sh349-448

每种安装方法都遵循特定的工作流程

Debian 包安装

fetch code-server_${VERSION}_$ARCH.deb → dpkg -i → systemd service setup

RPM 包安装

fetch code-server-$VERSION-$ARCH.rpm → rpm -U → systemd service setup

独立安装

fetch tarball → mkdir -p $PREFIX/lib → extract tarball → symlink to $PREFIX/bin

来源:install.sh358-424

命令行选项

安装脚本提供了多个命令行选项来定制安装过程

选项描述默认
--dry-run显示命令而不执行它们关闭
--method选择安装方法(detectstandalonedetect
--prefix为独立发行版设置安装前缀~/.local
--version安装特定版本最新稳定版
--edge安装最新的 edge(预发布)版本关闭
--rsh指定远程安装的远程 Shellssh

来源:install.sh16-73 install.sh152-216

降级机制

该脚本通过 npm_fallback() 函数实现了一个回退机制,该机制会尝试使用指定的安装方法,但如果该方法不适用于用户的架构,则会回退到 npm 安装。

来源:install.sh451-459

这确保了 code-server 即使在没有独立发行版的架构上也能成功安装。

远程安装支持

安装脚本支持通过 SSH 在远程机器上安装 code-server

当检测到远程安装时,脚本会在远程机器上下载安装脚本并使用指定的参数执行它。

来源:install.sh221-226

缓存系统

为了避免重复下载,脚本实现了一个缓存系统

下载的文件存储在 ~/.cache/code-server(如果设置了 $XDG_CACHE_HOME,则存储在 $XDG_CACHE_HOME/code-server)并在后续安装中重复使用。

来源:install.sh331-347 install.sh579-586

权限提升

脚本在必要时自动处理权限提升

来源:install.sh561-577

安装后说明

安装后,脚本将根据使用的安装方法提供上下文相关的说明

安装方法功能指令
npmecho_npm_postinstall()如何添加到 PATH 并运行 code-server
standaloneecho_standalone_postinstall()安装位置以及如何添加到 PATH
Homebrewecho_brew_postinstall()如何运行 code-server
Debian/RPM/AURecho_systemd_postinstall()如何启用和启动 systemd 服务

来源:install.sh88-132

错误处理

该脚本包含全面的错误处理

  • 验证命令行参数并提供有用的错误消息
  • 安装前检查所需的依赖项
  • 如果独立发行版不可用,则回退到 npm 安装
  • 仅在必要时使用特权命令
  • 提供清晰的错误消息以进行故障排除

来源:install.sh299-329 install.sh561-577

与部署架构的集成

安装脚本是 code-server 部署架构的关键组成部分

安装脚本旨在与其他 code-server 系统组件无缝协作,确保跨不同平台的统一用户体验。

结论

code-server 安装脚本提供了一种通用、强大的方法,可在各种平台上部署 code-server。通过自动检测用户环境并选择最合适的安装方法,它简化了安装过程,同时确保了最佳的兼容性和性能。

有关其他部署选项,请参阅 安装和部署

来源:install.sh1-618 docs/install.md1-365