В 2002 году мне удалось успешно подключить Visual Studio Code к моему роботу на базе Raspberry Pi и выполнить удаленную разработку с помощью VS Code, установленного на моем ноутбуке с Windows 10, и небольшой прокладки удаленного сервера, установленной на роботе. Однако с июля 2024 года все изменилось.
Я пытаюсь воссоздать удаленную среду в текущей версии Windows 10 и текущей версии Raspberry Pi O/S Buster, но это никогда не завершается.
У меня установлено расширение «удаленный SSH», и я пытаюсь подключиться к удаленной цели:
Я выбираю цель.
Он спрашивает тип операционной системы цели, я отвечаю «Linux».
Он запрашивает пароль пользователя «pi», который я предоставляю.
Начинается загрузка серверной оболочки в операционную систему робота.
Пауза около 30 секунд.
Затем он снова запрашивает тип операционной системы, установленной на цели.
Как и раньше, я выбираю «Linux».
Я снова даю ему пароль пользователя «pi».
Запускается второй экземпляр загрузки прокладки.
Еще одна пауза примерно на 30 секунд.
Весь процесс начинается снова, казалось бы, без конца.
Примечание:
Это будет повторяться до тех пор, пока я продолжаю танцевать с VS Code.
Никакое ожидание не приведет к успеху.
Я удалил, установил, переустановил (неоднократно), и ничего не помогает. Я также удалил каталог .vscode-server
в /home/pi
на самом роботе, но все безрезультатно.
Я видел предыдущую статью, в которой упоминалось, что в код Visual Studio было внесено изменение и что возврат к версии 1.8.5 решит проблему. Однако если я установлю более старую версию, ни одно из расширений не загрузится, и я не смогу найти более ранние расширения.
Я попытался вернуться к резервной копии 2022 года и скопировал весь контекст VS Code из старой резервной копии на свою новую машину. Как только я запустил старую версию VS Code, она полностью аннулировала расширения и обновилась до версии 1.9n.
Чтобы попытаться сузить проблему, я попробовал запустить другую версию Buster, на которой я успешно установил VS Code. Я также установил VS Code 1.69, поскольку на тот момент это была текущая версия.
Было несколько «подводных камней!», например, проверка того, что у меня установлен сервер openSSH в Windows, копирование открытого ключа компьютера с Windows на удаленное устройство и несколько других небольших настроек, и я работал, мог подключиться, мог загружать создал удаленное рабочее пространство, и все выглядело хорошо.
Итак, я попробовал обновиться до 1.91.1 (последняя версия на данный момент), запустил ее и попытался повторно подключиться, как делал это раньше. Не хорошо.
Я получил неоднократные попытки загрузить и настроить удаленный сервер. Я попытался удалить каталог .vscode-server
, как отмечалось в предыдущей публикации, но по-прежнему терпит неудачу, всегда получая следующую ошибку:
Failed to connect to the remote extension host server (Error: WrappedError(WrappedError { message: "error checking server integrity", original: "failed to run command \"/home/pi/.vscode-server/cli/servers/Stable-f1e16e1e6214d7c44d078b1f0607b2388f29d729.staging/server/bin/code-server --version\" (code 1): /home/pi/.vscode-server/cli/servers/Stable-f1e16e1e6214d7c44d078b1f0607b2388f29d729.staging/server/node: /lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/pi/.vscode-server/cli/servers/Stable-f1e16e1e6214d7c44d078b1f0607b2388f29d729.staging/server/node)\n" }))
Ключевой частью этой ошибки является:
/home/pi/.vscode-server/cli/servers/Stable-f1e16e1e6214d7c44d078b1f0607b2388f29d729.staging/server/node: /lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.26' not found
Даже после удаления каталога .vscode-server
(и его замены каталогами .vscode-server
и .vscode-remote-containers
) он все равно не работал и по-прежнему выдает ту же самую ошибку.
Я начинаю подозревать, что «/lib/arm-linux-gnueabihf/libstdc++.so.6: версия `GLIBCXX_3.4.26'» несовместима с Buster. (Я не пробовал это ни с Bullseye, ни с Bookworm, поскольку процесс переноса на эти платформы продолжается.)
Я заметил, что некоторые люди в других темах форума пытаются перекомпилировать gcc до версии 3.4.26 в своих системах, и все пришли к выводу, что это сломает систему.
Если это так, существует ли максимальная версия обновления, совместимая с Raspberry Pi O/S Buster?
TL;DR: Если вы используете Raspberry Pi O/S Buster, ваша версия ограничена 1.89.1.
Проблема с обновлением кода Visual Studio до последней версии, по-видимому, заключается в том, что, начиная с версии 1.90.n или новее, существует жесткая зависимость от glibc версии 3.4.26 и (AFAIK), которая не запускается и не устанавливается на Buster.
Таким образом, последняя версия, которую мне удалось установить в Windows 10, которая будет успешно работать удаленно на Buster, — это 1.89.1.
Существует вероятность того, что контейнеры могут быть частью проблемы, потому что, начиная с версии 1.91.n, Visual Studio Code также устанавливает каталог .vscode-remote-container
— хотя я понятия не имею, влияет ли это на него.