web-dev-qa-db-fra.com

Travailler sur un projet distant avec Eclipse via SSH

J'ai les boîtes suivantes:

  1. Un boîtier Windows avec Eclipse CDT,
  2. Une machine Linux, accessible pour moi uniquement via SSH.

Le compilateur et le matériel requis pour générer et exécuter mon projet se trouvent uniquement sur la machine B.

J'aimerais travailler de manière "transparente" depuis un environnement Windows sur ce projet à l'aide d'Eclipse CDT et pouvoir créer, exécuter et déboguer le projet à distance à partir de l'EDI.

Comment puis-je configurer cela:

  • Le bâtiment fonctionnera? Des solutions plus simples que l'écriture d'un fichier Make local qui rsync du projet puis appelle un fichier Make distant pour lancer la construction réelle? Est-ce que la construction gérée par Eclipse a une fonctionnalité pour cela?
  • Le débogage fonctionnera?
  • De préférence, l’indexation de code Eclipse CDT fonctionnera? Dois-je copier tous les fichiers d'en-tête requis de la machine B vers la machine A et les ajouter pour inclure le chemin manuellement?
185
Kos

Essayez le Explorateur de systèmes distants (RSE). C'est un ensemble de plug-ins pour faire exactement ce que vous voulez.

RSE est peut-être déjà inclus dans votre installation actuelle d'Eclipse. Pour enregistrer dans Eclipse Indigo, allez à la fenêtre > Ouvrir la perspective > Autre ... et choisissez l'Explorateur de systèmes distants dans la liste Ouvrir la boîte de dialogue Perspective pour ouvrir la perspective RSE.

Pour créer un projet distant SSH à partir de la perspective RSE dans Eclipse:

  1. Définissez une nouvelle connexion et choisissez SSH uniquement dans l'écran Sélectionner un type de système distant de la boîte de dialogue Nouvelle connexion.
  2. Entrez les informations de connexion, puis choisissez Terminer.
  3. Connectez-vous au nouvel hôte. (Suppose que les clés SSH sont déjà configurées.)
  4. Une fois connecté, accédez aux fichiers Sftp de l'hôte , choisissez un dossier et sélectionnez Créer un projet distant dans le menu contextuel de l'élément. (Attendez que le projet distant soit créé.)

Si cela est fait correctement, un nouveau projet distant devrait désormais être accessible à partir de l'explorateur de projets et d'autres perspectives dans Eclipse. Avec la connexion SSH correctement configurée, les mots de passe peuvent devenir une partie optionnelle du processus d'authentification SSH normal. Un projet distant avec Eclipse via SSH est maintenant créé.

208
Aaron Digulla

Le moyen le plus simple consiste à exécuter Eclipse CDT sur Linux Box et à utiliser le logiciel X11-Forwarding ou un logiciel de bureau distant tel que VNC.

Ceci, bien sûr, n’est possible que lorsque votre Eclipse est présent sur le système Linux et que votre connexion réseau au système est suffisamment rapide.

L'avantage est que, du fait de tout ce qui est local, vous n'aurez pas de problèmes de synchronisation et vous ne rencontrerez aucun problème compliqué entre plates-formes.

Si vous n'avez pas Eclipse sur la boîte, vous pouvez envisager de partager votre répertoire de travail Linux via SMB (ou SSHFS) et d'y accéder à partir de votre machine Windows, mais cela nécessiterait un peu de configuration.

Les deux seraient meilleurs que d'avoir deux copies, surtout quand c'est multi-plateforme.

11
Lagerbaer

Je suis moi-même (ou étais) au même endroit, FWIW J'ai fini par vérifier un partage samba sur l'hôte Linux et édité ce partage localement sur la machine Windows avec notepad ++, puis j'ai compilé sur Linux sous PuTTY. (Nous n'étions pas autorisés à mettre à jour les versions dix ans des éditeurs sur l'hôte Linux et il ne disposait pas de Java, alors j'ai abandonné le transfert X11)

Maintenant ... Je lance Linux moderne dans un VM sur mon hôte Windows, j'ajoute tous les outils que je veux (CDT, par exemple) au VM, puis j'exécute et intègre un chroot. prison qui ressemble étroitement à la RTE.

C'est une solution maladroite, mais je pensais l'inclure dans le mélange.

6
timB33

Ma solution est similaire à celle de SAMBA à l'exception de l'utilisation de sshfs. Montez mon serveur distant avec sshfs, ouvrez mon projet makefile sur la machine distante. Partir de là.

Il semble que je puisse également exécuter une interface graphique à Mercurial.

Construire mon code à distance est aussi simple que: adresse ssh remote_make_command

Je cherche cependant un moyen correct de déboguer. Peut-être via gdbserver?

3
Samantha

J'ai eu le même problème il y a 2 ans et je l'ai résolu de la manière suivante:

1) Je construis mes projets avec des makefiles, non gérés par Eclipse 2) J'utilise une connexion SAMBA pour éditer les fichiers dans Eclipse 3) Construction du projet: Eclipse appelle un make "local" avec un makefile qui ouvre une connexion SSH vers Linux Hôte. Sur la ligne de commande SSH, vous pouvez donner les paramètres exécutés sur l’hôte Linux. J'utilise pour ce paramètre un script shell makeit.sh qui appelle le "réel" make sur l'hôte Linux. Les différentes cibles pour la construction que vous pouvez donner aussi par des paramètres du makefile local -> makeit.sh -> makefile sur l'hôte Linux.

2
900ss

J'ai essayé ssh -X mais c'était insupportablement lent.

J'ai aussi essayé RSE, mais cela ne m'a même pas aidé à construire le projet avec un Makefile ( on me dit que cela a changé depuis que j'ai posté ma réponse , mais je ne l'ai pas essayé)

J'ai lu que NX est plus rapide que le transfert X11, mais je ne pouvais pas le faire fonctionner.

Enfin, j'ai découvert que mon serveur prend en charge X2Go (le lien contient des instructions d'installation si le vôtre ne le fait pas). Maintenant je devais seulement:

  • télécharger et décompresser Eclipse sur le serveur,
  • installer X2Go sur ma machine locale (Sudo apt-get install x2goclient sur Ubuntu),
  • configurez la connexion (hôte, connexion automatique avec la clé ssh, choisissez d’exécuter Eclipse).

Tout est comme si je travaillais sur une machine locale, y compris la construction, le débogage et l'indexation de code. Et il n'y a pas de retard notable.

1
arekolek

Dans ce cas, vous pouvez utiliser ptp Eclipse https://Eclipse.org/ptp/ pour la navigation et la création de sources.

Vous pouvez utiliser cette connexion pour déboguer votre application

http://marketplace.Eclipse.org/content/direct-remote-c-debugging

0
Mohamed Abdelazim