尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

code-server on iOS:在 iPhone/iPad 上用 iSH 跑 Web 版 VS Code 的完整实战

code-server on iOS:在 iPhone/iPad 上用 iSH 跑 Web 版 VS Code 的完整实战 code-server on iOS在 iPhone/iPad 上用 iSH 跑 Web 版 VS Code 的完整实战【免费下载链接】code-serverVS Code in the browser项目地址: https://gitcode.com/GitHub_Trending/co/code-servercode-server 是一个在浏览器中运行 VS Code 的开源项目它由 Node.js 驱动服务端要求 Node.js 24见 package.json 中engines: { node: 24 }。iOS 不允许直接运行 Linux 程序因此官方文档 ios.md 给出的方案是借助 App Store 上的iSH一个基于 QEMU 用户模式、运行 Alpine Linux 的 shell 应用在 iOS 上构建一个“伪 Linux 环境”再按 Alpine 的标准流程把 code-server 装进去。本文完整继承该文档的 7 步操作流程并结合仓库中的 install.sh、settings.ts 等源码深入解释每一步背后的原因与可验证的依据。读完本文你将能够在 iOS 设备上从零完成 code-server 的部署iSH Alpine curl/nano Node.js 官方安装脚本理解为什么必须修改/etc/apk/repositories把v3.14改成v3.12弄清官方安装脚本在 Alpine 环境下具体走了哪条安装分支知道如何验证服务是否正常、默认监听地址与密码在哪里。一、环境前提iSH 提供的 Alpine Linux 是什么iSH 不是普通的终端模拟器它在 iOS 进程内以软件模拟 CPU 的方式运行 Alpine Linux 用户空间因此其中拥有完整的apk包管理器和标准 Linux 目录结构/etc/apk/、~/.config/等。这解释了为什么 ios.md 全程使用apk add这类 Alpine 命令而不是apt或brew。有两个与本文直接相关的事实前提软件模拟性能有限。从源码结构看code-server 本体是纯 Node.js 应用install.sh 的 standalone 包“bundle the node binary and node modules”CPU 密集操作如大型项目索引在 iSH 中会比原生环境慢这是使用方式决定的固有约束。iSH 的 Alpine 仓库中的 Node.js 版本较旧。这正是文档中第 3 步要改仓库源的原因详见第三节。二、完整安装流程与 docs/ios.md 一一对应以下步骤逐条继承自 ios.md命令可原样复制执行步骤 1安装 iSH从 App Store 安装 iSH。首次启动后按提示进入 shell默认以 root 登录。步骤 2安装 curl 和 nanoapk add curl nanocurl是后续执行官方安装脚本curl -fsSL https://code-server.dev/install.sh | sh的前提nano是后续编辑/etc/apk/repositories用的文本编辑器。步骤 3把 Alpine 仓库从 v3.14 降级到 v3.12关键步骤nano /etc/apk/repositories打开后可以看到两行或多行形如https://dl-cdn.alpinelinux.org/alpine/v3.14/main的仓库地址。把每一行链接里的v3.14都改成v3.12保存退出。这一步的原理iSH 所维护的 Alpine 软件包集合是固定快照。在 v3.12 的仓库镜像中nodejs包提供的是与 code-server 当时构建兼容的 Node.js 版本而 v3.14 仓库中的 nodejs 版本与 code-server 的依赖尤其是需要编译的 native 模块不匹配按文档给出的操作执行即可保证可安装、可运行。步骤 4安装 Node.js 与 npmapk add nodejs npm此时node和npm已可用。code-server 的 npm 安装路径需要 Node.js 能编译 native 模块的工具链docs/npm.md 中 Alpine 一节列出的依赖apk add alpine-sdk bash libstdc libc6-compat python3 krb5-dev在 iSH 的 Alpine 环境中大多已随基础镜像具备或随nodejs npm间接提供若后续安装脚本报缺少编译器之类的错误可按 docs/npm.md 的 Alpine 小节补齐这些包。步骤 5运行官方安装脚本curl -fsSL https://code-server.dev/install.sh | sh仓库根目录的 install.sh 与该文档是同一份脚本其内部逻辑可以精确解释 iSH 上会发生什么distro()函数读取/etc/os-releaseiSH 的 Alpine 会返回alpine在main()的分发逻辑中case $DISTRO in ... # We dont have GitHub releases that work on Alpine or FreeBSD so we have no # choice but to use npm here. alpine | freebsd) install_npm ;; ... esac即Alpine 分支直接调用install_npm()install.sh。这是因为 GitHub 预编译 release 只覆盖 Linux 的amd64与arm64见脚本开头 usage 注释而 iSH 模拟的架构无法匹配任何预编译包install_npm()最终执行npm install -g code-serverVERSION并在安装完成时打印提示把 npm 全局 bin 目录加入PATH然后运行code-serverinstall.sh。安装过程需要编译 native 模块在 iSH 的软件模拟环境下可能持续较长时间属于正常现象。建议保持 iSH 在后台、不要切走杀掉进程。步骤 6启动 code-servercode-server从源码看cli.ts 中默认配置模板为bind-addr: 127.0.0.1:8080src/node/cli.ts即默认只监听本机回环地址、端口 8080并首次生成密码。这与 iSH 场景正好匹配服务跑在设备本地浏览器也在同一台 iOS 设备上localhost即可互通。步骤 7浏览器访问在 iOS 上打开 Safari或任意浏览器访问http://localhost:8080若配置了密码默认行为输入后进入登录页即可使用完整的 Web 版 VS Code。密码文件位置见下文。三、配置与密码验证安装是否成功安装并启动后可以对照源码确认默认行为默认监听地址127.0.0.1:8080来源是 cli.ts 中生成初始配置时写入的bind-addr: 127.0.0.1:8080与port: 8080密码位置~/.config/code-server/config.yaml与 docs/install.md 各安装方式末尾的统一提示一致“Your password is in ~/.config/code-server/config.yaml”。在 iSH 中可用cat ~/.config/code-server/config.yaml查看想跳过认证仅本机访问时code-server --auth none该用法与 docs/termux.md 中移动设备的启动方式相同升级与 docs/termux.md 的 Upgrade 小节一致先删除旧安装再重跑安装脚本rm -rf ~/.local/lib/code-server-* curl -fsSL https://code-server.dev/install.sh | sh如果当初是通过 npm 分支安装的iSH 的 Alpine 环境正是如此对应的清理命令是npm uninstall --global code-server见 docs/install.md Uninstall 小节之后再重新执行安装脚本。四、常见问题与排错1.curl: command not foundiSH 是精简 Alpine默认不带curl先执行apk add curl nano文档步骤 2。2. 安装脚本卡住或长时间无输出npm 分支要编译 native 模块iSH 的软件模拟 CPU 使这一过程显著慢于实体机。可先按 docs/npm.md “Debugging install issues with npm” 一节的方式在终端里观察日志npm install --loglevel verbose --global code-server3. 启动后浏览器访问不到确认终端里 code-server 打印的 URL 是127.0.0.1:8080还是localhost:8080两者在 iSH 内都指向同一回环确认没有第二个进程占用 8080必要时换端口启动例如code-server --port 3000后访问http://localhost:3000--port为 cli.ts 定义的启动参数默认 8080。4. 修改仓库版本后apk add报签名/仓库错误重新检查/etc/apk/repositories确保两行链接main与community都已统一改为v3.12且没有残留v3.14改完后先执行apk update刷新索引再安装。五、小结环节命令/文件依据安装 iSHApp Storedocs/ios.md 步骤 1基础工具apk add curl nanodocs/ios.md 步骤 2仓库降级nano /etc/apk/repositoriesv3.14→v3.12两处docs/ios.md 步骤 3Node.jsapk add nodejs npmdocs/ios.md 步骤 4安装 code-servercurl -fsSL https://code-server.dev/install.sh \| shinstall.sh 的alpine → install_npm分支启动code-server默认127.0.0.1:8080见 src/node/cli.ts访问http://localhost:8080docs/ios.md 步骤 7整套方案的本质是iSH 负责提供一个足够完整的 Alpine Linux 用户空间官方安装脚本负责在 Alpine 分支下用 npm 构建并全局安装 code-server浏览器则通过 localhost 回环连接本地服务。只要严格按照仓库文档的 7 步执行并保持第 3 步仓库版本修改的正确性就能在 iPhone/iPad 上获得一个可编辑本地文件、运行终端的 Web 版 VS Code。【免费下载链接】code-serverVS Code in the browser项目地址: https://gitcode.com/GitHub_Trending/co/code-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表