问题 如何远程开发软件?


假设我有一台运行在Linux上的服务器,我想在其上开发软件(主要是OCaml,C / C ++和Java)。

有没有办法“远程开发”这些东西?我的意思是一个允许我远程修改文件的IDE(然后在修改和保存时上传它们)并通过SSH编译(基本上调用) make 要么 omake)。

我正在寻找能让这个过程对开发人员透明的东西,而不需要手工操作。我习惯使用Eclipse,所以我想知道是否存在实现此目的的插件或者是否还有其他选择?

请注意,本地机器可能无法构建我打算使用的软件(例如OCaml),因此它应该仅依赖于远程连接。

提前致谢


4648
2017-07-23 16:13


起源

那么你想在本地运行IDE,修改远程文件,并让它在远程机器上构建? - Greg
对,就是那样 :) - Jack
@Jack,你解决了吗?我有类似的问题,我希望我的IDE在Windows上,我有一个包含微型Linux的VM,我想在本地使用IDE和VM内的项目代码,(原因:FS Windows限制) - Eddy Hernandez


答案:


我认为你的答案是以IDE为中心的。

KDE的ioslaves支持通过SFTP和SSH进行访问(使用fish,它使用上传到远程计算机的Perl脚本)。我相信Gnome还有一个支持远程文件系统访问的虚拟文件系统(gvfs)。

因此,我的建议是选择支持可通过SSH / SFTP运行的虚拟文件系统的IDE,并允许您指定构建命令。然后,您只需要指定build命令,该命令将从远程make命令获取其输出(例如,vim具有 makeprg 可以设置为任意命令的选项)。


1
2017-07-23 16:40





您可以使用X11转发。即使你是 从Windows机器连接

如果您使用的是Linux,那么使用ssh -Y连接可能会为您提供开箱即用的功能:

ssh -Y user@your_server
eclipse &

6
2017-07-23 16:19





这是我能想到的最简单的想法,虽然它是相当暴力的,只是打开一个文件共享到服务器,然后直接通过Eclipse编辑文件。

如果这对Java不起作用,至少你可以利用Maven来完成其中的一些任务。我不太确定调用Make。


2
2017-07-23 16:17





取决于这是多么“遥远”;为什么不通过X远程ssh并运行IDE?


1
2017-07-23 16:19



不,我不想远程运行IDE,我想保存文件并远程编译它们。 - Jack
@Jack - 一个自动构建过程,正在监视文件系统的变化? - AlG
它不能是自动的,就像这样:我编辑源代码,我保存它们并自动发送更新到远程服务器,我“点击编译按钮”(只是为了给出想法)并且它远程编译它。我现在不需要任何类型的GUI响应,只是能够执行编译的程序并查看输出。也许我正在寻找一个ssh-wrapper :) - Jack
我可以看到你扩展Eclipse来做类似的事情。只是不确定它的效用。感觉像远程构建服务器? - AlG


使用构建工具(例如Hudson),您可以在远程服务器上放置构建代理,正常检查对存储库的更改,并在签入更改时进行构建(它将执行存储库挂钩或轮询)对于变化,可能)。您的构建过程将是相同的,它将简单地自动化。 :-)


1
2017-07-23 16:22



在我编译和测试我的更改之前必须检查代码对我来说似乎很落后。 - Rob Kennedy
如果你是唯一一个正在研究它的人(它似乎来自你所说的话),那真的不是问题。你是对的,它有点落后,但是有了这个系统,它有助于延伸。 - corsiKa


emacs有 流浪汉,它允许您打开和保存远程文件,并在远程系统上打开一个shell。使用tramp几乎就像使用本地文件一样,文件名除外。要在机器'bork'上打开'foo.c'作为用户'joe',我用标准的emacs命令打开它,给它路径名为/joe@bork:foo.c


1
2017-07-23 16:36





我用 vim 用于远程开发。 (好吧,我使用vim也是非远程的。)


0
2017-07-23 16:22





如果构建是问题,您是否考虑过简单地使用自动构建系统,您承诺使用svn,系统会自动构建软件?我听说过很多关于这些系统的好东西,虽然我自己也没有尝试过。

至于远程开发,SVnDAV解决方案可能是合理的。它基本上会提交您的每个保存,并且对您正在使用的文本编辑器完全透明。然而,一个可能更好的解决方案就是使用网络驱动器/目录并远程编辑文件。在所有基于unix的系统上,这应该对开发人员和文本编辑器完全透明。


0
2017-07-23 16:31





您选择的IDE对“我可以吗?”的答案影响最大。如果您选择的IDE是基于CLI的,那么您可以随时使用SSH,启动 screen (这样你的CLI会话在SSH会话中是持久的),并拥有它!


0
2017-07-23 16:38





使用vim或emacs因为它们会为你提供速度。我知道这些编辑有一个学习曲线;但是一旦你对任何一个感到舒服;您将能够像Eclipse或任何其他IDE一样使用它们。


0
2017-07-23 17:14