yanchang
yanchang
发布于 2025-04-08 / 17 阅读
0
0

尝试部署code-server(失败)

今天在手机proot环境下部署code-server,本意是预备在ipad上连接键盘也能流畅编程

结果发现就是不稳定,部署后有很大的几率会把环境搞爆炸,原因可能是在proot环境下硬件操作不能进行导致的。

查看自动获取信息

curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run

官方提供的一键更新脚本

curl -fsSL https://code-server.dev/install.sh | sh

通过修改~/.config/code-server/config.yaml文件

vim ~/.config/code-server/config.yaml

修改为0.0.0.0:8091,以及能记住的密码

随后使用code-server启动服务然后就可以访问了

code-server

等晚上回去排查一下到底是因为什么导致的环境爆炸,其他服务终止

晚上抓到报错了

yanchang@localhost:~$ code-server 
[2025-04-08T14:52:37.129Z] info  code-server 4.99.0 53722c536197276005f68a7fb174d9ab15afc63b
[2025-04-08T14:52:37.132Z] info  Using user-data-dir /home/yanchang/.local/share/code-server
[2025-04-08T14:52:37.185Z] info  Using config file /home/yanchang/.config/code-server/config.yaml
[2025-04-08T14:52:37.186Z] info  HTTP server listening on http://0.0.0.0:8091/
[2025-04-08T14:52:37.186Z] info    - Authentication is enabled
[2025-04-08T14:52:37.186Z] info      - Using password from /home/yanchang/.config/code-server/config.yaml
[2025-04-08T14:52:37.186Z] info    - Not serving HTTPS
[2025-04-08T14:52:37.186Z] info  Session server listening on /home/yanchang/.local/share/code-server/code-server-ipc.sock
[22:52:55] 




[22:52:55] SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_interface_addresses returned Unknown system error 13 (Unknown system error 13)
    at networkInterfaces (node:os:277:16)
    at L_ (file:///usr/lib/code-server/lib/vscode/out/server-main.js:75:45638)
    at C_ (file:///usr/lib/code-server/lib/vscode/out/server-main.js:75:46103)
    at async file:///usr/lib/code-server/lib/vscode/out/server-main.js:75:46020
    at async Promise.all (index 2)
    at async HU (file:///usr/lib/code-server/lib/vscode/out/server-main.js:186:413)
    at async eT (file:///usr/lib/code-server/lib/vscode/out/server-main.js:187:1418) {
  code: 'ERR_SYSTEM_ERROR',
  info: {
    errno: 13,
    code: 'Unknown system error 13',
    message: 'Unknown system error 13',
    syscall: 'uv_interface_addresses'
  },
  errno: [Getter/Setter: 13],
  syscall: [Getter/Setter: 'uv_interface_addresses']
}
[22:52:55] Extension host agent started.
File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda_bg.wasm
File not found: /usr/lib/code-server/lib/vscode/node_modules/vsda/rust/web/vsda.js
[22:53:07] [192.168.1.5][54ba2773][ManagementConnection] New connection established.
[22:53:08] [192.168.1.5][899a276e][ExtensionHostConnection] New connection established.
[22:53:09] [192.168.1.5][899a276e][ExtensionHostConnection] <19182> Launched Extension Host Process.
-bash: [17962: 1 (255)] tcsetattr: Function not implemented
Aborted

丢给ai看了一下

一、核心错误:SystemError [ERR_SYSTEM_ERROR]: uv_interface_addresses(权限问题)
​​错误表现​​
uv_interface_addresses returned Unknown system error 13 表明系统调用 uv_interface_addresses 失败,这通常与 ​​权限不足​​ 或 ​​系统资源限制​​ 相关。
​​可能原因​​
​​权限限制​​:当前用户(yanchang)可能没有权限访问网络接口信息。
​​容器/沙盒环境​​:如果运行在容器或受限环境中(如 Docker、Snap 等),可能缺少必要的内核权限。
​​系统配置异常​​:某些 Linux 发行版(如 CentOS)的 SELinux 或 AppArmor 可能拦截了相关操作。
​​解决方案​​
​​尝试以 root 权限运行​​:
bash
sudo code-server
如果成功,说明权限问题,需调整用户权限或配置文件。
​​检查安全模块​​:
临时禁用 SELinux:setenforce 0,或检查 AppArmor 规则是否限制 code-server。
​​排查环境限制​​:
若在容器中运行,需确保容器具备 NET_ADMIN 权限(如 Docker 添加 --cap-add=NET_ADMIN)。
二、依赖文件缺失:vsda_bg.wasm 和 vsda.js
​​错误背景​​
这些文件属于 vsda 模块(VS Code 的加密依赖),缺失会导致插件功能异常。
​​可能原因​​
​​安装不完整​​:code-server 安装过程中网络中断或依赖未完全下载。
​​版本不兼容​​:使用的 code-server 版本与系统环境不匹配(如 ARM 架构未适配)。
​​解决方案​​
​​重新安装 code-server​​:
bash
# 卸载后重新安装
sudo apt remove code-server
curl -fsSL https://code-server.dev/install.sh | sh
​​手动修复依赖​​:
从官方仓库下载 vsda 模块,复制到 /usr/lib/code-server/lib/vscode/node_modules/vsda/。
三、终端异常:tcsetattr: Function not implemented
​​错误表现​​
-bash: tcsetattr: Function not implemented 表明终端属性设置失败。
​​可能原因​​
​​容器/虚拟化环境​​:在部分容器(如 Alpine Linux)或虚拟化环境中,终端模拟功能受限。
​​依赖库缺失​​:缺少 libtinfo 或类似终端支持库。
​​解决方案​​
​​安装终端支持库​​:
bash
# Ubuntu/Debian
sudo apt install libtinfo5
# CentOS
sudo yum install ncurses-compat-libs
​​调整启动参数​​:
在 ~/.config/code-server/config.yaml 中添加 --disable-telemetry 或尝试禁用部分终端功能。

这样的话就明了了,就是不能在proot环境下使用code-server

不过之前在github上看到了termux环境下部署,我觉得可以尝试一下

经过尝试Termux环境下部署不能使用扩展插件,就真的只是文件编辑器了,那还不如用ssh vim了,pass不能用,而且会导致信号9错误

此方案放弃


评论