Работа над удаленным проектом с Eclipse через SSH

У меня есть следующие поля:

  • Окно Windows с Eclipse CDT,
  • Ящик Linux, доступный для меня только через SSH.

И компилятор, и оборудование, необходимые для сборки и запуска моего проекта, находятся только на машине B.

Я хочу работать "прозрачно" из окна Windows в этом проекте с использованием Eclipse CDT и иметь возможность создавать, запускать и отлаживать проект удаленно из среды IDE.

Как настроить это:

  • Здание будет работать? Любые более простые решения, чем запись локального make файла, который будет rsync проекта, а затем вызвать удаленный make файл, чтобы инициировать фактическую сборку? Имеет ли Eclipse управляемую сборку функцию для этого?
  • Отладка будет работать?
  • Предпочтительно - индексирование кода Eclipse CDT будет работать? Нужно ли мне копировать все требуемые файлы заголовков из машины B в машину A и добавлять их вручную, чтобы указать путь?

Ответ 1

Попробуйте Удаленный системный проводник (RSE). Это набор плагинов, чтобы делать именно то, что вы хотите.

RSE уже может быть включен в текущую установку Eclipse. Чтобы проверить Eclipse Indigo, перейдите в Окно > Открыть перспективу > Другое... и выберите Удаленный системный проводник. в диалоговом окне "Открыть перспективу", чтобы открыть перспективу RSE.

Чтобы создать удаленный проект SSH с точки зрения RSE в Eclipse:

  • Определите новое соединение и выберите SSH Только с экрана "Выбор удаленного системного типа" в диалоговом окне "Новое подключение".
  • Введите информацию о подключении, затем нажмите "Готово".
  • Подключиться к новому хосту. (Предположим, что ключи SSH уже настроены.)
  • После подключения сверьтесь в файлах Sftp хоста, выберите папку и выберите Создать удаленный проект в контекстном меню элемента. (Подождите, пока удаленный проект будет создан.)

Если все сделано правильно, теперь должен быть новый удаленный проект, доступный из Project Explorer и других перспектив в eclipse. При правильной настройке соединения SSH пароли могут стать необязательной частью обычного процесса аутентификации SSH. Теперь создается удаленный проект с Eclipse через SSH.

Ответ 2

Самый простой способ - запустить Eclipse CDT в Linux Box и использовать либо X11-Forwarding, либо программное обеспечение удаленного рабочего стола, такое как VNC.

Это, конечно, возможно только при наличии Eclipse в ящике Linux, и ваше сетевое подключение к ящику достаточно быстро.

Преимущество состоит в том, что из-за того, что все локально, у вас не будет проблем с синхронизацией, и у вас не возникнут какие-либо неудобные кросс-платформенные проблемы.

Если у вас нет затмения на коробке, вы можете подумать о совместном использовании своего рабочего каталога Linux через SMB (или SSHFS) и получить доступ к нему с вашего компьютера Windows, но для этого потребуется довольно некоторая настройка.

Оба будут лучше, чем иметь две копии, особенно когда они кросс-платформенные.

Ответ 3

Я нахожусь в том же месте (или был), FWIW Я закончил проверку на долю samba на хосте Linux и редактировал ее на локальном компьютере Windows с помощью notepad ++, затем я скомпилировал в ящике Linux через PuTTY. (Нам не разрешалось обновлять десять версий версии редакторов на хосте Linux, и у него не было Java, поэтому я отказался от пересылки X11)

Теперь... Я запускаю современный Linux в виртуальной машине на моем хосте Windows, добавляю все инструменты, которые я хочу (например, CDT), к VM, а затем я проверяю и строю в тюрьме chroot, которая очень похожа на RTE.

Это неуклюжее решение, но я думал, что брошу его в микс.

Ответ 4

Мое решение похоже на SAMBA, за исключением использования sshfs. Смонтируйте мой удаленный сервер с помощью sshfs, откройте мой проект makefile на удаленном компьютере. Идите оттуда.

Кажется, я тоже могу запустить интерфейс GUI для этого класса.

Построение моего удаленного кода так же просто, как: ssh address remote_make_command

Я ищу достойный способ отладки. Возможно через gdbserver?

Ответ 5

У меня была та же проблема 2 года назад, и я решил ее следующим образом:

1) Я строю свои проекты с make файлами, не управляемыми eclipse 2) Я использую соединение SAMBA для редактирования файлов внутри Eclipse 3) Построение проекта:  Eclipse вызывает "локальный" make с make файлом, который открывает соединение SSH  к хосту Linux. В командной строке SSH вы можете указать параметры, которые  выполняются на хосте Linux. Я использую для этого параметра оболочку makeit.sh script которые называют "реальным" на хосте linux.  Различные цели для построения вы можете дать также по параметрам из  локальный makefile → makeit.sh → makefile на хосте linux.

Ответ 6

Я попробовал ssh -X но это было невыносимо медленно.

Я также попробовал RSE, но он даже не поддерживал создание проекта с Makefile (мне сказали, что это изменилось с тех пор, как я опубликовал свой ответ, но я не пробовал это)

Я читал, что NX быстрее, чем X11, но я не смог заставить его работать.

Наконец, я обнаружил, что мой сервер поддерживает X2Go (по ссылке есть инструкции по установке, если у вас нет). Теперь мне осталось только:

  • скачать и распаковать Eclipse на сервере,
  • установить X2Go на мою локальную машину (sudo apt-get install x2goclient в Ubuntu),
  • настроить соединение (хост, автоматический вход с помощью ключа ssh, выбрать запуск Eclipse).

Все так же, как если бы я работал на локальной машине, включая сборку, отладку и индексацию кода. И нет никаких заметных лагов.