tech_note

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

stuck_of_zed_remote.md (5446B)


      1 ---
      2 title: Stuck of Zed Remote
      3 tags:
      4 - remote
      5 - zed
      6 private: false
      7 updated_at: 2026-02-28 10:47
      8 id: null
      9 organization_url_name: null
     10 slide: false
     11 ---
     12 # 想定読者
     13 ZedのRemote機能の利用者
     14 
     15 # 経緯(TL;DR)
     16 インストーラのTUIで実機に`debian`をインストールし,その環境のコードを弄りたかったのでWindowsのZedからリモートとして接続しようとしました.
     17 debianのインストール時,幾つかのライブラリを選択的に入れられるのですが,私はssh connectionのみを入れて,それ以外のdesktop env等は省きました.
     18 `curl`も`net-tools`も入っていないまっさらなdebian環境にzedからリモートでつなごうとすると,バイナリのダウンロードが失敗しました.`curl`が必要みたいです.私は`wget`を使って色々とダウンロードしてたので気づきませんでした.それからbunのインストール用にと`unzip`もついでに入れて接続すると,サーバーのセットアップができたと言ったので早速,フォルダを追加しようとadd folderボタンを押してssh keyのパスワードを入れて……
     19 ずっと`connecting`で止まってるんです.謎でした.
     20 `ldd`コマンドで必要なライブラリが抜けてるのかなとか調べましたが`statically linked`って言われます.[公式のドキュメント](https://zed.dev/docs/remote-development)を見ても64bitのLinuxで動くよとしか書いてなくて困った.
     21 以前,LXCのAlpine Linuxで似たような症状が出たときはnetbaseを入れたら治ったのですが,既に入ってました.
     22 logを漁ってみたんですけど,セットアップが成功しただけだったんですよね
     23 ```log
     24 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":463,"message":"(remote server) starting up with PID 12272:\npid_file: \"/home/ user/.local/share/zed/server_state/setup-1/server.pid\", log_file: \"/home/ user/.local/share/zed/logs/server-setup-1.log\", stdin_socket: \"/home/ user/.local/share/zed/server_state/setup-1/stdin.sock\", stdout_socket: \"/home/ user/.local/share/zed/server_state/setup-1/stdout.sock\", stderr_socket: \"/home/ user/.local/share/zed/server_state/setup-1/stderr.sock\""}
     25 {"level":3,"module_path":"crashes","file":"/home/runner/work/zed/zed/crates/crashes/src/crashes.rs","line":87,"message":"(remote server) spawning crash handler process"}
     26 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":520,"message":"(remote server) gpui app started, initializing server"}
     27 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":323,"message":"(remote server) accepting new connections"}
     28 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":330,"message":"(remote server) accepted new connections"}
     29 {"level":3,"module_path":"util","file":"/home/runner/work/zed/zed/crates/util/src/util.rs","line":389,"message":"(remote server) set environment variables from shell:/bin/bash, path:/home/ user/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"}
     30 {"level":3,"module_path":"crashes","file":"/home/runner/work/zed/zed/crates/crashes/src/crashes.rs","line":95,"message":"(remote server) connected to crash handler process after 100ms"}
     31 {"level":3,"module_path":"crashes","file":"/home/runner/work/zed/zed/crates/crashes/src/crashes.rs","line":139,"message":"(remote server) crash handler registered"}
     32 {"level":2,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":374,"message":"(remote server) error reading message on stdin, dropping connection."}
     33 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":323,"message":"(remote server) accepting new connections"}
     34 {"level":2,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":334,"message":"(remote server) timed out waiting for new connections after 600s. exiting."}
     35 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":309,"message":"(remote server) app quitting. sending signal to server main loop"}
     36 {"level":3,"module_path":"remote_server","file":"crates/remote_server/src/server.rs","line":594,"message":"(remote server) gpui app is shut down. quitting."}
     37 ```
     38 ということで,他にこのフォルダーの中になんかないかなと思って`tree`コマンドを打って,システムに存在しなかったから`sudo apt install tree`をして,なんでだろうなーって思って実行したら,動いたんですよ.つまりRemoteされる先にtreeコマンドが存在してないと動かないってことです.正直,lddで見れない分,もっとたちが悪いです.
     39 みなさんも気をつけてください.
     40 # 教訓
     41 ZedのRemoteされる側に,少なくとも
     42 ```
     43 ssh netbase curl tree
     44 ```
     45 コマンドが使える状態じゃないと駄目ってことです.
     46 きっと`std::process::Command`で叩いてるんだろうなーって.
     47 それはそうと,requirementとしてドキュメントに書くべきだと思うんですよ.(個人の感想です)
     48 これで何回目だって気分になってきたので,issueを書こうと思います.(気力があれば)