2010-07-23 8 views
11

Supposons que j'ai un serveur sous Linux sur lequel je voudrais développer un logiciel (principalement OCaml, C/C++ et Java). Y at-il un moyen de "développer à distance" ces choses? Je veux dire un IDE qui me permet de modifier des fichiers à distance (ils sont ensuite téléchargés quand ils sont modifiés et enregistrés) et de compiler via SSH (en appelant essentiellement make ou omake).Comment développer un logiciel à distance?

Je cherchais quelque chose qui rend ce processus transparent pour le développeur, sans se soucier de faire les choses à la main. J'ai l'habitude d'utiliser Eclipse donc je me demande si un plugin pour y parvenir existe ou s'il y a d'autres choix?

Notez qu'il peut arriver que la machine locale ne soit pas capable de construire le logiciel que j'ai l'intention de (par exemple pour OCaml) donc elle devrait compter uniquement sur la connexion à distance.

Merci à l'avance

+0

Donc, vous voulez exécuter l'EDI en local, modifier les fichiers distants, et le faire construire sur une machine distante? – Greg

+0

oui, c'est ça :) – Jack

+0

@Jack, L'avez-vous résolu? J'ai un problème similaire, je veux mon IDE sur Windows et j'ai une VM qui contient Linux à l'intérieur, je voudrais utiliser l'IDE localement et le code du projet dans la VM, (raison: limitations de Windows FS) –

Répondre

1

Je pense que votre réponse est centrée sur l'EDI.

Les ioslaves de KDE prennent en charge l'accès sur SFTP et SSH (en utilisant fish, qui utilise un script Perl téléchargé sur la machine distante). Je crois que Gnome a aussi un système de fichiers virtuel (gvfs) qui prend en charge l'accès au système de fichiers distant.

Ma recommandation est donc de choisir un EDI qui supporte un système de fichiers virtuel pouvant fonctionner sur SSH/SFTP et vous permet de spécifier la commande de construction. Vous n'avez alors qu'à spécifier la commande de construction qui obtiendrait sa sortie à partir de la commande make distante (par exemple, vim a une option makeprg qui peut être définie sur n'importe quelle commande arbitraire).

2

Eh bien la plus simple idée que je peux penser, même si elle est plutôt la force brute serait d'ouvrir juste un partage de fichiers sur le serveur puis modifiez le fichier directement dans Eclipse.

Si cela ne fonctionne pas pour Java au moins, vous pouvez utiliser Maven pour effectuer certaines de ces tâches. Je suis moins sûr d'invoquer Make.

1

En fonction de la « distance » est ce; pourquoi pas ssh et lancer l'IDE à distance sur X?

+0

Non, je ne Je ne veux pas exécuter l'IDE à distance, je veux enregistrer des fichiers et les compiler à distance .. – Jack

+0

@Jack - Un processus de construction automatisé qui surveille les changements dans le système de fichiers? – AlG

+0

Il ne doit pas être automatique, juste quelque chose comme: J'édite la source, je les sauvegarde et envoie automatiquement les mises à jour au serveur distant, je "clique sur le bouton de compilation" (juste pour donner l'idée) et le compile. Je n'ai pas besoin de réponse graphique pour l'instant, je peux juste exécuter le programme compilé et voir la sortie. Peut-être que je suis à la recherche d'un ssh-wrapper :) – Jack

0

J'utilise vim pour le développement à distance. (Eh bien, j'utilise aussi vim non-remote.)

1

En utilisant un outil de construction (Hudson par exemple) vous pouvez mettre un agent de construction sur votre serveur distant, vérifier vos modifications dans votre dépôt comme d'habitude, et faire un Construire quand vous archivez les changements (il fera probablement un crochet de dépôt ou un sondage pour les changements, probablement). Votre processus de construction sera le même, il sera simplement automatisé. :-)

+1

Devoir vérifier le code avant que je puisse compiler et tester mes changements me semble arriéré. –

+0

Si vous êtes le seul à travailler dessus (ce qui semble provenir de ce que vous dites), ce ne serait pas vraiment un problème. Vous avez raison, c'est un peu en arrière, mais avec ce système en place, il se prête à l'extension plus tard. – corsiKa

0

Si la construction est le problème, avez-vous pensé à simplement utiliser un système de construction automatisé où vous vous engagez à svn et le système construit automatiquement le logiciel? J'ai entendu beaucoup de bonnes choses à propos de ce genre de système, même si je n'en ai pas essayé moi-même. En ce qui concerne le développement à distance, une solution SVnDAV peut être raisonnable. Il effectue essentiellement chaque sauvegarde et est complètement transparent pour l'éditeur de texte que vous utilisez. Cependant, une solution probablement beaucoup plus agréable serait simplement d'utiliser un lecteur/répertoire en réseau et d'éditer des fichiers à distance. Sur tous les systèmes basés sur Unix, cela devrait fonctionner de manière totalement transparente pour le développeur et l'éditeur de texte.

1

emacs a tramp, qui vous permet à la fois d'ouvrir et d'enregistrer des fichiers distants et d'ouvrir un shell sur un système distant. Travailler avec clochard est presque exactement comme travailler avec des fichiers locaux, sauf pour le nom de fichier. Pour ouvrir 'foo.c' sur la machine 'bork' en tant qu'utilisateur 'joe' je l'ouvre avec les commandes standard emacs, en lui donnant le chemin /[email protected]:foo.c

0

Votre choix d'IDE aura le le plus d'impact sur la réponse à "puis-je?".Si votre IDE de choix est basé sur CLI que vous ne pouvez toujours que SSH, lancez screen (de sorte que votre session CLI soit persistante à travers les sessions SSH), et y êtes!

0

Utilisez vim ou emacs car ils vous offriront de la vitesse. Je sais qu'il y a une courbe d'apprentissage associée à ces éditeurs; mais une fois que vous vous sentez à l'aise dans l'un d'eux; vous serez capable de travailler sur eux aussi bien qu'avec Eclipse ou tout autre IDE.

0

Si vous avez déjà un serveur Linux, je vous suggère de configurer un serveur VPN simple. Je l'ai fait par le passé et ça marche plutôt bien. De cette façon, vous pouvez vous connecter et modifier/construire vos fichiers avec n'importe quel système d'exploitation "local". J'ai fait cela parce que j'utilise mac, pc et linux dans différentes parties de la journée et dans plusieurs endroits, donc le VPN m'a permis d'éditer des fichiers à distance sans avoir à autoriser le partage de fichiers sur Internet.

Il existe de nombreux didacticiels sur la façon d'y parvenir, même si vous êtes nouveau sur linux. J'utilise le serveur ubuntu sur ma machine Linux et voici le tutoriel que j'ai utilisé.

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

0

Netbeans 7.3 a une nouvelle fonctionnalité qui traite votre problème (et le mien). Voici le tutoriel.

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

Note: Je me rends compte qu'il a 3 ans que cette question a été posée si la réponse est peut-être rien à voir avec @Jack maintenant.

0

Un IDE qui prend en charge exactement votre jeu de langue est Nuclide. Il ajoute des paquets à Atom et est utilisé en interne dans Facebook exactement comme vous l'avez décrit - le développement à distance à part entière en C++, Java et Ocaml.

Questions connexes