Как удаленно разрабатывать программное обеспечение?

Предположим, у меня есть сервер, который работает в Linux, на котором я хотел бы разработать программное обеспечение (в основном OCaml, C/С++ и Java).

Есть ли способ "развить" эти вещи? Я имею в виду среду IDE, которая позволяет удаленно изменять файлы (они затем загружаются при их изменении и сохранении) и компилировать через SSH (в основном вызывая make или omake).

Я искал что-то, что делает этот процесс прозрачным для разработчика, не заботясь о том, чтобы делать вещи вручную. Я привык использовать Eclipse, поэтому я задаюсь вопросом, существует ли плагин для достижения этого, или есть ли другие варианты?

Помните, что может случиться так, что локальная машина не сможет создать программное обеспечение, которое я намереваюсь (например, для OCaml), поэтому он должен полагаться только на удаленное соединение.

Заранее спасибо

Ответ 1

Я думаю, что ваш ответ ориентирован на IDE.

Isolaves KDE поддерживает доступ как к SFTP, так и к SSH (с использованием рыбы, которая использует Perl script, загруженную на удаленный компьютер). Я считаю, что Gnome также имеет виртуальную файловую систему (gvfs), которая поддерживает доступ к удаленной файловой системе.

Поэтому моя рекомендация состоит в том, чтобы выбрать среду IDE, которая поддерживает виртуальную файловую систему, которая может работать через SSH/SFTP, и позволяет вам указывать команду сборки. Тогда вам нужно будет только указать команду сборки, которая получит свой вывод из команды remote make (например, vim имеет параметр makeprg, который может быть настроен на любую произвольную команду).

Ответ 3

Ну простейшая идея, о которой я могу думать, хотя это скорее грубая сила, так это просто открыть общий доступ к файлу на сервере, а затем отредактировать файл непосредственно через Eclipse.

Если это не работает для Java, по крайней мере, вы можете использовать Maven для выполнения некоторых из этих задач. Я менее уверен в том, что вы вызываете Make хотя.

Ответ 4

В зависимости от того, как 'remote' это; почему бы не ssh войти и запустить IDE удаленно через X?

Ответ 5

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

Ответ 6

emacs имеет tramp, который позволяет вам открывать и сохранять удаленные файлы и открывать оболочку на удаленной системе. Работа с tramp почти такая же, как работа с локальными файлами, за исключением имени файла. Чтобы открыть "foo.c" на машине "bork" в качестве пользователя "joe", я открываю его со стандартными командами emacs, указывая ему путь/[email protected]:foo.c

Ответ 7

Я использую vim для удаленной разработки. (Ну, я использую vim и не удаленный.)

Ответ 8

Если проблема с строительством, подумали ли вы о простом использовании автоматизированной системы сборки, где вы фиксируете svn, а система автоматически создает программное обеспечение? Я слышал много хороших вещей об этих типах систем, хотя я сам не очень пробовал себя.

Что касается удаленной разработки, решение SVnDAV может быть разумным. Он в основном фиксирует каждое ваше сохранение и полностью прозрачен для текстового редактора, который вы используете. Однако, вероятно, гораздо более приятным решением было бы просто дистанционно использовать сетевой каталог/каталог и редактировать файлы. Во всех системах на основе unix это должно работать совершенно прозрачно как разработчику, так и текстовому редактору.

Ответ 9

Ваш выбор IDE окажет наибольшее влияние на ответ на вопрос "Могу ли я?". Если ваша IDE выбора основана на CLI, то вы можете всегда использовать SSH, запустив screen (чтобы ваш сеанс CLI был постоянным в сеансах SSH) и у него есть!

Ответ 10

Используйте vim или emacs, так как они будут предлагать вам скорость. Я знаю, что есть кривая обучения, связанная с этими редакторами; но как только вы устраиваетесь в любом из них; вы сможете работать с ними так же хорошо, как с Eclipse или любой другой IDE.

Ответ 11

Если у вас уже есть сервер linux, я бы предложил настроить простой VPN-сервер. Я делал это в прошлом, и он работает очень хорошо. Таким образом вы можете подключать и изменять/создавать свои файлы с любой "локальной" ОС. Я сделал это потому, что я использую mac, pc и linux через различные части дня и в разных местах, поэтому VPN разрешил мне удаленно редактировать файлы, чтобы разрешить совместное использование файлов через Интернет.

Существует множество учебных пособий о том, как достичь этого, даже если вы новичок в Linux. Я использую сервер ubuntu в своем linux-окне, и вот урок, который я использовал.

http://www.ubuntugeek.com/howto-pptp-vpn-server-with-ubuntu-10-04-lucid-lynx.html

Ответ 12

Netbeans 7.3 имеет новую функцию, которая решает вашу проблему (и мою). Вот учебник.

https://netbeans.org/kb/docs/cnd/remotedev-tutorial.html

Примечание. Я понимаю, что прошло 3 года с момента запроса этого вопроса, поэтому ответ может быть неактуальным для @Jack сейчас.

Ответ 13

Одна среда IDE, которая поддерживает именно ваш набор языков, Nuclide. Он добавляет некоторые пакеты Atom и используется внутри Facebook точно так, как вы описали, - полноценная удаленная разработка в С++, Java и Ocaml.