После продолжительного использования Komodo Edit и частично Komodo IDE возникла необходимость в дополнительном функционале редактора или IDE (далее просто IDE).
Захотелось в IDE иметь возможность не просто редактировать файлы на удаленном сервере (далее просто сервер), но и выполнять команды на сервере.
Для этого пришлось попытаться сравнить наиболее известные IDE в этом плане.
Рассматриваются IDE с поддержкой протокола SSH и производных от него.
Рассматривается ситуация, когда на удаленном сервере (далее просто сервер) нет «графики», нет GUI-прог.
Т.е. случаи получения удаленного десктопа или проброс Х-ов (X11Forwarding) не рассматриваются.
Для работы с файлами на сервере используются протоколы sftp и sshfs.
Есть отдельная «технология» работы с сервером - запуск на сервере агента (сервера).
Пример такой «технологии» - VSCode.
Работа по протоколам sftp и sshfs имеют свои плюсы и минусы. Кратко.
sftp (схожие протоколы: ftp, ftps)
Это протокол обмена (копирования) файлами, каталогами.
Работа с файлами и каталогами на самом деле происходит с копиями на локальном компе. Синхронизация с сервером может происходить автоматически (IDE отслеживает локальные изменения), либо в ручном режиме через запуск синхронизации в IDE.
sshfs
Это монтирование каталога или каталогов сервера в файловую структуру ОС локального компа.
Примонтированный каталог становится частью файловой структуры локальной ОС.
Очень удобно использовать sshfs вместе с autofs. Для монтирования в пользовательском пространстве в Linux используется fuse.sshfs.
При этом, примонтированный каталог становится доступным для программ локального компьютера.
Общий плюс для sftp и sshfs - «чистая» работа. Т.е. IDE не создает на сервере каталогов и файлов нужных для работы самой IDE.
Работа IDE с сервером через запуск агента (пример VSCode) требует установки и запуска дополнительного софта (агента) на нем!
Критерии и сравнение.
| Atom | Eclipse | Komodo | NetBeans | VSCodium (VSCode) | VSCode | |
|---|---|---|---|---|---|---|
| Дополнительные плагины | ||||||
| Управление проектами в самой IDE | «Project Manager» | |||||
| Подключение по sftp | «Remote FTP» | «Remote System Explorer End-User Runtime» | «SSH FS» | |||
| Подключение по ssh | «Remote System Explorer End-User Runtime» | «SSH FS» | ||||
| Монтирование каталога сервера в локальную ОС по протоколу sshfs | «SSH FS» (по описаниям, см. ниже в Дополительно) | |||||
| Запуск агента на сервере | «Remote Development» | |||||
| Сохранение отдельных настроек | ||||||
| Сохранение списка редактируемых файлов | файл проекта с расширением «.komodoproject» | |||||
| Сохранение настройки подключения к серверу | файл проекта с расширением «.komodoproject» | файл с расширением «.code-workspace» | ||||
| SFTP | ||||||
| Область настроек подключений к серверам по sftp | для проекта, файлы «.ftpconfig» и «.ftpignore» | для IDE | для IDE + файл проекта («.komodoproject») | для проекта | для IDE | |
| Автоматическое подключение при запуске IDE | при запуске сохраненной рабочей области | последний рабочий либо сохраненный проект | последняя рабочая область либо файл с расширением «.code-workspace» | |||
| Место хранения локальных копий файлов | в каталоге проекта | в каталоге проекта | где-то в кеше | в каталоге проекта | где-то в кеше | |
| Синхронизация локальных копий файлов при запуске IDE | ручная | ручная | автоматическая | ручная | автоматическая | |
| SSH | ||||||
| Область настроек подключений к серверам по протоколу ssh | для IDE | для IDE | объединение для IDE и рабочей области | |||
Запуск агента на сервере.
Плагин «Remote Development» только для VSCode.
На сервере в корне домашнего каталога пользователя автоматически создается каталог «.vscode-server» (агент) и файл «.wget-hsts».
При первом подключении к серверу появляется дополнительный диалог настроек подключения.
При последующих подключениях автоматически запускается агент и открывается доступ к каталогам и файлам сервера.
Настройки подключения к серверу берутся из «~/.ssh/config» и «/etc/ssh/ssh_config» локального компа и где-то хранятся в VSCode.
Так же можно указать другой файл настроек подключения к серверу.
Команда «Remote-SSH: Uninstall VS Code Server from Host» удаляет каталог «.vscode-server» на сервере (файл «.wget-hsts» остается).
Developing on Remote Machines using SSH and Visual Studio Code
Дополительно.
Примечания.