2010-07-23 128 views
11

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

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

我一直在寻找一些让开发者对这个过程透明化的东西,而不用关心手工做事。我习惯于使用Eclipse,所以我想知道是否有插件来实现它,或者是否有其他选择?

请注意,它可能发生本地计算机无法构建软件,我打算(例如OCaml),因此它应该只依靠远程连接。

在此先感谢

+0

所以你想在本地运行IDE,修改远程文件,并让它建立在远程机器上? – Greg 2010-07-23 16:35:36

+0

是的,就是这样:) – Jack 2010-07-23 16:39:22

+0

@杰克,你解决了吗?我有类似的问题,我想我的IDE在Windows上,我有一个虚拟机,其中包含微小的Linux里面,我想在本地使用IDE和VM内的项目代码,(原因:FS Windows的限制) – 2016-08-29 17:27:54

回答

1

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

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

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

2

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

如果这不适用于Java,至少可以使用Maven来完成其中的一些任务。虽然我不太确定如何调用Make。

1

取决于如何“遥控”这是;为什么不通过X远程登录并运行IDE?

+0

不,我不我不想远程运行IDE,我想保存文件并远程编译它们。 – Jack 2010-07-23 16:20:43

+0

@Jack - 一个正在监视文件系统变化的自动构建过程? – AlG 2010-07-23 16:47:59

+0

它不能是自动的,就像这样:我编辑源代码,我保存它们,它会自动发送更新到远程服务器,我“点击编译按钮”(只是为了给出想法),它远程编译它。现在我不需要任何类型的GUI响应,只需执行编译的程序并查看输出即可。也许我正在寻找一个ssh-wrapper :) – Jack 2010-07-24 01:32:35

0

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

1

使用构建工具(例如Hudson),你可以在你的远程服务器上放置一个构建代理,检查你的修改到正常的仓库中,然后让它做一个当您检入更改时(可能会执行存储库挂钩或轮询更改,可能会)。你的构建过程将是一样的,它会简单地自动化。 :-)

+1

必须检查代码之前,我可以编译和测试我的更改似乎落后于我。 – 2010-07-23 16:43:52

+0

如果你是唯一一个正在处理它的人(这似乎来自你所说的话),这不会是一个问题。你是对的,它有点落后,但是这个系统已经到位了,它可以在以后延长。 – corsiKa 2010-07-23 17:22:30

0

如果构建是问题,你有没有想过简单地使用一个自动化的构建系统,你承诺svn和系统,然后自动构建软件?我听说过很多关于这些系统的好东西,尽管我自己并没有完全尝试过。

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

1

emacs有tramp,它允许您打开和保存远程文件,并在远程系统上打开一个shell。使用tramp几乎和使用本地文件一样,除了文件名。用'joe'在机器'bork'上打开'foo.c',我用标准的emacs命令打开它,给它一个路径名/[email protected]:foo.c

0

你选择的IDE将会有对“我能吗?”的答案影响最大。如果您选择的IDE是基于CLI的,而不是您始终可以通过SSH登录,请启动screen(以便您的CLI会话在SSH会话中保持不变),并且拥有它!

0

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

0

如果你已经有一个linux服务器,那么我会建议设置一个简单的VPN服务器。过去我已经完成了这项工作,并且工作得很好。通过这种方式,您可以使用任何“本地”操作系统连接和修改/构建文件。我这样做是因为我在一天中的多个地方以及多个地点使用mac,pc和linux,所以VPN允许我远程编辑文件,而不必通过互联网允许文件共享。

即使你是较新的linux,也有很多关于如何实现这个的教程。我在我的Linux机器上使用了ubuntu服务器,这里是我用过的教程。

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

0

一个支持您的语言集的IDE是Nuclide。它向Atom添加了一些软件包,并在Facebook内部完全按照您所描述的那样在C++,Java和Ocaml中进行全面的远程开发。